久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis有序集合如何使用

175次閱讀
沒有評論

共計 4843 個字符,預計需要花費 13 分鐘才能閱讀完成。

這篇文章主要介紹“Redis 有序集合如何使用”,在日常操作中,相信很多人在 Redis 有序集合如何使用問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis 有序集合如何使用”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

Redis 數據結構:有序集合

有序的集合。每個元素都由一個成員和一個與成員相關聯的分值組成,成員以字符串存儲,分值以 64 位雙精度浮點數存儲。成員不可重復,以分值大小進行排序,相同分值時以成員字典序排序。

數據結構

字符串

散列

列表

集合

有序集合

HyperLogLog

位圖

地理坐標

有序集合(sorted set)

添加或更新成員
1.zadd 命令??格式:zadd key [NX|XX] [GT|LT] [CH] [INCR] score member [score member …]
返回添加成功的新成員數量,若執行的是更新成員分值返回 0。
zadd key score member [score member …]

XX 選項的作用是只更新不添加,執行后返回 0。
zadd key XX score member [score member …]

NX 選項的作用是只添加不更新,執行成功返回添加元素的個數。
zadd key NX score member [score member …]

CH 選項的作用是返回被修改成員的數量而非添加成功的成員數量,被修改包括新添加。
zadd key CH score member [score member …]

移除指定成員
1.zrem 命令??格式:zrem key member [member …]
返回被移除成員的數量,成員不存在于集合中時自動忽略。
zrem key member [member …]

2.zremrangebyrank 命令??格式:zremrangebyrank key start stop
移除指定排名范圍內的成員,返回被移除成員的數量,排名可使用正數排名或負數排名。
zremrangebyrank key start stop

