Redis数据结构对应开发的场景
目录
Redis不是一个普通的key-value存储,实际上是一个数据结构服务器。
在key-value中,key代表String类型,而value则可以是数据结构 String(字符串),List(列表),Set(集合),Sorts Set(排序集合),Hashes(哈希)。
五种数据结构
String字符串
二进制安全字符串,就向java中String类。
List列表
根据插入顺序排序的字符串元素集合。它们基本上就是链表,可以充当栈或队列的角色。
Sets
集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的
Sorts set
有序集合,它和集合必然有着联系,它保留了集合不能有重复成员的特性,但不同的是,有序集合中的元素可以排序。但是它和列表使用索引下标作为排序依据不同的是,我们可以给每个元素设置一个分数(score)作为排序的依据。score可以重复。
Hashes
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
各数据结构及其应用的场景
字符串场景
缓存 ,网站首页所有信息及其他热点信息都可以缓存在Redis中。
一个资源点的计数器,如视频,文章等
分布式服务中Session共享
列表场景
使用有限长度的列表存储用户在社交网站发布的最新更新。
消息队列,栈,队列。
集合使用场景
集合类型比较典型的使用场景是标签(tag)。例如一个用户可能对娱 乐、体育比较感兴趣,列如blibli 会根据你的标签去推荐相应的视频给你。
有序集合场景
可以做排行榜单的维度可能是多个方面的:按照时间、按照播放数量、按照获得的赞数。本节使用赞数这个维度,记录每天用户上传视频的排行榜,该榜单和列表的榜单有区别列表排序是按照插入顺序来的。
哈希场景
用来存储用户信息。
有点点收获的朋友,捧个人场(点个赞撒),如果有大佬知道更多的场景教教我呀。