Redis常见数据结构使用场景
- Redis
- 时间:2020-11-03 18:18
- 4182人已阅读
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
String
String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是
数字
。常规key-value缓存应用;
计数
功能的缓存:微博数,粉丝数等。
6.2 Hash
Hash是一个string类型的field
和value(<key,value>)
的映射表,hash特别适合用于存储对象。 比如我们可以Hash数据结构来存储用户信息,商品信息
等等。
在做单点登录的时候,就是用这种数据结构存储用户信息,
以cookieId作为key
,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果
。
6.3 List
list就是链表,Redis list的应用场景非常多,也是Redis最重要的数据结构之一,比如微博的关注列表,粉丝列表,最新消息排行等功能都可以用Redis的list结构来实现。
Redis list的实现为一个双向链表
,即可以支持反向查找和遍历
,更方便操作,不过带来了部分额外的内存开销
。
使用List的数据结构,可以做简单的消息队列
的功能。另外还有一个就是,可以利用lrange命令
,做基于redis的分页功能
,性能极佳,用户体验好。
6.4 Set
set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的(没有重复的数据)。
可以做全局去重的功能
。为什么不用JVM自带的Set进行去重?因为我们的系统一般都是集群部署,使用JVM自带的Set,比较麻烦,难道为了一个做一个全局去重,再起一个公共服务,太麻烦了。
另外,就是利用交集、并集、差集
等操作,可以计算共同喜好,全部的喜好,自己独有的喜好
等功能。
6.5 Sorted Set
和set相比,sorted set增加了一个权重参数score
,使得集合中的元素能够按score进行有序排列
。
举例: 在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜
,弹幕消息(可以理解为按消息维度的消息排行榜)等信息,适合使用Redis中的SortedSet结构进行存储。
可以做排行榜应用
,取TOP N操作
。最后一个应用就是可以做范围查找
。
https://blog.csdn.net/csdnlijingran/article/details/88068598
上一篇: Redis面试题总结
下一篇: Java 面试题总结