Redis学习路线(2)—— Redis的数据结构

news/2024/5/21 5:01:57

一、Redis的数据结构

Redis是一个Key-Value的数据库,key一般是String类型,不过Value的类型却有很多:

  • String: Hello World
  • Hash: {name: "jack", age: 21}
  • List: [A -> B -> C -> C]
  • Set: {A, B, C}
  • SortedSet: {A: 1, B: 2, C: 3}
  • GEO: {A: (120.3, 30.5)}
  • BitMap: 0110110101110101011
  • HyperLog: 0110110101110101011

由于Redis对数据类型是按组别进行数据操作,所以我们可以到官网的文档进行查询,也可以通过命令行进行查询。

#查询string的操作符
help @string

二、Redis基本数据类型

(一)、String类型

String类型,也就是字符串类型,是Redis中最简单的存储类型。
其Value是字符串,根据字符串的格式不同,又可以分成 3 类:

  • string: 字符串,最大操作空间为512mb
  • int: 整数类型,可以做自增、自减操作
  • float: 浮点类型,可以做自增、自减操作

查看操作文档

help @string

1、SET: 添加或者修改已经存在的Stirng类型键值对

(1)帮助文档描述

 SET key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|KEEPTTL] [NX|XX] [GET]summary: Set the string value of a keysince: 1.0.0group: string

(2)使用命令

#设置 key-value 键值对
SET k1 1

2、GET: 根据key获取String类型的value

(1)帮助文档描述

 GET keysummary: Get the value of a keysince: 1.0.0group: string

(2)使用命令

#获取 k1 的值,获取到 "1"
GET k1

3、MSET: 批量添加键值对

(1)帮助文档描述

 MSET key value [key value ...]summary: Set multiple keys to multiple valuessince: 1.0.1group: string

(2)使用命令

#批量插入键值对
MSET k2 2 k3 3 k4 4

4、MGET: 批量根据key获取值

(1)帮助文档描述

 MGET key [key ...]summary: Get the values of all the given keyssince: 1.0.0group: string

(2)使用命令

#批量根据key获取值,查询到的值: "1" "2" "3" "4" (nil) (nil),当我们查询一个没有的key,它的值为 nil,就是null的意思
MGET k1 k2 k3 k4 k5 k6

5、INCR: 让一个整型的key自增1

(1)帮助文档描述

 INCR keysummary: Increment the integer value of a key by onesince: 1.0.0group: string

(2)使用命令

# 使一个key自增,返回自增后的数值:(integer) 2
INCR k1

6、INCRBY: 让一个整型的key自增并指定步长

(1)帮助文档描述

 INCRBY key incrementsummary: Increment the integer value of a key by the given amountsince: 1.0.0group: string

(2)使用命令

# 使一个key自增指定步长,返回自增后的数值:(integer) 4
INCRBY k1 2

7、INCRBYFLOAT: 让一个浮点类型的key自增并指定步长

(1)帮助文档描述

 INCRBYFLOAT key incrementsummary: Increment the float value of a key by the given amountsince: 2.6.0group: string

(2)使用命令

# 使一个key自增指定步长,k5=12.1,返回自增后的数值: "12.6"
INCRBYFLOAT k5 0.5

8、SETNX: 添加一个String类型的键值对,前提是这个key不存在,否则不执行

(1)帮助文档描述

 SETNX key valuesummary: Set the value of a key, only if the key does not existsince: 1.0.0group: string

(2)使用命令

# 添加一个String键值对,取出来是"\xe8\xbf\x99\xe6\x98\xafkey6"
SETNX k6 这是key6

9、SETEX: 添加一个String类型的键值对,并且指定有效期

(1)帮助文档描述

SETEX key seconds valuesummary: Set the value and expiration of a keysince: 2.0.0group: string

(2)使用命令

# 添加一个指定时长的键值对,就是 SET k7 Jhon + EXPIRE k7 3000,命令执行
SETEX k7 3000 Jhon

思考: Redis没有MySQL中的Table的概念,如何区分不同类型的key。

例如:需要存储用户、商品信息到redis,由一个用户id是1,有个商品id也是1

key的结构

