1. 程式人生 > >Redis-07Redis資料結構--有序Set

Redis-07Redis資料結構--有序Set

概述

有序集合和無序集合的命令是接近的,只是在這些命令的基礎上,會增加對於排序的操作,這一點在使用的時候需要注。

有些時候 Redis 藉助資料區間的表示方法來表示包含或者不包含,比如在數學的區間表示中[2,5 ]表示包含 2,但是不包含 5 的 區間。

Redis 有序集合的部分命令

命令 說明 備註
zadd key score1 value1 [score2 value2 …] 向有序集合的 key,增加一個或者多個成員 如果不存在對應的 key,則建立鍵為 key 的有序集合
zcard key 獲取有序集合的成員數 -----
zcount key min max 根據分數返回對應的成員列表 min 為最小值, max為最大值,預設為包含min 和 max 值,採用數學區間表示的方法,如果需要不包含,則在分數前面加入“(”,注意不支援“[”表示
zincrby key increment member 給有序集合成員值為 member 的分數增加 increment -----
zinterstore desKey nurnkeys key1 [key2 key3 …] 求多個有序集合的交集,並且將結果儲存到 des Key 中 numkeys 是一個整數,表示多少個有序集合
zlexcount key min max 求有序集合 key 成員值在 min 和 max 的範圍 這裡範圍為 key 的成員值, Redis 藉助資料區間的表示方法,“[”表示包含該值,“(”表示不包含該值
zrange key start stop [withscores] 按照分值的大小〈從小到大)返回成員,加入 start 和 stop 引數可以擷取某一段返回.如果輸入可選項 withscores,則連同分數一起返回 這裡記集合最大長度為len,Redis 會將集合排序後,形成一個從 0 到len-1的下標,然後根據 start 和 stop 控制的下標(包含 start 和 stop)返回
zrank key member 按從小到大求有序集合的排行 排名第一的為 0,第二的為 1 …
zrangebylex key min max [limit offset count] 根據值的大小,從小到大排序, min 為最小值, max 為最大值;limit 選項可選,當 Red is 求出範圍集合後,會生產下標0到n,然後根據偏移量offset 和限定返回 數 count,返回對應的成員 這裡範圍為 key 的成員值, Red i s 藉助數學區間的表示方法,“[”表示包含該值,“(”表示不包含該值
zrangebyscore key min max [withscores] [limit offset count] 根據分數大小,從小到大求取範圍,選項 withscores 和 limit 請參考 zrange 命令和zrangebylex 說明 根據分析求取集合的範圍。這裡預設包含 min和 max,如果不想包含,則在引數前加入“(”,注意不支援“ [”表示
zremrangebyscore key start stop 根據分數區間進行刪除 按照 socre 進行排序,然後排除 0 到len-1的下標,然後根據 start 和 stop 進行刪除, Redis 藉助數學區間的表示方法,“[”表示包含該值,“(”表示不包含該值
zremrangebyrank key start stop 按照分數排行從小到大的排序刪除,從0開始計算 -----
zremrangebylex key min max 按照值的分佈進行刪除 -----
zrevrange key start stop [withscores] 從大到小的按分數排序,引數請參見zrange 與 zrange 相同,只是排序是從大到小
zrevrangebyscore key max min [withscores] 從大到小的按分數排序,引數請參見zrangebyscore 與 zrangebyscore 相同 ,只是排序是從大到小
zrevrank key member 按從大到小的順序,求元素的排行 排名第一位 0,第二位1 …
zscore key member 返回成員的分數值 返回成員的分數
zunionstore desKey numKeys key1 [key2 key3 key4 …] 求多個有序集合的並集,其中 numKeys是有序,集合的個數 -----

在對有序集合、下標、區間的表示方法進行操作的時候,需要十分小心命令,注意它是操作分數還是值,稍有不慎就會出現問題。