一.有序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 value
set1 [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集合都是操纵排行榜