Redis的數據結構之sorted-set

存儲Sorted-Setspa

Sorted-Set和Set的區別orm

 

Sorted-Set中的成員在集合中的位置是有序的排序

 

存儲Sorted-set經常使用命令索引

添加元素遊戲

得到元素rem

刪除元素it

範圍查詢擴展

擴展命令分頁

 

zadd 添加元素 裏面包括評分和值im

127.0.0.1:6379> zadd sort1 5 a 4 b 6 c

(integer) 3

咱們添加集合sort1 元素是a,b,c 評分分別是5,4,6

集合裏的排序是根據評分從小到大排序的;

 

zrange是查找元素 -1表明是最後一個

127.0.0.1:6379> zrange sort1 0 -1

1) "b"

2) "a"

3) "c"

 

假如咱們繼續添加元素

這裏分兩種狀況

假如次元素集合裏面已經有了,則覆蓋

咱們繼續添加b 此時評分改爲7 

127.0.0.1:6379> zadd sort1 7 b

(integer) 0

經過zscore 獲取b的評分

127.0.0.1:6379> zscore sort1 b

"7"

發現已經修改了;

127.0.0.1:6379> zrange sort1 0 -1

1) "a"

2) "c"

3) "b"

假如添加的元素不在集合裏,則添加進去

127.0.0.1:6379> zadd sort1 9 d

(integer) 1

127.0.0.1:6379> zrange sort1 0 -1

1) "a"

2) "c"

3) "b"

4) "d"

 

刪除元素zrem

127.0.0.1:6379> zrem sort1 b

(integer) 1

127.0.0.1:6379> zrange sort1 0 -1

1) "a"

2) "c"

3) "d"

 

zcard 查看集合裏的元素個數

127.0.0.1:6379> zcard sort1

(integer) 3

 

withscores  把評分也顯示出來

127.0.0.1:6379> zrange sort1 0 -1 withscores 

1) "a"

2) "5"

3) "c"

4) "6"

5) "d"

6) "9"

 

zrevrange 降序排列

127.0.0.1:6379> zrevrange sort1 0 -1 withscores

1) "d"

2) "9"

3) "c"

4) "6"

5) "a"

6) "5"

 

咱們再加兩個元素

127.0.0.1:6379> zadd sort1 10 e  5 f

(integer) 2

 

zremrangebyrank 根據排名來刪除元素  刪除3個

127.0.0.1:6379> zremrangebyrank sort1 0 2

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

1) "d"

2) "9"

3) "e"

4) "10"

 

再添加元素

127.0.0.1:6379> zadd sort1 11 f 16 g 18 h

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

 1) "d"

 2) "9"

 3) "e"

 4) "10"

 5) "f"

 6) "11"

 7) "g"

 8) "16"

 9) "h"

10) "18"

 

zremrangebyscore 根據具體評分範圍來刪除元素

127.0.0.1:6379> zremrangebyscore sort1 10 16

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

1) "d"

2) "9"

3) "h"

4) "18"

 

再添加元素

127.0.0.1:6379> zadd sort1 20 i 23 j 30 k

(integer) 3

127.0.0.1:6379> zrange sort1 0 -1 withscores

 1) "d"

 2) "9"

 3) "h"

 4) "18"

 5) "i"

 6) "20"

 7) "j"

 8) "23"

 9) "k"

10) "30"

 

zrangebyscore 根據評分範圍來查找元素

127.0.0.1:6379> zrangebyscore sort1 18 23 withscores 

1) "h"

2) "18"

3) "i"

4) "20"

5) "j"

6) "23"

 

limit 限定查找起始 相似分頁

127.0.0.1:6379> zrangebyscore sort1 18 23 withscores limit 0 2

1) "h"

2) "18"

3) "i"

4) "20"

 

zincrby 給指定元素加分

127.0.0.1:6379> zincrby sort1 5 h

"23"

 

127.0.0.1:6379> zrange sort1 0 -1 withscores

 1) "d"

 2) "9"

 3) "i"

 4) "20"

 5) "h"

 6) "23"

 7) "j"

 8) "23"

 9) "k"

10) "30"

 

zcount 查找指定評分範圍的元素個數

127.0.0.1:6379> zcount sort1 20 23

(integer) 3

 

Sorted-Set使用場景

大型在線遊戲積分排行榜

構建索引數據

相關文章
相關標籤/搜索