儲存有序的元素。每個元素有個score,按照score從小到大排名。score相同時,按照key的ascii碼排序
資料結構
是否允許重複元素
是否有序
有序實現方式
list列表是是
索引下標
set集合否否
無zset有序集合否是
分值score
分數可以精確的表示的整數的範圍
redis 有序集合的分數使用雙精度64位浮點數。我們支援所有的架構,這表示為乙個ieee 754 floating point number,它能包括的整數範圍是-(2^53)
到+(2^53)
。或者說是-9007199254740992 到 9007199254740992。更大的整數在內部用指數形式表示,所以,如果為分數設定乙個非常大的整數,你得到的是乙個近似的十進位制數。
sorted set 101
有序集合按照分數以遞增的方式進行排序。相同的成員(member)只存在一次,有序集合不允許存在重複的成員。 分數可以通過zadd
命令進行更新或者也可以通過zincrby
命令遞增來修改之前的值,相應的他們的排序位置也會隨著分數變化而改變。
獲取乙個成員當前的分數可以使用zscore
命令,也可以用它來驗證成員是否存在。
相同分數的成員
有序集合裡面的成員是不能重複的都是唯一的,但是,不同成員間有可能有相同的分數。當多個成員有相同的分數時,他們將是有序的字典(ordered lexicographically)(仍由分數作為第一排序條件,然後,相同分數的成員按照字典規則相對排序)。
字典順序排序用的是二進位制,它比較的是字串的位元組陣列。
如果使用者將所有元素設定相同分數(例如0),有序集合裡面的所有元素將按照字典順序進行排序,範圍查詢元素可以使用zrangebylex
命令(注:範圍查詢分數可以使用zrangebyscore
命令)。
返回值 如果指定incr
引數, 返回將會變成bulk-string-reply : 例子
redis> zadd myzset 1 "one"
(integer) 1
redis> zadd myzset 1 "uno"
(integer) 1
redis> zadd myzset 2 "two" 3 "three"
(integer) 2
redis> zrange myzset 0 -1 withscores
1)"one"
2)"1"
3)"uno"
4)"1"
5)"two"
6)"2"
7)"three"
8)"3"
redis>
返回值有序集合中成員名稱 min 和 max 之間的成員數量; integer型別。
例子返回值
指定成員範圍的元素列表。
例子不要在分數不一致的sortset集合中去使用 zrangebylex 指令,因為獲取的結果並不準確。
使用場景
例子
redis> zadd myzset 1 "one"
(integer) 1
redis> zadd myzset 2 "two"
(integer) 1
redis> zadd myzset 3 "three"
(integer) 1
redis> zrank myzset "three"
(integer) 2
redis> zrank myzset "four"
(nil)
redis>
返回值刪除元素的個數。
例子不要在分數不一致的sortset集合中去使用 zremrangebylex 指令,因為獲取的結果並不準確。
返回值指定成員範圍的元素列表。
例子不要在分數不一致的sortset集合中去使用 zrevrangebylex 指令,因為獲取的結果並不準確。
使用場景
返回值指定分數範圍的元素列表。例子
應用返回值
被移除成員的數量。
例子
redis> zadd myzset 1 "one"
(integer) 1
redis> zadd myzset 2 "two"
(integer) 1
redis> zadd myzset 3 "three"
(integer) 1
redis> zrevrank myzset "one"
(integer) 2
redis> zrevrank myzset "four"
(nil)
redis>
Redis 基本資料型別之 Zset 型別
基本指令 zset 相對於 set 多了乙個 score 字段,是乙個有序的集合,其成員是唯一的,但 score 可以重複 127.0.0.1 6379 zadd myzset 1 one 向 zset 新增乙個值 integer 1 127.0.0.1 6379 zadd myzset 2 two...
Redis資料型別 ZSET
1 zset為有序集合,其餘set非常類似,但是不同的是有序集合的每個成員都會關聯乙個評分,zest則通過這個評分的大小為集合中的成員進行排序 由低到高 集合的元素是唯一 的,但是評分卻可以重複。2 有序集合 支援新增 刪除 更新元素。由於有序性,可以很快根據評分獲取乙個範圍的元素。在有序集合中,你...
Redis 資料型別 Zset
redis 常用命令,思維導圖 zset是redis提供的乙個非常特別的資料結構,常用作排行榜等功能,以使用者id為value,關注時間或者分數作為score進行排序。與其他資料結構相似,zset也有兩種不同的實現,分別是ziplist和skiplist zset 儲存示意圖 每個 value 後面...