redis-有序set集合

来源:互联网 发布:软件维护是指 编辑:程序博客网 时间:2024/06/03 11:09

一.有序set集合简述

  • 让本来无序set集合有序起来
  • 有序set集合特点:有序,不重复

我们光set集合中如果存储元素就直接

小明,小红,小张

有序set集合则是每个元素都需要手动赋予一个分数

5000 小明,1000 小红,500 小张

而有序set集合默认是从小到大排序

我们发现当集合倒序时就像是一个排行榜

5000 小明1000 小红500 小张

所以有序set常常用来做排行榜

二.有序set集合常用命令

1.赋值

zadd key score member score2 member2 …:将所有成员以及该成员的分数存放到sorted-set中。如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。

这里写图片描述

当前有序set集合

key  valueset1  [500 xiaozhang 1000 xiaohong 5000 xiaoming]

2.查看

zscore key member:返回指定成员的分数
zcard key:获取集合中的成员数量

这里写图片描述

3.删值

zrem key member[member…]:移除集合中指定的成员,可以指定多个成员

这里写图片描述

三.有序set集合扩展命令

1.范围查询

zrange key start end[withscores]:获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数,这是分数从小到大排列
zrevrange key start end[withscores]:获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数,这是分数从大到小排列,即倒序

这里写图片描述

2.按排名范围删值

zremrangebyrank key start stop:按照排名范围删除元素

这里写图片描述

3.按分数范围删值

zremrangebyscore key min max:按照分数范围删除元素

这里写图片描述

4.查值

zrangebyscore key min max [withscores] [limit offset count]:返回分数在[min,max]的成员并按照分数从低到高排序 [withscores]:显示分数;[limit offset count]:offset,表明从脚标为offset的元素开始并返回count个成员

这里写图片描述

这里写图片描述

5.变化分数

zincrby key increment member:设置指定成员的增加的分数,返回值是更改后的分数

这里写图片描述

6.获取分数区间成员

zcount key min max:获取分数在[min,max]之间的成员

这里写图片描述

7.返回集合中的排名

(1).从小到大排列的排名

zrank key member:返回成员在集合中的排名。索引(从小到大)

这里写图片描述

(2).从大到小排列的排名

zrevrank key member:返回成员在集合中的排名。索引(从大到小)

这里写图片描述

总结:操作有序set集合都是操纵排行榜

原创粉丝点击