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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章