Redis實(shí)戰(zhàn)-Redis五種數(shù)據(jù)類型(四-5 有序集合)

5.有序集合
??和三類存儲(chǔ)著鍵與值之間的映射類似,有序集合也存儲(chǔ)著成員與分值之間的映射,并且提供了分值處理命令,以及根據(jù)分值大小有序地獲取或掃描成員和分值的命令。
??本節(jié)將對(duì)操作有序集合的命令進(jìn)行介紹,其中包括向有序集合添加新元素的命令、更新已有元素的命令,以及對(duì)有序集合進(jìn)行交集運(yùn)算和并集運(yùn)算的命令。

一些常用的有序集合命令

命令 用例和描述
ZADD ZADD key-name score member [score member ...] --將帶有給定分值的成員添加到有序集合里面
ZREM ZREM key-name member [member ...] --有序集合里面移除給定的成員,并返回被移除成員的數(shù)量
ZCARD ZCARD key-name --返回有序集合包含的成員數(shù)量
ZINCRBY ZINCRBY key-name increment member --將member成員的分值加上increment
ZCOUNT ZCOUNT key-name min max --返回分值介于min和max之間的成員數(shù)量
ZRANK ZRANK key-name member --返回成員member在有序集合中的排名
ZSCORE ZSCORE key-name member --返回成員member的分值
ZRANGE ZRANGE key-name start stop [WITHSCORES] --返回有序集合中排名介于start和stop之間的成員,如果給定了可選的WITHSCORES選項(xiàng),那么命令會(huì)將成員的分值也一并返回
Redis中常用的有序集合命令
# 將帶有分值1的redis存入有序集合runoobkey中
127.0.0.1:6379> ZADD runoobkey 1 redis
(integer) 1
127.0.0.1:6379> ZADD runoobkey 2 mongodb
(integer) 1
127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 1
127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 0
127.0.0.1:6379> ZADD runoobkey 4 mysql
(integer) 0
# 顯示分值在0到10之間的成員同時(shí)顯示分值
127.0.0.1:6379> zrange runoobkey 0 10 withscores
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
# 返回當(dāng)前有序集合runoobkey中成員的數(shù)量
127.0.0.1:6379> zcard runoobkey
(integer) 3
# 將run00bkey有序集合中的redis成員分值加2,返回的結(jié)果是當(dāng)前的值
127.0.0.1:6379> zincrby runoobkey 2 redis
"3"
#返回有序集合runoobkey在0到10分值之間成員的數(shù)量
127.0.0.1:6379> zcount runoobkey 0 10
(integer) 3
# 返回成員在有序集合中的排名從0開始
127.0.0.1:6379> zrank runoobkey mongodb
(integer) 0
127.0.0.1:6379> zrank runoobkey redis
(integer) 1
127.0.0.1:6379> zrank runoobkey mysql
(integer) 2
# 返回當(dāng)前成員redis在有序集合中的分支
127.0.0.1:6379> zscore runoobkey redis
"3"
# 從有序集合中刪除redis成員
127.0.0.1:6379> zrem runoobkey redis
(integer) 1
有序集合的范圍型數(shù)據(jù)獲取命令和范圍型數(shù)據(jù)刪除命令,以及并集命令和交集命令
命令 用例和描述
ZREVRANK ZREVRANK key-name member --返回有序集合里成員member的排名,成員按照分值由大到小排列
ZREVRANGE ZREVRANGE key-name start stop [WITHSCORES] --返回有序集合給定排名范圍內(nèi)的成員,成員按照分值由大到小排列
ZRANGEBYSCORE ZRANGEBYSCORE key min max [WITHSCORES] [limit offset count ] --返回有序集合中,分值介于min和max之間的所有成員
ZREVRANGEBYSCORE ZREVRANGEBYSCORE key max min [WITHSCORES] [limit offset count ] --獲取有序集合中分值介于min和max之間的所有成員,并按照分值由大到小的順序范圍它們
ZREMRANGEBYRANK ZREMRANGEBYRANK key-name start stop --移除有序集合中排名從start和stop之間的所有成員
ZREMRANGEBYSCORE ZREMRANGEBYSCORE key-name min max --移除有序集合中分值介于min和max之間的所有成員
ZINTERSTORE ZINTERSTORE dest-key key-count key [key . . .] [WEIGHT weight [weight . . .]] [AGGREGATE SUM|MIN|MAX] --對(duì)給定的有序集合執(zhí)行類似于集合的交集運(yùn)算
ZUNIONSTORE ZUNIONSTORE dest-key key-count key [key . . .] [WEIGHTS weight [weight . . .]] [AGGREGATE SUM|MIN|MAX] --對(duì)給定的有序集合執(zhí)行類似于集合的并集運(yùn)算

以上的示例請(qǐng)參考如下鏈接:
https://www.runoob.com/redis/redis-sorted-sets.html

不怕從零開始,只怕從未啟程!

參考文獻(xiàn):
菜鳥教程:https://www.runoob.com/redis/redis-keys.html
《Redis實(shí)戰(zhàn)》Josiah L. Carlson著

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容