(二)Redis 的五大核心数据结构

(二)Redis 的五大核心数据结构

在使用 Redis 之前需要先详细地了解其数据结构,Redis 不仅仅是一个简单的 Key-Value 存储,它支持丰富的数据结构,使其可以适应丰富的业务场景,本文将依次介绍其五种数据结构和对应的应用场景。

String (字符串)

  1. 特点

最基础的数据结构,可以 key 对应一个 String 字符串,最大支持 512MB

  1. 常用命令

    • SET key value : 设置值

    • GET key: 获取值

    • INCR key:值增涨

    • APPEND key value: 追加值

  2. 应用场景

    • 缓存对象数据

    • 实现简单计数器(浏览量、点赞等)

List (列表)

  1. 特点

    • 双向链表,支持从两端插入/弹出元素

    • 插入顺序即保存顺序

  2. 常用命令

    • LPUSH key value:左侧插入
    • RPUSH key value:右侧插入
    • LPOP key / RPOP key:弹出
    • LRANGE key start stop:获取区间元素
  3. 应用场景

    • 消息队列(配合阻塞命令使用,如 BLPOP)
    • 评论列表、任务列表等

Set(集合)

  1. 特点
    • 无序且不重复的元素集合
    • 底层使用哈希表实现
  2. 常用命令
    • SADD key member:添加元素
    • SREM key member:移除元素
    • SISMEMBER key member:是否存在
    • SUNION key1 key2:并集
    • SINTER key1 key2:交集
  3. 应用场景
    • 标签系统、好友关系、抽奖系统(去重)
    • 社交系统中的共同好友等交集运算

Sorted Set(有序集合)

  1. 特点
    • 每个元素带一个 score,按 score 排序
    • 支持按分值范围、排名获取元素
  2. 常用命令
    • ZADD key score member: 向有序集合 key 添加一个成员 member,并为它指定分数 score。
    • ZRANGE key start stop: 返回有序集合中从 start 到 stop 之间的成员,按照分数从小到大排序。
    • ZREVRANGE key start stop: 与 ZRANGE 相反,返回的是按分数从大到小排序的成员。
    • ZREM key member: 从有序集合 key 中移除指定的 member。
    • ZRANK key member:获取排名
  3. 应用场景
    • 排行榜(积分、点赞数等)
    • 延迟任务队列(score 表示时间戳)

Hash(哈希)

  1. 特点
    • 键值对集合,适合存储对象(如用户信息)
  2. 常用命令
    • HSET key field value: 插入值
    • HGET key field: 获取哈希表 key 中指定字段 field 的值。
    • HGETALL key: 获取哈希表 key 中的所有字段和值。
    • HDEL key field: 从哈希表 key 中删除指定字段 field。
  3. 应用场景
    • 存储对象属性,如用户资料、商品信息
    • 适合对字段频繁更新的数据结构