Redis基本數據類型Zset有序集合常用操作

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有序集合的資料請關註WalkonNet其它相關文章!

推薦閱讀: