Redis实战-Redis五种数据类型(四-5 有序集合)

5.有序集合
  和三类存储着键与值之间的映射类似,有序集合也存储着成员与分值之间的映射,并且提供了分值处理命令,以及根据分值大小有序地获取或扫描成员和分值的命令。
  本节将对操作有序集合的命令进行介绍,其中包括向有序集合添加新元素的命令、更新已有元素的命令,以及对有序集合进行交集运算和并集运算的命令。

一些常用的有序集合命令

命令 用例和描述
ZADD ZADD key-name score member [score member ...] --将带有给定分值的成员添加到有序集合里面
ZREM ZREM key-name member [member ...] --有序集合里面移除给定的成员,并返回被移除成员的数量
ZCARD ZCARD key-name --返回有序集合包含的成员数量
ZINCRBY ZINCRBY key-name increment member --将member成员的分值加上increment
ZCOUNT ZCOUNT key-name min max --返回分值介于min和max之间的成员数量
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"
# 返回当前有序集合runoobkey中成员的数量
127.0.0.1:6379> zcard runoobkey
(integer) 3
# 将run00bkey有序集合中的redis成员分值加2,返回的结果是当前的值
127.0.0.1:6379> zincrby runoobkey 2 redis
"3"
#返回有序集合runoobkey在0到10分值之间成员的数量
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
# 返回当前成员redis在有序集合中的分支
127.0.0.1:6379> zscore runoobkey redis
"3"
# 从有序集合中删除redis成员
127.0.0.1:6379> zrem runoobkey redis
(integer) 1
有序集合的范围型数据获取命令和范围型数据删除命令,以及并集命令和交集命令
命令 用例和描述
ZREVRANK ZREVRANK key-name member --返回有序集合里成员member的排名,成员按照分值由大到小排列
ZREVRANGE ZREVRANGE key-name start stop [WITHSCORES] --返回有序集合给定排名范围内的成员,成员按照分值由大到小排列
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] --对给定的有序集合执行类似于集合的交集运算
ZUNIONSTORE ZUNIONSTORE dest-key key-count key [key . . .] [WEIGHTS weight [weight . . .]] [AGGREGATE SUM|MIN|MAX] --对给定的有序集合执行类似于集合的并集运算

以上的示例请参考如下链接:
https://www.runoob.com/redis/redis-sorted-sets.html

不怕从零开始,只怕从未启程!

参考文献:
菜鸟教程:https://www.runoob.com/redis/redis-keys.html
《Redis实战》Josiah L. Carlson著

你可能感兴趣的:(Redis实战-Redis五种数据类型(四-5 有序集合))