redis基本資料型別(zset有序集合)

2021-10-14 05:55:09 字數 2434 閱讀 1339

儲存有序的元素。每個元素有個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 後面...