3.zremrangebyscore 命令??格式:zremrangebyscore key min max
移除指定分值范圍內的成員,返回被移除成員的數量。min 或 max 前加“(”表示取開區間即不包含邊界值。
zremrangebyscore key min max

4.zremrangebylex 命令??格式:zremrangebylex key min max
對于按照字典序排列的有序集合(即分值相同),移除指定字典序范圍內的成員。返回被移除成員的數量,min、max 的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
zremrangebylex key min max

彈出元素
1.zpopmax 命令??格式:zpopmax key [count]
彈出分值最高的 count 個成員,分值最高有多個元素時彈出字典序最大的成員,若未指定 count 默認 1 個,執行完成后返回被彈出元素的成員和分值。
zpopmax key [count]

2.zpopmin 命令??格式:zpopmin key [count]
彈出分值最低的 count 個成員,分值最低有多個元素時彈出字典序最小的成員,若未指定 count 默認 1 個,執行完成后返回被彈出元素的成員和分值。
zpopmin key [count]
3.bzpopmax 命令??格式:bzpopmax key [key …] timeout
阻塞式的 zpopmax 命令,timeout 為秒級精度。命令依次檢查給定的有序集合,并從第一個非空集合彈出分值最大的元素,否則阻塞當前客戶端直到有元素或超出超時時間返回 nil。成功彈出元素時將返回一個列表,包含被彈出元素所在有序集合、成員以及分值。
bzpopmax key [key …] timeout
Redis 有序集合如何使用
4.bzpopmin 命令??格式:bzpopmin key [key …] timeout
阻塞式的 zpopmin 命令,timeout 為秒級精度。命令依次檢查給定的有序集合,并從第一個非空集合彈出分值最小元素,否則阻塞當前客戶端直到有元素或超出超時時間返回 nil。成功彈出元素時將返回一個列表,包含被彈出元素所在有序集合、成員以及分值。
bzpopmin key [key …] timeout
Redis 有序集合如何使用
客戶端 2:
Redis 有序集合如何使用

獲取成員分值
1.zscore 命令??格式:zscore key member
獲取給定成員的分值,集合不存在或者成員不存在時返回 nil。
zscore key member
Redis 有序集合如何使用

對成員分值做運算
1.zincrby 命令??格式:zincrby key increment member
執行完后返回當前成員分值,increment 為正時自增,否則為自減;若鍵不存在或成員不存在則執行創建操作。
zincrby key increment member
Redis 有序集合如何使用

獲取成員數量
1.zcard 命令??格式:zcard key
返回集合包含的成員數量,集合不存在時返回 0。
zcard key
Redis 有序集合如何使用
2.zcount 命令??格式:zcount key min max
獲取指定分值范圍內的成員數量,min 或 max 前加“(”表示取開區間即不包含邊界值,值 +inf 表示無窮大,-inf 表示無窮小。
zcount key min max
Redis 有序集合如何使用
3.zlexcount 命令??格式:zlexcount key min max
對于按照字典序排列的有序集合(即分值相同),獲取指定字典序范圍內的成員數量,min、max 的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
zlexcount key min max
Redis 有序集合如何使用

獲取成員排名
1.zrank 命令??格式:zrank key member
返回成員的升序排列排名,集合或成員不存在時返回 nil。
zrank key member
Redis 有序集合如何使用
2.zrevrank 命令??格式:zrevrank key member
返回成員的降序排列排名,集合或成員不存在時返回 nil。
zrevrank key member
Redis 有序集合如何使用

獲取成員
1.zrange 命令??格式:zrange key min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
獲取指定索引范圍內的成員,按分值大小升序排列。WITHSCORES 選項可在命令執行后返回分值,返回列表奇數位為成員,偶數位為對應分值。集合不存在時返回 empty。
zrange key min max [WITHSCORES]
Redis 有序集合如何使用
2.zrevrange 命令??格式:zrevrange key start stop [WITHSCORES]
獲取指定索引范圍內的成員,按分值大小降序排列。WITHSCORES 選項可在命令執行后返回分值,返回列表奇數位為成員,偶數位為對應分值。集合不存在時返回 empty。
zrevrange key start stop [WITHSCORES]
Redis 有序集合如何使用
3.zrangebyscore 命令??格式:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
獲取指定分值范圍內的成員,按分值大小升序排列。WITHSCORES 選項可在命令執行后返回分值,返回列表奇數位為成員,偶數位為對應分值。集合不存在時返回 empty。
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
Redis 有序集合如何使用
[LIMIT offset count]選項的作用是限制返回的成員數量,offset 指定需要跳過的成員數量,count 執行最多返回成員的數量,count 為負時取絕對值。
Redis 有序集合如何使用
min 或 max 前加“(”表示取開區間即不包含邊界值,值 +inf 表示無窮大,-inf 表示無窮小。
Redis 有序集合如何使用
4.zrevrangebyscore 命令??格式:zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
獲取指定分值范圍內的成員,按分值大小降序排列,注意 max min 順序。
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
Redis 有序集合如何使用
5.zrangebylex 命令??格式:zrangebylex key min max [LIMIT offset count]
當成員分值相同時,獲取指定字典序范圍內成員,按字典序升序排列,min、max 的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
zrangebylex key min max [LIMIT offset count]
Redis 有序集合如何使用
6.zrevrangebylex 命令??格式:zrevrangebylex key max min [LIMIT offset count]
當成員分值相同時,獲取指定字典序范圍內成員,按字典序降序排列,max、min 的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
zrevrangebylex key max min [LIMIT offset count]

集合運算
1. 并集
?1)zunionstore 命令??格式:zunionstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
numkeys 為參與運算的集合數量,不對應時返回 error,執行完后返回新集合的成員數量。并集得到的為成員集合,若參與運算的集合中有相同成員,則默認新集合的成員分值為原集合成員分數相加。
zunionstore destination numkeys key [key …]
Redis 有序集合如何使用
AGGREGATE 選項作用是指定使用的聚合函數,不指定時默認 SUM。SUM 指分值相加,MIN 指取最小分值,MAX 指取最大分值。
zunionstore destination numkeys key [key …] [AGGREGATE SUM|MIN|MAX]
Redis 有序集合如何使用
WEIGHTS 選項作用是執行聚合前為每個集合分別設置一個權重,權重分別與集合中成員分值相乘得到新分值,然后執行聚合計算。
Redis 有序集合如何使用
?2)zunion 命令??格式:zunion numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
執行完成后返回新集合成員。
zunion numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
2. 交集
?1)zinterstore 命令??格式:zinterstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
執行完后返回新集合的成員數量。
zinterstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
?2)zinter 命令??格式:zinter numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
執行完后返回新集合成員。
zinter numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
注意:
1. 集合運算可以使用集合作為輸入,默認情況下,集合成員的分值看做 1 參與運算,可使用 WEIGHTS 選項設置權重改變集合分值。

常見用法
1. 排行榜
2. 時間線

到此,關于“Redis 有序集合如何使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計4843字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 永济市| 邮箱| 浦城县| 札达县| 河曲县| 白朗县| 仁寿县| 山东省| 松阳县| 河间市| 铜山县| 翼城县| 哈巴河县| 璧山县| 运城市| 平原县| 佛山市| 富阳市| 凌云县| 大关县| 新巴尔虎左旗| 阜阳市| 新竹县| 孝感市| 郸城县| 彩票| 天台县| 随州市| 阿图什市| 西华县| 乌拉特前旗| 鄢陵县| 叶城县| 时尚| 漳州市| 胶南市| 晋城| 青河县| 获嘉县| 兴山县| 鄯善县|