Redis的key允许有个多单词形成层级结构,多个单词之间用 “:” 隔开,格式如下:项目名:业务名:类型:id

(二)、Hash类型

Hash类型,页脚散列,其value是一个无序字典,类似HashMap结构

Hash结构的Value被分成了 fieldvalue 字段,即一个 key 对应的是多个键值对。

查看操作文档

help @hash

1、HSET key field value: 添加或修改hash-key 的 field 值

(1)帮助文档描述

 HSET key field value [field value ...]summary: Set the string value of a hash fieldsince: 2.0.0group: hash

(2)使用命令

HSET zengoo:user:1 name zain age 23 gender 0

2、HGET key field: 获取一个hash-key的field值

(1)帮助文档描述

 HGET key fieldsummary: Get the value of a hash fieldsince: 2.0.0group: hash

(2)使用命令

 HGET zengoo:user:1 name

3、HMSET: 批量添加多个hash-key的field值

(1)帮助文档描述

 HMSET key field value [field value ...]summary: Set multiple hash fields to multiple valuessince: 2.0.0group: hash

(2)使用命令

HMSET zengoo:product:1 name HWMate40 price 4599 tag phone size large

4、HMGET: 批量获取多个hash-key的field值

(1)帮助文档描述

 HMGET key field [field ...]summary: Get the values of all the given hash fieldssince: 2.0.0group: hash

(2)使用命令

HMGET zengoo:product:1 name price tag size

5、HGETALL: 获取一个hash-key的所有键值对

(1)帮助文档描述

 HGETALL keysummary: Get all the fields and values in a hashsince: 2.0.0group: hash

(2)使用命令

 HGETALL zengoo:product:1

6、HKEYS: 获取一个hash-key的所有field

(1)帮助文档描述

 HKEYS keysummary: Get all the fields in a hashsince: 2.0.0group: hash

(2)使用命令

HKEYS zengoo:product:1

7、HVALS: 获取一个hash-key的所有value

(1)帮助文档描述

 HVALS keysummary: Get all the values in a hashsince: 2.0.0group: hash

(2)使用命令

HVALS zengoo:product:1

8、HINCRBY: 让一个hash-key字段自增长指定步长

(1)帮助文档描述

 HINCRBY key field incrementsummary: Increment the integer value of a hash field by the given numbersince: 2.0.0group: hash

(2)使用命令

HINCRBY zengoo:product:1 price 1

9、HSETNX: 添加一个hash-key的field,若存在则不执行

(1)帮助文档描述

 HSETNX key field valuesummary: Set the value of a hash field, only if the field does not existsince: 2.0.0group: hash

(2)使用命令

HSETNX zengoo:product:1 provider HW

(三)、List类型

Redis的List类型与Java中 LinkedList 类似,可以看做是一个双向链表结果,既可以正向检索,又支持反向检索。

特征(链表特征):

  • 有序
  • 元素可重复
  • 插入和删除快
  • 查询速度一般

查询帮助文档

help @list

1、LPUSH key element…:入栈

(1)帮助文档描述

 LPUSH key element [element ...]summary: Prepend one or multiple elements to a listsince: 1.0.0group: list

(2)使用命令

LPUSH zengoo:praise:1 Zengoo Zain Jhon Anna Andy

2、LPOP key: 出栈,没有则返回nil

(1)帮助文档描述

 LPOP key [count]summary: Remove and get the first elements in a listsince: 1.0.0group: list

(2)使用命令

# 出栈指定 key 的 n 个 value
LPOP zengoo:praise:1 2

3、RPUSH key element…: 向队列插入一个或多个元素

(1)帮助文档描述

 RPUSH key element [element ...]summary: Append one or multiple elements to a listsince: 1.0.0group: list

(2)使用命令

# 入栈指定 key 的 n 个 value
RPUSH zengoo:praise:2 1 2 3

4、RPOP key: 队列出队

(1)帮助文档描述

 RPOP key [count]summary: Remove and get the last elements in a listsince: 1.0.0group: list

(2)使用命令

RPOP zengoo:praise:1 6

5、LRANGE key star end: 返回一段范围的所有元素

