Redis 常见的几种数据结构说一下?各自的使用场景?
-
string
介绍:string 数据结构是简单的 key-value 类型。
使用场景: 一般常用在需要计数的场景,比如用户的访问次数、热点文章的点赞转发数量等
等。
-
list
介绍:list 即是 链表
使用场景:发布与订阅或者说消息队列、慢查询。
-
hash
介绍:hash 类似于 JDK1.8 前的 HashMap,内部实现也差不多(数组 + 链表)。
使用场景:系统中对象数据的存储。
-
set
介绍:set 类似于 Java 中的 HashSet 。Redis 中的 set 类型是一种无序集合,集合中的元素
没有先后顺序。当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的选
择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口,这个也是 list 所不能提
供的。可以基于 set 轻易实现交集、并集、差集的操作
使用场景: 需要存放的数据不能重复以及需要获取多个数据源交集和并集等场景。
-
sorted set
介绍:和 set 相比,sorted set 增加了一个权重参数 score,使得集合中的元素能够按 score
进行有序排列,还可以通过 score 的范围来获取元素的列表。有点像是 Java 中 HashMap 和
TreeSet 的结合体。
使用场景:需要对数据根据某个权重进行排序的场景。比如在直播系统中,实时排行信息包含
直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等
信息。
-
bitmap
介绍:bitmap 存储的是连续的二进制数字(0 和 1),通过 bitmap, 只需要一个 bit 位来表
示某个元素对应的值或者状态,key 就是对应元素本身 。我们知道 8 个 bit 可以组成一个
byte,所以 bitmap 本身会极大的节省储存空间。。
使用场景:适合需要保存状态信息(比如是否签到、是否登录...)并需要进一步对这些信息进
行分析的场景。比如用户签到情况、活跃用户情况、用户行为统计(比如是否点赞过某个视
频)。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)