Redis-2-基本数据类型
1.Redis基础命令
| 命令 | 描述 | 示例 |
|---|---|---|
| KEYS | 查看符合模板的所有key | KEYS pattern |
| DEL | 删除一个指定的key | DEL key |
| EXISTS | 判断key是否存在 | EXISTS key |
| EXPIRE | 给一个key设置有效期,有效期到期时该key会被自动删除 | EXPIRE key seconds |
| TTL | 查看一个KEY的剩余有效期 | TTL key |
2.Redis基本数据类型
要查询Redis具体的命令,可以在官网进行的这里查询。
注意有个筛选列表,比如看String的可以这样。

下面的是我拿这些命令做的机翻,我只是整理在这里。
含义拿不准的,可以自己到官网看下原文。
然后,我们前文提到了5种基本类型的底层实现。
| 数据类型 | 使用的数据结构 | 说明 |
|---|---|---|
| String | SDS | 简单动态字符串,预分配空间,O(1) 复杂度的长度查询 |
| List | LinkedList、ZipList | 传统链表结构,适合频繁插入和删除;紧凑列表,适合少量小数据 |
| Hash | HashTable、ZipList | 高效的键值对存储和查找,使用链地址法解决冲突 |
| Set | IntSet、HashTable | 紧凑的数据结构,只存储整数,节省内存,适合快速查找 |
| Sorted Set | SkipList、ZipList | 分层索引结构,平均 O(log N) 复杂度,适合快速插入、删除和查找 |
2.1 String
SDS
1.命令
| 命令 | 描述 |
|---|---|
| APPEND | 将值追加到一个键后面。 |
| BITCOUNT | 统计字符串中被设置为 1 的位的数量。 |
| BITFIELD | 在字符串上执行任意位域整数操作。 |
| BITFIELD_RO | 在字符串上执行任意只读位域整数操作。 |
| BITOP | 在字符串之间执行按位操作。 |
| BITPOS | 找到字符串中第一个设置为 1 或 0 的位。 |
| DECR | 将键存储的数字减一。 |
| DECRBY | 将键存储的数字减少指定的值。 |
| GET | 获取键的值。 |
| GETBIT | 返回指定偏移量的位值。 |
| GETDEL | 获取键的值并删除键。 |
| GETEX | 获取键的值并可选地设置其过期时间。 |
| GETRANGE | 获取存储在键中的字符串的子字符串。 |
| GETSET | 设置键的字符串值并返回其旧值。 |
| INCR | 将键存储的数字加一。 |
| INCRBY | 将键存储的数字增加指定的值。 |
| INCRBYFLOAT | 将键存储的数字增加指定的浮点数。 |
| MGET | 获取所有给定键的值。 |
| MSET | 将多个键设置为多个值。 |
| MSETNX | 将多个键设置为多个值,仅当所有键都不存在时。 |
| PSETEX | 设置键的值和到期时间(以毫秒为单位)。 |
| SET | 设置键的字符串值。 |
| SETBIT | 设置或清除指定偏移量的位。 |
| SETEX | 设置键的值和到期时间。 |
| SETNX | 仅当键不存在时设置键的值。 |
| SETRANGE | 覆盖键中存储的字符串的一部分。 |
| STRLEN | 获取存储在键中的值的长度。 |
2.场景
应用场景:缓存对象、计数器、会话管理。
示例:存储用户会话信息、网页访问计数。
3.常见问题
string 和 map存储对象有什么区别
在 Redis 中,使用 String 存储对象时,将整个对象序列化为一个字符串,适合存储简单对象,读取和写入速度快,但更新某个字段需要重新序列化整个对象。
而使用 Hash 存储对象时,将对象的每个字段作为键值对存储,方便部分字段的操作和更新,适合对象字段较多的情况,但复杂度和性能开销比 String 高。
选择 String 或 Hash 取决于对象的复杂度和操作需求。
2.2 List
LinkedList、ZipList
1.命令
| 命令 | 描述 |
|---|---|
| BLPOP | 移除并返回列表的第一个元素,若列表为空则阻塞直到有元素可弹出。 |
| BRPOP | 移除并返回列表的最后一个元素,若列表为空则阻塞直到有元素可弹出。 |
| BRPOPLPUSH | 从一个列表中弹出一个元素并将其推入到另一个列表中,若列表为空则阻塞。 |
| LINDEX | 获取列表中指定索引的元素。 |
| LINSERT | 在列表的指定位置插入元素。 |
| LLEN | 获取列表的长度。 |
| LMOVE | 从一个列表中移除元素并将其添加到另一个列表中。 |
| LMPOP | 从多个列表中弹出第一个元素。 |
| LPOP | 移除并返回列表的第一个元素。 |
| LPOS | 返回列表中第一次出现指定元素的位置。 |
| LPUSH | 将一个或多个值插入到列表头部。 |
| LPUSHX | 将一个值插入到已存在的列表头部。 |
| LRANGE | 获取列表中指定范围的元素。 |
| LREM | 从列表中移除指定数量的元素。 |
| LSET | 设置列表中指定位置的元素值。 |
| LTRIM | 修剪列表,使其只保留指定范围内的元素。 |
| RPOP | 移除并返回列表的最后一个元素。 |
| RPOPLPUSH | 移除列表的最后一个元素并将其添加到另一个列表的头部。 |
| RPUSH | 将一个或多个值插入到列表尾部。 |
| RPUSHX | 将一个值插入到已存在的列表尾部。 |
2.场景
应用场景:消息队列、任务队列。
示例:存储评论列表、最新活动记录。
2.3 Hash
1.命令
| 命令 | 描述 |
|---|---|
| HDEL | 删除一个或多个哈希字段。 |
| HEXISTS | 检查哈希字段是否存在。 |
| HGET | 获取哈希字段的值。 |
| HGETALL | 获取哈希中所有字段和值。 |
| HINCRBY | 为哈希字段的整数值加上指定增量。 |
| HINCRBYFLOAT | 为哈希字段的浮点数值加上指定增量。 |
| HKEYS | 获取哈希中的所有字段。 |
| HLEN | 获取哈希中的字段数量。 |
| HMGET | 获取一个或多个哈希字段的值。 |
| HMSET | 设置多个哈希字段的值。 |
| HRANDFIELD | 随机获取哈希中的一个或多个字段。 |
| HSCAN | 迭代哈希中的字段和值。 |
| HSET | 设置哈希字段的值。 |
| HSETNX | 仅当字段不存在时,设置哈希字段的值。 |
| HSTRLEN | 获取哈希字段值的字符串长度。 |
| HVALS | 获取哈希中的所有值。 |
2.场景
应用场景:存储对象、用户信息。
示例:存储用户配置、会话数据。
2.4 Set
1.命令
| 命令 | 描述 |
|---|---|
| SADD | 向集合添加一个或多个成员。 |
| SCARD | 获取集合的成员数量。 |
| SDIFF | 返回一个集合与其他集合之间的差集。 |
| SDIFFSTORE | 将一个集合与其他集合之间的差集存储在一个新的集合中。 |
| SINTER | 返回一个集合与其他集合的交集。 |
| SINTERSTORE | 将一个集合与其他集合的交集存储在一个新的集合中。 |
| SISMEMBER | 判断成员元素是否是集合的成员。 |
| SMEMBERS | 返回集合中的所有成员。 |
| SMISMEMBER | 返回一个或多个成员是否在集合中。 |
| SMOVE | 将成员从一个集合移动到另一个集合。 |
| SPOP | 移除并返回集合中的一个或多个随机成员。 |
| SRANDMEMBER | 返回集合中的一个或多个随机成员。 |
| SREM | 移除集合中的一个或多个成员。 |
| SSCAN | 迭代集合中的元素。 |
| SUNION | 返回所有给定集合的并集。 |
| SUNIONSTORE | 将所有给定集合的并集存储在一个新的集合中。 |
2.场景
应用场景:标签系统、好友列表。
示例:管理用户兴趣标签、推荐系统。
2.5 Sorted Set
1.命令
| 命令 | 描述 |
|---|---|
| BZPOPMAX | 移除并返回一个或多个有序集中的分数最高的成员,若有序集为空则阻塞。 |
| BZPOPMIN | 移除并返回一个或多个有序集中的分数最低的成员,若有序集为空则阻塞。 |
| ZADD | 向有序集添加一个或多个成员,或更新已存在成员的分数。 |
| ZCARD | 获取有序集的成员数量。 |
| ZCOUNT | 计算指定分数区间内成员数量。 |
| ZDIFF | 返回一个有序集与其他有序集之间的差集。 |
| ZDIFFSTORE | 将一个有序集与其他有序集之间的差集存储在一个新的有序集中。 |
| ZINCRBY | 为有序集的成员增加指定分数。 |
| ZINTER | 返回一个或多个有序集的交集。 |
| ZINTERSTORE | 将一个或多个有序集的交集存储在一个新的有序集中。 |
| ZLEXCOUNT | 计算指定成员区间内的成员数量。 |
| ZMSCORE | 获取一个或多个成员的分数。 |
| ZPOPMAX | 移除并返回有序集中分数最高的成员。 |
| ZPOPMIN | 移除并返回有序集中分数最低的成员。 |
| ZRANDMEMBER | 返回一个或多个随机成员及其分数。 |
| ZRANGE | 返回指定区间内的成员。 |
| ZRANGEBYLEX | 返回指定成员区间内的成员。 |
| ZRANGEBYSCORE | 返回指定分数区间内的成员。 |
| ZRANGESTORE | 将指定区间内的成员存储在一个新的有序集中。 |
| ZRANK | 返回成员在有序集中的排名(按分数升序)。 |
| ZREM | 移除一个或多个成员。 |
| ZREMRANGEBYLEX | 移除指定成员区间内的成员。 |
| ZREMRANGEBYRANK | 移除指定排名区间内的成员。 |
| ZREMRANGEBYSCORE | 移除指定分数区间内的成员。 |
| ZREVRANGE | 返回指定区间内的成员(按分数降序)。 |
| ZREVRANGEBYLEX | 返回指定成员区间内的成员(按字典序逆序)。 |
| ZREVRANGEBYSCORE | 返回指定分数区间内的成员(按分数降序)。 |
| ZREVRANK | 返回成员在有序集中的排名(按分数降序)。 |
| ZSCAN | 迭代有序集中的元素及其分数。 |
| ZSCORE | 返回成员的分数。 |
| ZUNION | 返回多个有序集的并集。 |
| ZUNIONSTORE | 将多个有序集的并集存储在一个新的有序集中。 |
2.场景
应用场景:排行榜、延迟队列。
示例:游戏排行榜、定时任务。

浙公网安备 33010602011771号