(1)帮助文档描述

 LRANGE key start stopsummary: Get a range of elements from a listsince: 1.0.0group: list

(2)使用命令

# 读取指定 key 的 0-9 索引的值
LRANGE zengoo:parise:1 0 9

6、BLPOP 和 BRPOP: 与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil

(1)帮助文档描述

#BLPOPBLPOP key [key ...] timeoutsummary: Remove and get the first element in a list, or block until one is availablesince: 2.0.0group: list#BRPOPBRPOP key [key ...] timeoutsummary: Remove and get the last element in a list, or block until one is availablesince: 2.0.0group: list

(2)使用命令

BLPOP zengoo:parise:1 10

为什么有左右侧的分别?

因为redis的list是链表形式的,可以从左右两侧挂载数据,可以认为是一个双向队列。

这里的BLPOP或者BRPOP中的B到底是什么意思?

这里的 B 是阻塞的意思,即等待一定的时间,要么过期,要么获取到值。

(四)、Set类型

Redis的Set结构与Java中的HashSet类似,可以看做一个value为null的hashSet,因为是一个hash表,因此具有与hashSet类似的特征:

  • 无序
  • 元素不重复
  • 查找快
  • 支持交并补差的操作

查询帮助文档

help @set

1、SADD key member…: 向set添加一个或多个元素

(1)帮助文档描述

 SADD key member [member ...]summary: Add one or more members to a setsince: 1.0.0group: set

(2)使用命令

SADD zengoo:friends:1 Any Femon Lucy Karen Elean

2、SREM key member…: 删除set中的指定元素

(1)帮助文档描述

 SREM key member [member ...]summary: Remove one or more members from a setsince: 1.0.0group: set

(2)使用命令

SREM zengoo:friends:1 Lucy

3、SCARD key: 返回set中元素的个数

(1)帮助文档描述

 SCARD keysummary: Get the number of members in a setsince: 1.0.0group: set

(2)使用命令

SCARD zengoo:friends:1

4、SISMEMBER key member: 判断一个元素是否存在

(1)帮助文档描述

 SISMEMBER key membersummary: Determine if a given value is a member of a setsince: 1.0.0group: set

(2)使用命令

SISMEMBER zengoo:friends Lucy

5、SMEMBERS: 获取set中的所有元素

(1)帮助文档描述

 SMEMBERS keysummary: Get all the members in a setsince: 1.0.0group: set

(2)使用命令

SMEMBERS zengoo:friends:1

6、SINTER ke1 key2…: 求key1与key2的交集

(1)帮助文档描述

 SINTER key [key ...]summary: Intersect multiple setssince: 1.0.0group: set

(2)使用命令

SINTER zengoo:friends:1 zengoo:friends:2

7、SDIF key1 key2…: 求key1与key2的差集

(1)帮助文档描述

 SDIFF key [key ...]summary: Subtract multiple setssince: 1.0.0group: set

(2)使用命令

SDIFF zengoo:friends:1 zengoo:friends:2

8、SUNION key1 key2…: 求key1与key2的并集

(1)帮助文档描述

 SUNION key [key ...]summary: Add multiple setssince: 1.0.0group: set

(2)使用命令

SUNION zengoo:friends:1 zengoo:friends:2

(五)、SortedSet类型

Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet类似,但底层的数据结构却差距很大。

SortedSet的每一个元素都带有score属性,可以给予score属性对元素进行排序,底层的视线是一个跳表(SkipList)+ Hash表。

查询文档:

help @sorted_set

特点:

  • 可排序
  • 元素不重复
  • 查询速度快

1、ZADD key score member: 添加一个或多个元素到sorted set,如果存在则更新score

(1)帮助文档描述

 ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member ...]summary: Add one or more members to a sorted set, or update its score if it already existssince: 1.2.0group: sorted_set

(2)使用命令

ZADD zengoo:basketball:zhejiang 1 yudu 2 kongjue 3 luosuan 4 alintuw 5 kuku

2、ZREM key member: 删除sorted set中的一个指定元素

(1)帮助文档描述

 ZREM key member [member ...]summary: Remove one or more members from a sorted setsince: 1.2.0group: sorted_set

