Redis学习-3.5:Sorted-Set详解

Sorted-Set和Set类似

两者区别:

Sorted-Set中每一个成员都会有一个分数与之相连

Redis中可以根据分数排序

分数是可以重复的

value是不能够重复的

因为分数score是有序的所以说Sorted-Set中的成员在集合中的位置是有序的

使用场景(游戏的排名,微博的热点话题)

常用命令:

1:添加元素

zadd yuwen 100 xiaohong

zadd yuwen 100 xiaoli

zadd yuwen 80 xiaoming

zadd yuwen 100 xiaoming 小明已经得了80分,无法再添加语文分数为100的小明(其实是小明修改了分数,将80改成了100,一会在查询的时候可以看一下)

blob.png

zadd key的值 value的分数 value的值

其中 value的值是不能重复的,但是value的分数能够重复。就拿上面的yuwen这门课3个人的分数就可以看出来..

还能够批量添加:zadd yuwen 89 lili 99 xiaobing 100 yy

blob.png

2:获得元素

根据value获得分数:zscore yuwen xiaoming(之前我们把80改成了100,现在来看一下)

blob.png

(果然修改成功)

获取成员数量:zcard mysort

blob.png

其实我偷偷的添加了一个。。为了删除测试用,所以说才显示的是7个不是6个..

blob.png

3:删除元素

zrem mysort test

blob.png

blob.png

4:范围查询

blob.png

带着分数范围查询(由小到大)

blob.png

由大到小。。(自己敲一遍吧。。)

blob.png

5:拓展命令

按照排名范围删除

zremrangebyrank yuwen 0 99(这个是删除第0-99个元素。。我把set中的所有东西全删了。。。。)

按照分数 删除

zremrangebyscore math 80 90

blob.png

删除了两个

所以说是>=80 <=90

blob.png

为了测试我们再把之前删除的添加进来

blob.png

zrangebyscore math 0 100 withscores

blob.png

zrangebyscore math 0 100 withscores limit 0 2(这里和mysql分页一样,从第0调数据开始查,查询两条)

blob.png

zincrby math 10 lisi 给lisi的分数+10(返回是添加之后的分数)

blob.png


获取分数在某个区间的成员个数:zcount math 80 90

blob.png

使用场景

blob.png

猜你喜欢

转载自blog.csdn.net/qq_22570497/article/details/78474914