redis(set、zset)类型使用和使用场景

Redis的数据类型
Redis的数据类型共有五种:string,list,hash,set,zset;
String 字符串相对来说做平常,key-value,类似是hashmap的用法;
List 队列,可以双向的存值,设计时,也可以简单用来当队列模式;
Hash 字典,一个key 对应多个值;
Set 无序的集合;
Zset 有序的集合;

集合set
redis集合(set)类型和list列表类型类似,都可以用来存储多个字符串元素的集合。但是和list不同的是set集合当中不允许重复的元素。而且set集合当中元素是没有顺序的,不存在元素下标。
redis的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类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
使用场景:
1、根据时间排序的新闻列表等,
2、 阅读排行榜
实现方式:edis sorted set的内部使用HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的成员,排序依据是HashMap里存的score,使用跳跃表的结构可以获得比较高的查找效率,并且在实现上比较简单。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值