reids的数据结构的应用场景

String 字符串

  • 特点:二进制安全,最简单结构
  • 业务场景:分布式锁(SET NX EX)、验证码、token、计数器、简单 JSON 缓存
  • 注意:分布式锁 value 存唯一 UUID,释放锁要用 Lua 脚本,不能直接 DEL

Hash(key‑field‑value)

  • 特点:类似 map,支持局部更新单个字段,不用全量重写
  • 业务场景:用户基础信息、购物车、商品基础信息
  • 注意:只适合扁平对象,不支持嵌套对象;嵌套复杂对象用 String (JSON) / RedisJSON

List 双向链表

  • 特点:有序、允许重复;两端读写快,中间索引查询慢
  • 业务场景:简易消息队列、消息列表、班级对应一批学生名称
  • 注意:不要拿 List 做大量中间位置查询

Set 集合(无序,元素不重复)

  • 特点:自动去重;支持交集 SINTER、并集 SUNION、差集 SDIFF
  • 业务场景:帖子点赞防重复、共同好友计算、标签、小数据 UV 去重
  • 坑:只能给整个 key 设置过期,集合内部单个元素不能单独过期;无序,不能做排序;不适合分布式锁

ZSet 有序集合 member+score

  • 特点:元素唯一,依靠 score 排序;score 仅用来排序
  • 业务场景:排行榜、点赞热度排序、延时队列、带过期的去重(score 存时间戳)
  • 坑:score 是 double 类型,存在精度丢失;不要把完整业务数据存入 score

Bitmap(底层是 String,命令操作 bit 位)

  • 业务场景:用户签到,偏移量代表日期,0 未签到,1 已签到
  • 特点:内存占用极低;offset 下标从 0 开始

HyperLogLog(底层是 String,概率统计)

  • 业务场景:海量 UV 独立访客统计
  • 特点:内存固定约 12KB;允许 0.81% 误差;⚠️拿不到原始元素,只能得到估算总数
  • 命令:PFADD 添加、PFCOUNT 统计、PFMERGE 合并

RedisJSON(Redis8 原生 / RedisStack 模块)

  • 特点:服务端识别 JSON 树形结构,支持 JSONPath 局部读写嵌套字段、数组
  • 对比:
    • String 存 JSON 字符串:全读全改
    • Hash:只能扁平一层
    • RedisJSON:支持多层嵌套局部更新
相关推荐
l1t7 分钟前
DeepSeek总结的AI 智能体应该用哪种语言搜索其记忆:SQL 还是 SPARQL?
数据库·人工智能·sql
麦壳饼20 分钟前
SonnetDB:PID 调参实战:阶跃响应分析与参数解读
数据库·sonnetdb
猿究院--Cu-Sn合金1 小时前
Spring Boot + DeepSeek 求职 Agent 实践:工具注册、多轮调用与简历 JD 对比
数据库·人工智能·spring boot·后端·deepseek
IvorySQL1 小时前
PostgreSQL 日报|Anonymizer 3.3 修复高危漏洞(10 月 29 日)
数据库·postgresql
geovindu1 小时前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
zyseo81 小时前
谷歌SEO 关键词研究完整方法论:从种子词到优先级矩阵
数据库·人工智能·矩阵
PaperData1 小时前
2000-2025年上市公司绿色金融改革创新试验区政策试点DID
数据库
Championship.23.241 小时前
Linux 内存管理深度解析与实战指南(基于 Linux 5.10+)
数据库
迪康coolmu2 小时前
金融客户数据合规落地:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·数据库·经验分享·安全·网络安全·金融
郭小李2 小时前
转发与重定向
java·服务器·数据库