(2)使用命令

ZREM zengoo:basketball:xinjiang removeObject

3、ZSCORE key member: 获取sorted set中的指定元素的score

(1)帮助文档描述

 ZSCORE key membersummary: Get the score associated with the given member in a sorted setsince: 1.2.0group: sorted_set

(2)使用命令

ZSCORE zengoo:basketball:zhejiang yudu

4、ZRANK key member: 获取sorted set中指定元素的排名

(1)帮助文档描述

 ZRANK key membersummary: Determine the index of a member in a sorted setsince: 2.0.0group: sorted_set

(2)使用命令

ZRANK zengoo:basketball:zhejiang kuku

5、ZCARD key: 获取sorted set 中的元素个数

(1)帮助文档描述

 ZCARD keysummary: Get the number of members in a sorted setsince: 1.2.0group: sorted_set

(2)使用命令

ZCARD zengoo:basketball:zhejiang

6、ZCOUNT key min max: 统计score值在指定范围内的所有元素的个数

(1)帮助文档描述

 ZCOUNT key min maxsummary: Count the members in a sorted set with scores within the given valuessince: 2.0.0group: sorted_set

(2)使用命令

ZCOUNT zengoo:basketball:zhejiang 2 5

7、ZINCRBY key increment member: 让sorted set 中的指定元素自增,并自定义步长

(1)帮助文档描述

 ZINCRBY key increment membersummary: Increment the score of a member in a sorted setsince: 1.2.0group: sorted_set

(2)使用命令

ZINCRBY zengoo:basketball:zhejiang 10 kuku

8、ZRANGE key min max: 按照score排序后,获取指定排名范围内的元素

(1)帮助文档描述

 ZRANGE key min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]summary: Return a range of members in a sorted setsince: 1.2.0group: sorted_set

(2)使用命令

ZRANGE zengoo:basketball:zhejiang 1 16

9、ZRANGEBYSCORE key min max: 按照score排序后,获取指定score范围内的元素

(1)帮助文档描述

 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]summary: Return a range of members in a sorted set, by scoresince: 1.0.5group: sorted_set

(2)使用命令

ZRANGEBYSCORE zengoo:basketball:zhejiang 0 100

10、ZDIFF、ZINTER、ZUNION: 求差集、交集、并集

(1)帮助文档描述

 ZDIFF numkeys key [key ...] [WITHSCORES]summary: Subtract multiple sorted setssince: 6.2.0group: sorted_setZINTER numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]summary: Intersect multiple sorted setssince: 6.2.0group: sorted_setZUNION numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]summary: Add multiple sorted setssince: 6.2.0group: sorted_set

三、Redis特殊数据类型

(一)GEO类型: 地理信息
(二)BitMap类型
(三)HyperLog类型


四、Redis通用命令

通用命令是不分数据类型通用的操作命令

(一)查询generic文档

help @generic

(二)常用命令:

1、KEYS: 查看符合模板的所有key(因为Redis是单线程执行,所以不建议在生产环境使用)。

(1)帮助文档描述

  KEYS pattern	#命令格式summary: Find all keys matching the given pattern	#命令作用since: 1.0.0	#起源版本group: generic  #隶属组别

(2)使用命令

#查询当前数据库的所有key
KEYS *#查询以a结尾的所有key
KEYS a*

2、DEL: 删除指定的Key

(1)帮助文档描述

  DEL key [key ...]summary: Delete a keysince: 1.0.0group: generic

(2)使用命令

#删除指定key(返回真实删除数)
DEL key1 key2

3、EXISTS: 查看是否存在指定key

(1)帮助文档描述

  EXISTS key [key ...]summary: Determine if a key existssince: 1.0.0group: generic

(2)使用命令

#查询指定key是否存在(返回查询到的数量,若为0则不存在key,若有则存在key)
EXISTS k2
#我的数据库中只有k1 一个key,所以查询k2的结果是 (integer) 0#查询多个key是否存在,缺陷是无法判断哪个存在
EXISTS k1 k2
#查询到的结果是 (integer) 1

4、EXPIRE: 给key设置有效期,到期删除(一看到这个就能想到外卖的付款倒计时)

