redis

Redis学习笔记系列(七)——基本数据类型之有序集合

2020-10-09  本文已影响0人  复旦猿

5.5 有序集合(sorted-set)

5.5.1 ZADD
127.0.0.1:6379> ZADD zset NX 10.0 redis 5.0 mechached 
(integer) 2
127.0.0.1:6379> ZADD zset NX 11.0 redis
(integer) 0
127.0.0.1:6379> ZADD zset NX 8.5 mysql
(integer) 1
127.0.0.1:6379> ZADD zset XX CH 12.5 redis 3.5 mechached 
(integer) 2
127.0.0.1:6379> ZADD zset XX CH INCR 1.5 redis
"14"
5.5.2 ZPOPMAX / ZPOPMIN / BZPOPMAX / BZPOPMIN
127.0.0.1:6379> ZPOPMAX zset 2
1) "redis"
2) "14"
3) "mysql"
4) "8.5"
127.0.0.1:6379> ZPOPMIN zset 2
1) "mechached"
2) "3.5"
127.0.0.1:6379> ZADD zset NX 10.0 redis 5.0 mechached  8.5 mysql
(integer) 3
127.0.0.1:6379> BZPOPMAX zset 2
1) "zset"
2) "redis"
3) "10"
127.0.0.1:6379> BZPOPMIN zset 2
1) "zset"
2) "mechached"
3) "5"
127.0.0.1:6379> BZPOPMAX zset 2
1) "zset"
2) "mysql"
3) "8.5"
127.0.0.1:6379> BZPOPMAX zset 2
(nil)
(2.04s)
5.5.3 ZSCORE
127.0.0.1:6379> ZSCORE zset redis
"10"
5.5.4 ZCARD / ZCOUNT / ZLEXCOUNT
127.0.0.1:6379> ZCARD zset
(integer) 3
127.0.0.1:6379> ZCOUNT zset 8 10
(integer) 2
127.0.0.1:6379> ZCOUNT zset -inf 10
(integer) 3
127.0.0.1:6379> ZLEXCOUNT zset - +
(integer) 3
127.0.0.1:6379> ZLEXCOUNT zset [m +
(integer) 3
127.0.0.1:6379> ZLEXCOUNT zset [r +
(integer) 1
5.5.5 ZINCRBY
127.0.0.1:6379> ZINCRBY zset -1.3 mysql
"7.2000000000000002"
127.0.0.1:6379> ZINCRBY zset 0.4 redis
"10.4"
5.5.6 ZUNIONSTORE / ZINTERSTORE
127.0.0.1:6379> ZADD zset1 10.0 redis 5.0 mechached  8.5 mysql
(integer) 3
127.0.0.1:6379> ZADD zset2 0.4 redis 0.3 mechached 1 hbase
(integer) 3
127.0.0.1:6379> ZUNIONSTORE zset3 2 zset1 zset2 WEIGHTS 1 2 AGGREGATE SUM
(integer) 4
127.0.0.1:6379> ZSCORE zset3 redis
"10.800000000000001"
127.0.0.1:6379> ZINTERSTORE zset4 2 zset1 zset2 AGGREGATE MIN
(integer) 2
127.0.0.1:6379> ZSCORE zset4 redis
"0.40000000000000002"
127.0.0.1:6379> ZSCORE zset4 mysql
(nil)
127.0.0.1:6379> ZSCORE zset4 mechached
"0.29999999999999999"
5.5.7 ZRANGE / ZRANGEBYLEX / ZRANGEBYSCORE
127.0.0.1:6379> ZRANGE zset4 0 -1
1) "mechached"
2) "redis"
127.0.0.1:6379> ZRANGE zset4 0 -1 WITHSCORES
1) "mechached"
2) "0.29999999999999999"
3) "redis"
4) "0.40000000000000002"

*ZRANGEBYLEX
ZRANGEBYLEX用于在有序集合中所有元素score值相同的情况下返回指定范围的以字典序从小到大排序的元素。若集合中元素存在着不同的score值,则返回的结果是不确定的。
ZRANGEBYLEX key min max [LIMIT offset count]
ZRANGEBYLEX也可以使用LIMIT选项指定返回结果的偏移以及数量。

