redis有序集合(Zset)
2019獨角獸企業重金招聘Python工程師標準>>>
? ? ? Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數(score)卻可以重復。集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。 集合中最大的成員數為 232 - 1?(4294967295, 每個集合可存儲40多億個成員)。
? ? ? 下面我們直接來看命令
zadd/zrange
Redis Zadd 命令用于將一個或多個成員元素及其分數值加入到有序集當中。如果某個成員已經是有序集的成員,那么更新這個成員的分數值,并通過重新插入這個成員元素,來保證該成員在正確的位置上。分數值可以是整數值或雙精度浮點數。如果有序集合 key 不存在,則創建一個空的有序集并執行 ZADD 操作。當 key 存在但不是有序集類型時,返回一個錯誤。
注意:?在 Redis 2.4 版本以前, ZADD 每次只能添加一個元素。語法如下:
ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN?
Redis Zrange 返回有序集中,指定區間內的成員。其中成員的位置按分數值遞增(從小到大)來排序。具有相同分數值的成員按字典序(lexicographical order )來排列。如果你需要成員按值遞減(從大到小)來排列,請使用?ZREVRANGE?命令。下標參數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。你也可以使用負數下標,以 -1 表示最后一個成員, -2 表示倒數第二個成員,以此類推。語法如下:
ZRANGE key start stop [WITHSCORES]zrangebyscore
Redis Zrangebyscore 返回有序集合中指定分數區間的成員列表。有序集成員按分數值遞增(從小到大)次序排列。具有相同分數值的成員按字典序來排列(該屬性是有序集提供的,不需要額外的計算)。默認情況下,區間的取值使用閉區間 (小于等于或大于等于),你也可以通過給參數前增加 ( 符號來使用可選的開區間 (小于或大于)。語法如下:
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]zrem
Redis Zrem 命令用于移除有序集中的一個或多個成員,不存在的成員將被忽略。當 key 存在但不是有序集類型時,返回一個錯誤。
注意:?在 Redis 2.4 版本以前, ZREM 每次只能刪除一個元素。語法如下:
ZREM key member [member ...]?
轉載于:https://my.oschina.net/u/2286631/blog/1052850
總結
以上是生活随笔為你收集整理的redis有序集合(Zset)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql之 explain、optim
- 下一篇: 8.4磁盘4