目录


Redis 数据类型

Redis 支持多种数据类型,使其不仅仅是一个键值存储,而是一个功能强大的数据结构服务器。以下是 Redis 的主要数据类型及其基本操作和应用示例(以 www.52juqingba.com 为例):

字符串 (String)

  • 描述:最基本的数据类型,用于存储文本、数字或二进制数据。最大长度为 512MB。
  • 常用命令
  • 设置键值:SET key value
    • 示例:SET drama:1 "来自www.52juqingba.com的剧情简介"
  • 获取值:GET key
    • 示例:GET drama:1 → 返回 "来自www.52juqingba.com的剧情简介"
  • 自增(数字):INCR key
    • 示例:INCR drama:views → 访问量加 1
  • 应用:缓存剧情简介、计数器(如页面访问量)。

列表 (List)

  • 描述:有序的字符串列表,支持从两端插入和移除元素,基于双向链表实现。
  • 常用命令
  • 添加到左侧:LPUSH key value
    • 示例:LPUSH drama_list
  • 添加到右侧:RPUSH key value
    • 示例:RPUSH drama_list
  • 查看列表:LRANGE key start end
    • 示例:LRANGE drama_list 0 -1 → 返回 ["剧集1", "剧集2"]
  • 弹出元素:LPOP keyRPOP key
    • 示例:RPOP drama_list → 返回 "剧集2"
  • 应用:任务队列、推荐剧集列表。

哈希 (Hash)

  • 描述:键值对的集合,适合存储对象(如结构化数据)。
  • 常用命令
  • 设置字段值:HSET key field value
    • 示例:HSET drama:info title "热门剧情"
  • 获取字段值:HGET key field
    • 示例:HGET drama:info title → 返回 "热门剧情"
  • 获取所有字段:HGETALL key
    • 示例:HGETALL drama:info
  • 应用:存储剧情详细信息(如标题、导演、评分)。

集合 (Set)

  • 描述:无序、不重复的字符串集合,支持交集、并集等操作。
  • 常用命令
  • 添加元素:SADD key value
    • 示例:SADD tags "爱情"
  • 查看所有元素:SMEMBERS key
    • 示例:SMEMBERS tags → 返回 ["爱情"]
  • 检查元素是否存在:SISMEMBER key value
    • 示例:SISMEMBER tags "爱情" → 返回 1(存在)
  • 应用:标签系统、用户兴趣集合。

有序集合 (Sorted Set)

  • 描述:带分数的集合,元素唯一,按分数自动排序。
  • 常用命令
  • 添加元素及分数:ZADD key score value
    • 示例:ZADD drama_rank 9.5 "高分剧情"
  • 查看排名:ZRANGE key start end
    • 示例:ZRANGE drama_rank 0 -1 → 返回 ["高分剧情"]
  • 获取分数:ZSCORE key value
    • 示例:ZSCORE drama_rank "高分剧情" → 返回 9.5
  • 应用:排行榜(如剧情评分排名)、优先级队列。

其他数据类型(简述)

  • 位图 (Bitmap):通过字符串操作位,支持 SETBITGETBIT,用于节省空间的计数场景。
  • HyperLogLog:用于基数统计(如独立访客数),以极小的内存提供近似结果。
  • 地理空间 (Geo):支持存储经纬度并计算距离,如 GEOADDGEODIST
  • 流 (Stream):Redis 5.0 引入,用于日志或事件流处理,如 XADDXREAD

参考资料