127.0.0.1:6379> ZRANGEBYLEX zset1 - + 
1) "mechached"
2) "hbase"
3) "mysql"
4) "redis"
127.0.0.1:6379> ZADD zset1 10.0 redis 5.0 mechached  8.5 mysql 8.5 hbase
(integer) 4
127.0.0.1:6379> ZRANGEBYSCORE zset1 8.5 10 WITHSCORES LIMIT 2 10
1) "redis"
2) "10"
127.0.0.1:6379> ZRANGEBYSCORE zset1 8.5 10 WITHSCORES LIMIT 1 10
1) "mysql"
2) "8.5"
3) "redis"
4) "10"
127.0.0.1:6379> ZRANGEBYSCORE zset1 (8.5 10 WITHSCORES LIMIT 0 10
1) "redis"
2) "10"
5.5.8 ZREVRANGE / ZREVRANGEBYLEX / ZREVRANGEBYSCORE
127.0.0.1:6379> ZREVRANGE zset1 0 -1 WITHSCORES
1) "redis"
2) "10"
3) "mysql"
4) "8.5"
5) "hbase"
6) "8.5"
7) "mechached"
8) "5"
127.0.0.1:6379> ZREVRANGEBYLEX zset1 + - LIMIT 1 4
1) "mysql"
2) "hbase"
3) "mechached"
127.0.0.1:6379> ZREVRANGEBYSCORE zset1 10 8 WITHSCORES LIMIT 0 4
1) "redis"
2) "10"
3) "mysql"
4) "8.5"
5) "hbase"
6) "8.5"
127.0.0.1:6379> ZREVRANGEBYSCORE zset1 10 8 WITHSCORES LIMIT 1 4
1) "mysql"
2) "8.5"
3) "hbase"
4) "8.5"
5.5.9 ZRANK / ZREVRANK
127.0.0.1:6379> ZRANK zset1 redis
(integer) 3
127.0.0.1:6379> ZREVRANK zset1 redis
(integer) 0
5.5.10 ZSCAN
127.0.0.1:6379> ZSCAN zset1 0
1) "0"
2) 1) "mechached"
   2) "5"
   3) "hbase"
   4) "8.5"
   5) "mysql"
   6) "8.5"
   7) "redis"
   8) "10"
5.5.11 ZREM / ZREMRANGEBYLEX / ZREMRANGEBYRANK / ZREMRANGEBYSCORE
# mysql1 不存在, 因此只删除了hbase
127.0.0.1:6379> ZREM zset1 hbase mysql1
(integer) 1

ZREMRANGEBYLEX

ZREMRANGEBYLEX命令用于移除有序集合中以字典序排序指定范围内的元素,并返回实际移除的元素数量。
ZREMRANGEBYLEX key min max

127.0.0.1:6379> ZREMRANGEBYLEX zset1 [m [p
(integer) 2
127.0.0.1:6379> ZRANGE zset 0 -1 WITHSCORES
(empty array)
127.0.0.1:6379> ZRANGE zset1 0 -1 WITHSCORES
1) "mechached"
2) "5"
3) "hbase"
4) "8.5"
5) "mysql"
6) "8.5"
7) "redis"
8) "10"
127.0.0.1:6379> ZREMRANGEBYRANK zset1 0 2
(integer) 3
127.0.0.1:6379> ZRANGE zset1 0 -1 WITHSCORES
1) "redis"
2) "10"
127.0.0.1:6379> ZRANGE zset1 0 -1 WITHSCORES
1) "mechached"
2) "5"
3) "hbase"
4) "8.5"
5) "mysql"
6) "8.5"
7) "redis"
8) "10"
127.0.0.1:6379> ZREMRANGEBYSCORE zset1 5 9
(integer) 3
127.0.0.1:6379> ZRANGE zset1 0 -1 WITHSCORES
1) "redis"
2) "10"

写在最后

如果你觉得我写的文章帮到了你,欢迎点赞、评论、分享、赞赏哦,你们的鼓励是我不断创作的动力~

上一篇 下一篇

猜你喜欢

热点阅读