此篇罗列了
Redis
的所有数据类型并介绍了常用的 5 种数据类型 (strings,Lists,Hashes,Sets,Sorted sets
) 简单的命令和使用场景
Redis 的数据类型
-
Binary-safe strings
, 简单的K-V
结构的存储 -
Lists
, 按插入顺序排序的字符串元素集合。基本上就是链表 -
Sets
, 唯一的,不排序的集合 -
Sorted sets
, 类似于集合,但每个字符串元素都与一个称为 score 的浮数值相关联, 元素总是按分数排序,因此与集合不同,可以检索一系列元素 -
Hashes
, 由与值关联的字段组成的映射。字段和值都是字符串 -
Bit arrays (or simply bitmaps)
, 可以使用特殊命令处理字符串值 -
HyperLogLogs
, 这是一个概率数据结构,用于估计集合的基数 -
Streams
, 仅附加的类似于地图的条目集合,提供抽象日志数据类型
Redis 常用的数据类型
1. strings
strings
可以用来存储 k-v
结构的数据, 做计数器等;
常用命令:
set <key> <value>
get <key>
incr <key>
mget <key> <key...>
2. lists
Lists
, 可以用来实现粉丝列表, 评论列表等;
常用命令:
lpush <key> <value>
lpop <key>
rpush <key> <value>
rpop <key>
lrange <key> <start> <end>
# lpush 是把元素插入到链表的头部,lpop 是从头部弹出一个元素并删除
# rpush 是把元素插入到链表的尾部,rpop 是从尾部弹出一个元素并删除
3. sets
Sets
, 可以利用其无序, 唯一 (自动去重) 的特性,例如,共同好友 (用到了 SINTER
命令) 等;
执行sadd <key> <value>
, 成功返回1
, 数据已存在返回0
, 数据类型不对返回异常
常用命令:
sadd <key> <member> <member...>
scard <key>
sdiff <key> <key...>
spop <key> [count]
smembers <key>
4. sorted sets
Sorted sets
, 用来做排名等;
zadd
命令如果已存在会覆盖
常用命令:
zadd <key> <score> <member>
zrange <key> <start> <end>
zrem <key> <member>
5. hashes
Hashes
, 用来存储个人信息等;
常用命令:
hset <key> <field> <value>
hget <key> <field>
hgetall <key>
更多关于 Redis 数据类型
的内容可以参考:
Redis 命令 - 官方文档
Redis 数据类型 - 官方文档