Redis學習筆記(六)型別之有序集合

2021-07-06 05:00:04 字數 2323 閱讀 2388

有序集合型別(

sorted

set),在集合型別的基礎上,為集合中的每個元素都關聯了乙個分數。支援獲得分數最高(或最低)的前

n個元素、獲得指定分數範圍內的元素等與分數有關的操作。

有序集合型別使用雜湊表和跳躍表實現的。

命令:1

、有序集合增加元素

zaddkey score member [score member ...]

如果元素已經存在,則修改元素的分數。分數不僅可以是整數,還支援雙精度浮點數。

+inf

和-inf

表示正無窮和負無窮

redis>zadd testboard 17e+307 a

redis>zadd testboard +inf c

redis>zadd testboard -inf d

2、獲得元素的分數

zscorekey member

3、獲得排名在某個範圍的元素列表

zrangekey start stop [withscores]

zrevrange key start stop [withscores]

zrange

命令會按照元素分數從小到大的順序返回索引從

start

到stop

之間的所有元素。包括兩端。

-1表示最後乙個元素。加上後面的

withscores

,返回的結果會跟上元素的分數。

zrevrange

按照從大到小的順序返回結果。 4

、獲得指定分數範圍的元素

zrangebyscore key min max [withscores] [limit offsetcount]

zrevrangebyscore key max min [withscores] [limitoffset count]

如果希望分數範圍不包含端點值,可以在分數前加上「

(」符號。

redis> zrangebyscore scoreboard 80(100 5

、增加某個元素的分數

zincrby key increment member 6

、獲得有序集合中元素數量

zcardkey

7、獲得指定分數範圍內的元素個數

zcountkey min max

8、刪除乙個或多個元素

zremkey member [member ...]

9、按照排名範圍刪除元素

zremrangebyrankkey start stop

10、按照分數範圍刪除元素

zremrangebyscorekey min max

11、獲得元素排名

zrankkey member

zrevrank key member 12

、計算有序集合的交集/並集

zinterstoredestination numkeys key [key ...] [weights weight [weight...]] [aggregate sum|min|max]

zunionstore destination numkeys key [key ...] [weightsweight [weight ...]] [aggregate sum|min|max]

destination

鍵中元素的分數是由

aggregate

引數決定的,預設是

sum。

sum是各參與計算的集合中該元素分數的和,

min是最訊息,

max是最大值。 通過

weights

引數設定每個集合的權重,每個集合在參與計算時元素的分數會被乘上該集合的權重。

redis>zinterstore result 2 sortedset1 sortedset2 weights 1 0.1

Redis學習之有序集合型別

有序結合與集合型別就是它是有序的,有序集合在集合的基礎上為每乙個元素關聯乙個分數,這就讓有序集合不支援插入 刪除。有序集合中的每個元素是不同的,但分數卻可以向他。有序集合使用雜湊表和跳躍表實現,即使讀取位於中間部分的資料也很快。有序集合比列表更費記憶體。基本命令如下 一 增127.0.0.1 637...

Redis學習筆記(二)型別之字串

命令 1 獲得符合規則的健名列表 keyspattern pattern 支援glob 風格萬用字元格式,具體規則如下 匹配乙個字元 匹配任意個 包括 0個 字元 匹配括號間的任一字元,可以使用 符號表示乙個範圍,如 a b d 可以匹配 ab ac 和 ad x 匹配字元 x,用於轉義符號。如要匹...

PHP學習筆記(三) 型別 布林型

下面效果相同,說明true和false並不區分大小寫。再為大家介紹兩種方式,因為 很簡單,所以不做贅述了。vs 下面介紹一種應用 轉換為布林值 要明示地將乙個值轉換成 boolean,用 bool 或者 boolean 來強制轉換。但是很多情況下不需要用強制轉換,因為當運算子,函式或者流程控制需要乙...