Redis - 有序集合



Redis有序集合類似於Redis集合,其獨特的特點是儲存在集合中的值。不同之處在於,有序集合的每個成員都關聯一個分數,該分數用於對有序集合進行排序,從小到大的分數排序。

在Redis有序集合中,新增、刪除和測試成員的存在性所需時間為O(1)(無論集合中包含多少元素,時間都是恆定的)。列表的最大長度為232 - 1個元素(4294967295,每個集合超過40億個元素)。

示例

redis 127.0.0.1:6379> ZADD tutorials 1 redis 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZADD tutorials 4 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES  
1) "redis" 
2) "1" 
3) "mongodb" 
4) "2" 
5) "mysql" 
6) "4" 

在上面的例子中,三個值及其分數透過命令**ZADD**插入到名為“tutorials”的Redis有序集合中。

Redis有序集合命令

下表列出了一些與有序集合相關的基本命令。

序號 命令及描述
1 ZADD key score1 member1 [score2 member2]

向有序集合新增一個或多個成員,如果成員已存在則更新其分數。

2 ZCARD key

獲取有序集合中成員的數量。

3 ZCOUNT key min max

計算有序集合中分數在給定值範圍內的成員數量。

4 ZINCRBY key increment member

遞增有序集合中成員的分數。

5 ZINTERSTORE destination numkeys key [key ...]

對多個有序集合求交集,並將結果有序集合儲存到一個新的鍵中。

6 ZLEXCOUNT key min max

計算有序集合中在給定字典順序範圍內的成員數量。

7 ZRANGE key start stop [WITHSCORES]

返回有序集合中指定索引範圍內的成員。

8 ZRANGEBYLEX key min max [LIMIT offset count]

返回有序集合中指定字典順序範圍內的成員。

9 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]

返回有序集合中指定分數範圍內的成員。

10 ZRANK key member

確定有序集合中成員的索引。

11 ZREM key member [member ...]

從有序集合中刪除一個或多個成員。

12 ZREMRANGEBYLEX key min max

刪除有序集合中給定字典順序範圍內的所有成員。

13 ZREMRANGEBYRANK key start stop

刪除有序集合中給定索引範圍內的所有成員。

14 ZREMRANGEBYSCORE key min max

刪除有序集合中給定分數範圍內的所有成員。

15 ZREVRANGE key start stop [WITHSCORES]

返回有序集合中指定索引範圍內的成員,分數從高到低排序。

16 ZREVRANGEBYSCORE key max min [WITHSCORES]

返回有序集合中指定分數範圍內的成員,分數從高到低排序。

17 ZREVRANK key member

確定有序集合中成員的索引,分數從高到低排序。

18 ZSCORE key member

獲取有序集合中給定成員關聯的分數。

19 ZUNIONSTORE destination numkeys key [key ...]

對多個有序集合求並集,並將結果有序集合儲存到一個新的鍵中。

20 ZSCAN key cursor [MATCH pattern] [COUNT count]

增量迭代有序集合的元素及其關聯的分數。

廣告