因为内存是临时的,所以需要有效期,所以才会有这个命令

(1)帮助文档描述

  EXPIRE key secondssummary: Set a key's time to live in secondssince: 1.0.0group: generic

(2)使用命令

#给 key1 设置一个 5s 的时间,查看5s后是否还存在
EXPIRE k1 5
EXISTS k1//5s后,再次查询k1
EXISTS k1

5、TTL: 查看一个key的有效期

(1)帮助文档描述

  TTL keysummary: Get the time to live for a keysince: 1.0.0group: generic

(2)使用命令

#查看一个未设置有效期的key,查询结果: (integer) -1,代表永久有效
TTL k2#查看一个设置有效期为5分钟的key,查询结果: (integer) 2996,若过期,则为-2
TTL k1

http://www.mrgr.cn/p/50558225

相关文章

14.Netty源码之模拟简单的HTTP服务器

highlight: arduino-light 简单的 HTTP 服务器 HTTP 服务器是我们平时最常用的工具之一。同传统 Web 容器 Tomcat、Jetty 一样,Netty 也可以方便地开发一个 HTTP 服务器。我从一个简单的 HTTP 服务器开始,通过程序示例为你展现 Netty 程序如何配置启动&a…

创建维基WIKI百科和建立百度百科有何不同?

很多企业有出口业务,想在互联网上开展全球性网络营销,维基百科往往被认为是开展海外营销的第一站。其作用相当于开展国内网络营销的百度百科,经常有些企业给小马识途营销顾问提供的词条内容就是百度百科的内容,可事实上两个平台的…

Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy

最近使用Aspose.cell将excel转pdf过程中excel中时间格式列的显示和excel表里的值显示不一样。 excel里日期格式 yyyy/MM/dd pdf里日期格式MM/dd/yyyy 主要原因:linux和windows里内置的时间格式不一致,当代码部署到linux服务器的时候转换格式就会发生不一…

手写SpringBoot模拟核心流程

首先,SpringBoot是基于的Spring,所以我们要依赖Spring,然后我希望我们模拟出来的SpringBoot也支持Spring MVC的那一套功能,所以也要依赖Spring MVC,包括Tomcat等,所以在SpringBoot模块中要添加以下依赖&…

《MySQL 实战 45 讲》课程学习笔记(四)

深入浅出索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 索引的常见模型 哈希表 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Val…

Spring Boot 2.7.8以后mysql-connector-java与mysql-connector-j

错误信息 如果升级到Spring Boot 2.7.8&#xff0c;可以看到因为找不到mysql-connector-java依赖而出现错误。 配置&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…

【css】背景图片附着

属性&#xff1a;background-attachment 属性指定背景图像是应该滚动还是固定的&#xff08;不会随页面的其余部分一起滚动&#xff09;。 background-attachment: fixed&#xff1a;为固定&#xff1b; background-attachment: scroll为滚动 代码&#xff1a; <!DOCTYPE h…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(16)-Fiddler如何充当第三者再识AutoResponder标签-上

1.简介 Fiddler充当第三者&#xff0c;主要是通过AutoResponder标签在客户端和服务端之间&#xff0c;Fiddler抓包&#xff0c;然后改包&#xff0c;最后发送。AutoResponder这个功能可以算的上是Fiddler最实用的功能&#xff0c;可以让我们修改服务器端返回的数据&#xff0c…

校园跑腿小程序开发需要哪些核心功能?

提起校园跑腿小程序大家都不陌生&#xff0c;尤其是对上大学的伙伴们来说,更是熟悉得不能再熟悉了&#xff0c;和我们的生活息息相关&#xff0c;密不可分。 对于现在的年轻人来说&#xff0c;网购是非常简单和方便的一种购物方式&#xff0c;随之快递也会越来越多。在我们国家…

汉明距离,两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

题记&#xff1a; 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y&#xff0c;计算并返回它们之间的汉明距离。 示例 1&#xff1a; 输入&#xff1a;x 1, y 4 输出&#xff1a;2 解释&#xff1a; 1 (0 0 0 1) 4 (0 1 0 0…

