5.有序集合
??和三類存儲著鍵與值之間的映射類似耘柱,有序集合也存儲著成員與分值之間的映射恐疲,并且提供了分值處理命令让禀,以及根據(jù)分值大小有序地獲取或掃描成員和分值的命令屁桑。
??本節(jié)將對操作有序集合的命令進(jìn)行介紹,其中包括向有序集合添加新元素的命令赵讯、更新已有元素的命令盈咳,以及對有序集合進(jì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選項,那么命令會將成員的分值也一并返回 |
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之間的成員同時顯示分值
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] --對給定的有序集合執(zhí)行類似于集合的交集運算 |
ZUNIONSTORE | ZUNIONSTORE dest-key key-count key [key . . .] [WEIGHTS weight [weight . . .]] [AGGREGATE SUM|MIN|MAX] --對給定的有序集合執(zhí)行類似于集合的并集運算 |
以上的示例請參考如下鏈接:
https://www.runoob.com/redis/redis-sorted-sets.html
不怕從零開始娘锁,只怕從未啟程牙寞!
參考文獻(xiàn):
菜鳥教程:https://www.runoob.com/redis/redis-keys.html
《Redis實戰(zhàn)》Josiah L. Carlson著