Redis数据结构什么时候用String,什么时候用hash

ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏并订阅专栏;同时不要吝啬您的花花

一、用String的场景(核心:单值存储、原子操作、简单场景)

  1. 存储单个独立的值(无多字段关联):比如验证码(key=phone:138xxxx,value=666666)、token、单个数值(如商品库存、访问量)。
  2. 需要原子操作:String支持incr/decr(计数器)、append(追加)、setnx(分布式锁)等原子操作,适合计数器(文章阅读量)、分布式锁场景。
  3. 存储二进制数据:可直接存储图片、视频等二进制流(value最大512MB),适合小文件缓存。
  4. 简单缓存场景:无需拆分字段,直接缓存整个对象(如JSON字符串),适合字段少、不常单独修改字段的对象。

二、用Hash的场景(核心:多字段对象、单独操作字段)

  1. 存储多字段关联的对象:比如用户信息(key=user:1001,hash字段=name/age/phone)、商品详情(name/price/stock),对应现实中的“实体对象”。
  2. 需要单独操作对象的某个字段:比如只修改用户的年龄、只更新商品的库存,无需获取整个对象,节省带宽和内存(避免String存储JSON时,修改一个字段需整体序列化/反序列化)。
  3. 批量管理多个关联字段:Hash支持hgetall(获取所有字段)、hmget(批量获取指定字段)、hmset(批量设置字段),适合对对象字段进行批量操作的场景。

关键总结

  • 单值、原子操作、二进制存储 → 用String;
  • 多字段对象、需单独操作字段、批量管理 → 用Hash。

补充:若对象字段极少(如仅2个字段),用String存储JSON更简洁;若字段较多(3个及以上),用Hash更高效。

ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏并订阅专栏;同时不要吝啬您的花花

Redis常用的数据结构 文章被收录于专栏

Redis 作为高性能键值数据库,核心在于丰富的数据结构。本专栏聚焦String、Hash、List、Set、ZSet、Bitmap、HyperLogLog 等常用类型,从底层原理、使用场景到实战示例,清晰讲解每种结构的优缺点与最佳实践。帮你快速掌握如何用对数据结构,提升缓存、限流、排行榜、消息队列等业务场景的开发效率,写出更稳定、高效的 Redis 应用。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4401次浏览 77人参与
# 找AI工作可以去哪些公司? #
9509次浏览 255人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15489次浏览 224人参与
# 你的实习产出是真实的还是包装的? #
20514次浏览 343人参与
# AI面会问哪些问题? #
28438次浏览 572人参与
# 春招至今,你的战绩如何? #
66857次浏览 589人参与
# 厦门银行科技岗值不值得投 #
8146次浏览 188人参与
# 从事AI岗需要掌握哪些技术栈? #
9382次浏览 329人参与
# 中国电信笔试 #
32126次浏览 295人参与
# 你做过最难的笔试是哪家公司 #
34705次浏览 253人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
341033次浏览 2175人参与
# 金三银四,你的春招进行到哪个阶段了? #
22379次浏览 284人参与
# 同bg的你秋招战况如何? #
212250次浏览 1121人参与
# 哪些公司真双非友好? #
69755次浏览 289人参与
# 如何准备秋招 #
78315次浏览 868人参与
# 阿里笔试 #
179152次浏览 1318人参与
# 机械人避雷的岗位/公司 #
62713次浏览 393人参与
# 小马智行求职进展汇总 #
25149次浏览 80人参与
# 第一份工作一定要去大厂吗 #
14992次浏览 122人参与
# 担心入职之后被发现很菜怎么办 #
291406次浏览 1210人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26297次浏览 310人参与
# 应届生第一份工资要多少合适 #
20707次浏览 86人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务