Redis sorted set
使用:
Redis 有序集合(sorted set)
Redis 有序集合和集合同樣也是string類型元素的集合,且不容許重複的成員。
不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。
有序集合的成員是惟一的,但分數(score)卻能夠重複。
集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。
添加:
ZADD key score1 member1 [score2 member2]
刪除:
ZREM key member [member ...]
返回值:被成功移除的成員的數量,不包括被忽略的成員。
Redis Zrem 命令用於移除有序集中的一個或多個成員,不存在的成員將被忽略。
當 key 存在但不是有序集類型時,返回一個錯誤。
注意: 在 Redis 2.4 版本之前, ZREM 每次只能刪除一個元素。
ZREMRANGEBYSCORE key min max
移除有序集合中給定的分數區間的全部成員,包含min 和 max
修改:
ZINCRBY key increment member
Redis Zincrby 命令對有序集合中指定成員的分數加上增量 increment
返回 member 成員的新分數值,以字符串形式表示。
能夠經過傳遞一個負數值 increment ,讓分數減去相應的值,好比 ZINCRBY key -5 member ,就是讓 member 的 score 值減去 5 。
當 key 不存在,或分數不是 key 的成員時, ZINCRBY key increment member 等同於 ZADD key increment member 。
當 key 不是有序集類型時,返回一個錯誤。
分數值能夠是整數值或雙精度浮點數。
查詢:
ZCARD KEY_NAME
Redis Zcard 命令用於計算集合中元素的數量。
當 key 存在且是有序集類型時,返回有序集的基數。 當 key 不存在時,返回 0 。
ZCOUNT key min max
Zcount 命令用於計算有序集合中指定分數區間的成員數量。
ZSCORE key member
Redis Zscore 命令返回有序集中,成員的分數值。 若是成員元素不是有序集 key 的成員,或 key 不存在,返回 nil 。
ZLEXCOUNT KEY MIN MAX
Zlexcount 命令在計算有序集合中指定字典區間內成員數量。
ZRANGEBYLEX key min max [LIMIT offset count]
Redis Zrangebylex 經過字典區間返回有序集合的成員。
ZRANGE key start stop [WITHSCORES]
Redis Zrange 返回有序集中,指定區間內的成員。
其中成員的位置按分數值遞增(從小到大)來排序。
具備相同分數值的成員按字典序(lexicographical order )來排列。
若是你須要成員按
下標參數 start 和 stop 都以 0 爲底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。
你也能夠使用負數下標,以 -1 表示最後一個成員, -2 表示倒數第二個成員,以此類推。
ZREVRANGE key start stop [WITHSCORES]
Redis Zrevrange 命令返回有序集中,指定區間內的成員。
其中成員的位置按分數值遞減(從大到小)來排列。
具備相同分數值的成員按字典序的逆序(reverse lexicographical order)排列。
除了成員按分數值遞減的次序排列這一點外, ZREVRANGE 命令的其餘方面和
ZRANGE 命令同樣。
ZRANK key member
Redis Zrank 返回有序集中指定成員的排名。其中有序集成員按分數值遞增(從小到大)順序排列。
ZREVRANK key member
Redis Zrevrank 命令返回有序集中成員的排名。其中有序集成員按分數值遞減(從大到小)排序。
排名以 0 爲底,也就是說, 分數值最大的成員排名爲 0 。