无显示器设置家庭服务器树莓派4B,开启SSH,VNC,WIFI,配置内网穿透

前言 没有显示器对树莓派配置稍微有些繁琐&#xff0c;写一篇博客记录。 配置网络 以下都是在烧录好的sd卡根目录操作 创建一个ssh名字的空文件创建Wi-Fi配置&#xff0c;文件名称&#xff1a;wpa_supplicant.conf&#xff0c;内容&#xff1a; countryCN ctrl_interfaceDI…

给el-table实现列显隐

用过若依的都知道&#xff0c;在使用el-table 时候&#xff0c;实现列显隐效果是要给每个列加v-if 判断的&#xff0c;这种代码过于繁琐&#xff0c;于是翻看el-table包的代码&#xff0c;调试后发现内部的【插入】和【删除】两个方法可以达到我们要的效果。 项目不提供源码&a…

汽车产业链面临重大变革 大运乘用车加强产业布局 助力低碳出行

当前&#xff0c;国家“双碳”战略的全面实施&#xff0c;全球绿色产业发展理念的不断加深以及汽车产品形态、交通出行模式、能源消费结构变革所呈现的发展机遇等诸多因素&#xff0c;持续推动新能源汽车产业全面转型提速。据悉&#xff0c;2022年&#xff0c;中国新能源汽车销…

如何在远距离传输大型文件时避免网络延迟和数据丢失

在当今的信息时代&#xff0c;人们对于远距离传输大型文件的需求日益增长&#xff0c;而远距离传输大型文件则是其中不可忽视的一项需求。然而&#xff0c;在远距离传输大型文件时&#xff0c;网络延迟和数据丢失问题经常会出现&#xff0c;这不仅会影响传输效率&#xff0c;还…

如何通过nginx代理实现外网访问内网mysql或oracle数据库

项目开发部署中经常会遇到MySQL或Oracle数据库安装在内网&#xff0c;而我们的应用服务只能部署在外网&#xff0c;如果实现外网服务访问连接内网的数据库呢&#xff1f;本次介绍如何通过Nginx配置实现外网访问内网数据库。 1、前置机服务器 首先要保证有一台前置机服务器既可…

vuejs源码阅读之代码生成器

代码生成器是模版编译的最后以后&#xff0c;它的作用是将AST转换成渲染函数中的内容&#xff0c;这个内容可以称为代码字符串。 代码字符串可以被包装在函数中执行&#xff0c;这个函数就是我们通常说的渲染函数。 渲染函数被执行之后&#xff0c;可以生成一份VNode&#xf…

windows 安装 mongodb 数据库

软件下载 访问官方的下载地址&#xff1a; https://www.mongodb.com/try/download/community &#xff0c;然后选择对应的版本进行下载 下载好了之后双击进行安装 软件安装 1、点击 next 点击下一步 2、勾选接受协议&#xff0c;点击 next 3、第三页有两个选项&#x…

Flowable-服务-Http任务

目录 定义图形标记XML内容界面操作 定义 Http 任务不是 BPMN 2.0 规范定义的官方任务&#xff0c;在 Flowable 中&#xff0c;Http 任务是作为一种特殊的服务 任务来实现的&#xff0c;主要调用Http服务使用。 图形标记 由于 Http 任务不是 BPMN 2.0 规范的“官方”任务&…

小程序学习(四):WXML模板语法

WXML模板语法-数据绑定 1.数据绑定的基本原则 ①在data中定义数据 ②在WXML中使用数据 2.动态绑定属性 WXML模板语法-事件绑定 3.什么是事件 4.小程序中常用的事件 5.事件对象的属性列表 6.target和currentTarget的区别 7.bindtap的语法格式 8.在事件处理函数中为data中的数据…

服务器介绍

本文章转载与b战up主谈三国圈&#xff0c;仅用于学习讨论&#xff0c;如有侵权&#xff0c;请联系博主 机架型服务器 堆出同时服务百万人次机组 刀型服务器 服务器炸了 比如用户访问量暴增 超过机组的峰值处理能力&#xff0c;进而导致卡顿或炸服&#xff0c; 适合企业的塔式…