Redis sorted set 使用: Redis 有序集合(sorted set) Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重覆的成員。 不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。 有序集合的成員是 ...
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 )來排列。 如果你需要成員按 值遞減(從大到小)來排列,請使用 ZREVRANGE 命令。 下標參數 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 。