redis命令-zset(有序集合)

1、zadd

zadd key score member [[score member]...]

  1. 将一个或多个member及其score值加入到有序集key中
  2. score可以为int、double
  3. 如果member已存在,更新score并重新插入保证位置正确
  4. 返回值为成功添加的数量,不包括更新
127.0.0.1:6379> zadd rank 100 tom 90.88 bob
(integer) 2
127.0.0.1:6379> zadd rank 98 tom  //更新tom分数
(integer) 0

2、zscore

zscore key member

  1. 返回有序集key中,member的score值
  2. member不存在返回nil
127.0.0.1:6379> zadd rank 98 tom
(integer) 1
127.0.0.1:6379> zscore rank tom
"98"
127.0.0.1:6379> zscore rank alice
(nil)

3、zincrby

zincrby key increment member

  1. 有序集key的成员member的score值增加increment
  2. 返回member新的score值
127.0.0.1:6379> zscore rank tom
"98"
127.0.0.1:6379> zincrby rank 50.8 tom
"148.80000000000001"

4、zcard

zcard key

  1. 有序集key的元素数
127.0.0.1:6379> zadd rank 90 tom
(integer) 1
127.0.0.1:6379> zadd rank 99 bob
(integer) 1
127.0.0.1:6379> zcard rank
(integer) 2

5、zcount

zcount key min max

  1. 返回有序集key中值在min和max之间的成员数量
127.0.0.1:6379> zadd rank 90 tom 98 bob
(integer) 2
127.0.0.1:6379> zcount rank 95 100
(integer) 1

6、zrange

zrange key start stop [withscores]

  1. 返回有序集key中,指定区间的成员。withscores时将score也返回。
  2. 返回值按score增序排列
  3. score相同的按字典序
127.0.0.1:6379> zadd rank 90 tom 98 bob 55 jack
(integer) 3
127.0.0.1:6379> zrange rank 0 -1
1) "jack"
2) "tom"
3) "bob"
127.0.0.1:6379> zrange rank 0 1 withscores
1) "jack"
2) "55"
3) "tom"
4) "90"

7、zrevrange

zrevrange key start stop [withscores]

  1. 与zrange用法相同,但逆序排列

8、zrangebyscore

zrangebyscore key min max [withscores] [limit offset count]

  1. 返回有序集key中score位于区间[min,max]的元素
  2. 默认闭区间,可以添加(变成开区间。
  3. offset表示从偏移限制,从这个offset开始取结果返回,count限制返回的数量。
127.0.0.1:6379> zadd rank 90 tom 80 bob 55 jack 50 alice
(integer) 4
127.0.0.1:6379> zrangebyscore rank 50 100 withscores limit 2 1 //从第二名bob开始取一个数据
1) "bob"
2) "80"

9、zrevrangebyscore

zrangebyscore key min max [withscores]

  1. 用法同上,但结果逆序

10、zrank

zrank key member

  1. 返回member的排名,按score递增排序
  2. member不存在返回nil
  3. 最小为0,而非1
127.0.0.1:6379> zadd rank 90 tom 80 bob 55 jack 50 alice
(integer) 4
127.0.0.1:6379> zrank rank tom
(integer) 3
127.0.0.1:6379> zrank rank aluka
(nil)

11、zrevrank

zrevrank key member

  1. 用法同zrank,但返回逆序排列的排名

12、zrem

zrem member1 member2...

  1. 删除一个或多个成员,不存在的忽略
  2. 返回删除的数量
127.0.0.1:6379> zadd rank 90 tom 80 bob 55 jack
(integer) 3
127.0.0.1:6379> zrem rank tom jack alice
(integer) 2

13、zremrangebyrank

zremrangebyrank key start stop

  1. 移除指定排名区间的成员
  2. 返回移除的数量
127.0.0.1:6379> zadd rank 90 tom 80 bob 55 jack
(integer) 3
127.0.0.1:6379> zremrangebyrank rank 0 -2
(integer) 2

14、zremrangebyscore

zremrangebyscore key min max

  1. 移除指定score区间内的元素
  2. 返回移除的数量
127.0.0.1:6379> zrange rank 0 -1
1) "jack"
2) "bob"
3) "tom"
127.0.0.1:6379> zremrangebyscore rank 55 80
(integer) 2
127.0.0.1:6379> zrange rank 0 -1
1) "tom"

15、zrangebylex

zrangebylex key min max [limit offset count]

  1. 返回min max区间内的成员,注意这里的min、max是字符串,如[a, (b,+/-表示正无限/负无限
127.0.0.1:6379> zrange test 0 -1 withscores
 1) "aaaaaa4"
 2) "7"
 3) "aaaaaaa3"
 4) "8"
 5) "aaaaaaaa2"
 6) "9"
 7) "aaaaa1"
 8) "10"
 9) "aab"
10) "100"
11) "bbb"
12) "100"
127.0.0.1:6379> zrangebylex test [aaa [ab
1) "aaaaaa4"
2) "aaaaaaa3"
3) "aaaaaaaa2"
4) "aaaaa1"
5) "aab"

16、zlexcount

zlex key min max

  1. 返回区间内的元素数量,min/max含义同上
127.0.0.1:6379> zrange test 0 -1
1) "aaaaaa4"
2) "aaaaa1"
3) "aab"
4) "bbb"
127.0.0.1:6379> zlexcount test [aaa (ab
(integer) 3

17、zremrangebylex

zremrangebylex key min max

  1. 移除区间内的元素,min/max为字符串
  2. 返回移除的元素数
127.0.0.1:6379> zrange test 0 -1
1) "aaaaaa4"
2) "aaaaa1"
3) "aab"
4) "bbb"
127.0.0.1:6379> zremrangebylex test [aaa (ab
(integer) 3
127.0.0.1:6379> zrange test 0 -1
1) "bbb"

18、zscan

19、zunionstore

ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]

  1. 多个集合的并集存到destination中
  2. numkeys指定key数目
  3. 结果集中的socre值是给定集中score值之和
  4. weights可指定每个集合的乘法因子
  5. AGGREGATE可指定聚合方式sum/min/max
  6. 返回值为结果集大小
127.0.0.1:6379> zrange test1 0 -1 withscores
1) "tom"
2) "90"
3) "bob"
4) "100"
127.0.0.1:6379> zrange test2 0 -1 withscores
1) "bob"
2) "10"
3) "tom"
4) "30"
127.0.0.1:6379> zunionstore test 2 test1 test2
(integer) 2
127.0.0.1:6379> zrange test 0 -1 withscores //默认是sum,且乘法因子都是1
1) "bob"
2) "110"
3) "tom"
4) "120"
127.0.0.1:6379> zunionstore test 2 test1 test2 weights 1 10  //指定乘法因子
(integer) 2
127.0.0.1:6379> zrange test 0 -1 withscores
1) "bob"
2) "200"
3) "tom"
4) "390"
127.0.0.1:6379> zunionstore test 2 test1 test2 weights 1 1 aggregate min //指定按最小值聚合
(integer) 2
127.0.0.1:6379> zrange test 0 -1 withscores
1) "bob"
2) "10"
3) "tom"
4) "30"

20、zinterscore

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

  1. 用法同上,不同的只是计算的是交集
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。