Redis 入门笔记:常用数据结构详解

· Redis笔记 Redis 缓存 数据结构 入门笔记 NoSQL · 0 阅读 · 约 3 分钟

Redis 数据结构概览

Redis 是一个基于内存的键值数据库,值支持多种数据结构。常用的五种基础类型:String、Hash、List、Set、ZSet。

String(字符串)

最基础的类型,可以存字符串、数字,常用于缓存对象 JSON、计数器。

SET name "tom"
GET name
SET counter 1
INCR counter        # 自增,原子操作
INCRBY counter 10   # 增加指定数值
SET key "val" EX 60 # 设置 60 秒过期
TTL key             # 查看剩余过期时间

使用场景:缓存、计数器、分布式锁(配合 SET NX EX)。

Hash(哈希)

适合存对象的多个字段,可以单独修改某个字段。

HSET user:1 name tom
HSET user:1 age 18
HGET user:1 name
HGETALL user:1
HDEL user:1 age

使用场景:购物车、用户信息缓存。

List(列表)

双向链表结构,支持从两端插入和弹出。

LPUSH list a b c
RPUSH list d
LRANGE list 0 -1    # 查看全部
LPOP list
RPOP list
LLEN list           # 长度

使用场景:消息队列、最新消息列表、时间线。

Set(集合)

无序、元素不重复,支持交并差集运算。

SADD tags a b c
SMEMBERS tags
SISMEMBER tags a    # 判断成员是否存在
SINTER set1 set2    # 交集
SUNION set1 set2    # 并集
SDIFF set1 set2     # 差集

使用场景:标签、抽奖去重、共同好友。

ZSet(有序集合)

每个元素带一个分数 score,按分数排序,可去重。

ZADD rank 100 tom
ZADD rank 90 jerry
ZRANGE rank 0 -1 WITHSCORES       # 按分数升序
ZREVRANGE rank 0 2 WITHSCORES     # 前三名
ZSCORE rank tom
ZRANK rank tom                    # 排名

使用场景:排行榜、延迟队列(用时间戳作 score)。

小结

类型 特点 典型场景
String 简单键值 缓存、计数器
Hash 字段级操作 对象缓存、购物车
List 双端进出 消息队列
Set 去重无序 标签、共同好友
ZSet 分数排序 排行榜

建议先在本地用 redis-cli 把上面的命令都敲一遍,理解每种结构的特点后再结合业务场景选用。