redis(set、zset)类型使⽤和使⽤场景
Redis的数据类型
Redis的数据类型共有五种:string,list,hash,set,zset;
String 字符串相对来说做平常,key-value,类似是hashmap的⽤法;
List 队列,可以双向的存值,设计时,也可以简单⽤来当队列模式;
Hash 字典,⼀个key 对应多个值;
Set ⽆序的集合;
Zset 有序的集合;
set
集合
集合set
redis集合(set)类型和list列表类型类似,都可以⽤来存储多个字符串元素的集合。但是和list不同的是set集合当中不允许重复的元素。⽽且set 集合当中元素是没有顺序的,不存在元素下标。
redis的set类型是使⽤哈希表构造的,它⽀持集合内的增删改查,并且⽀持多个集合间的交集、并集、差集操作。可以利⽤这些集合操作,解决程序开发过程当中很多数据集合间的问题)
基本命令
set——基本命令
合集
合集set——
sadd
语法:sadd key value
作⽤:将⼀个或多个值 value 加⼊到集合中
返回值:数字,添加成功的个数,如果元素已经存在,则不会添加
Smembers
语法:smembers key
作⽤:获取集合中所有的元素
返回值:元素的list
Sismember
语法:sismember key value
作⽤:判断集合中是否有该元素
返回值:有,返回1,⽆返回0;
Scard
语法:scard key
作⽤:获取集合中的元素个数
返回值:获取元素个数
srem
语法:srem key value
作⽤:删除集合中对应的值
Sscan
语法:sscan key match
作⽤:查集合中的值;
sinter
语法:sinter key key
作⽤:获取两个集合中的交际。
sunion
语法:sunion key key
作⽤:
两个集合的并集;
sdiff
两个集合的差集;
使⽤场景
1. 标签
给⽤户打上感兴趣的标签,然后就能知道相同不同⽤户拥有相互爱好的体;
2.公共好友
⼀个⼈的好友,这样的话就能知道共同拥有的好友;
有序合集zset
Redis zset 和 set ⼀样也是string类型元素的集合,且不允许重复的成员。
redis支持的五种数据类型不同的是每个元素都会关联⼀个double类型的分数。redis正是通过分数来为集合中的成员进⾏从⼩到⼤的排序。
zset的成员是唯⼀的,但分数(score)却可以重复。
使⽤场景:
1、根据时间排序的新闻列表等,
2、 阅读排⾏榜
实现⽅式:edis sorted set的内部使⽤HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap⾥放的是成员到score的映射,⽽跳跃表⾥存放的是所有的成员,排序依据是HashMap⾥存的score,使⽤跳跃表的结构可以获得⽐较⾼的查效率,并且在实现上⽐较简单。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论