首頁 > 軟體

Redis基本資料型別Zset有序集合常用操作

2022-05-31 14:00:11

Redis資料型別Zset有序集合

有序集合和集合一樣也是 string 型別元素的集合,且不允許重複的成員。

不同的是有序集合每個元素都會關聯一個 double 型別的分數。redis 正是通過分數來為集合中的成員進行從小到大的排序。

有序集合的成員是唯一的,但分數(score)卻可以重複。

集合是通過雜湊表實現的,所以新增、刪除、查詢的複雜度都是 O(1)。

一、zadd

將一個或多個成員元素及其分數值加入到有序集當中。分數值可以是整數值或雙精度浮點數。

若有序集合 key 不存在,則建立一個空的有序集並執行zadd操作。

若 key 存在但不是有序集型別時,返回一個錯誤。

zadd myzset 1 one 1.11 two 3.25 three

二、zrange

返回有序集中,指定區間內的成員。其中成員的位置按分數值遞增(從小到大)來排序。

具有相同分數值的成員按字典序(lexicographical order )來排列。

zrange myzset 0 -1

還可以帶上分數返回:

zrange myzset 0 -1 WITHSCORES

三、zrevrange

返回有序集中,指定區間內的成員。其中成員的位置按分數值遞減(從大到小)來排列。

zrevrange myzset 0 -1 WITHSCORES

四、zrangebyscore

返回有序集合中指定分數區間的成員列表。有序整合員按分數值遞增(從小到大)次序排列。

zrangebyscore myzset (1 2 # 這裡相當於 1< score <=2
zrangebyscore myzset 1 2 # 這裡相當於 1<= score <=2
zrangebyscore myzset -inf +inf # 這裡-inf +inf 相當於 負無窮、正無窮,顯示出所有

五、 zrem

移除有序集中的一個或多個成員,不存在的成員將被忽略。

zrem myzset one three four

六、zcard

用於計算集合中元素的數量。

zcard myzset

七、zcount

用於計算有序集合中指定分數區間的成員數量。

zcount myzset 2 5

還有其他的命令,在使用過程中不清楚可以檢視官方檔案中的命令查詢,非常詳盡。

set的使用場景也很豐富,比如可以用來用作排序場景、儲存工資表、班級成績表、xx排行榜等等。

以上就是Redis基本資料型別Zset有序集合常用操作的詳細內容,更多關於Redis資料型別Zset有序集合的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com