1、zadd
zadd key score member [[score member]...]
- 将一个或多个member及其score值加入到有序集key中
- score可以为int、double
- 如果member已存在,更新score并重新插入保证位置正确
- 返回值为成功添加的数量,不包括更新
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
- 返回有序集key中,member的score值
- 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
- 有序集key的成员member的score值增加increment
- 返回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
- 有序集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
- 返回有序集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]
- 返回有序集key中,指定区间的成员。withscores时将score也返回。
- 返回值按score增序排列
- 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]
- 与zrange用法相同,但逆序排列
8、zrangebyscore
zrangebyscore key min max [withscores] [limit offset count]
- 返回有序集key中score位于区间[min,max]的元素
- 默认闭区间,可以添加(变成开区间。
- 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]
- 用法同上,但结果逆序
10、zrank
zrank key member
- 返回member的排名,按score递增排序
- member不存在返回nil
- 最小为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
- 用法同zrank,但返回逆序排列的排名
12、zrem
zrem member1 member2...
- 删除一个或多个成员,不存在的忽略
- 返回删除的数量
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
- 移除指定排名区间的成员
- 返回移除的数量
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
- 移除指定score区间内的元素
- 返回移除的数量
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]
- 返回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
- 返回区间内的元素数量,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
- 移除区间内的元素,min/max为字符串
- 返回移除的元素数
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]
- 多个集合的并集存到destination中
- numkeys指定key数目
- 结果集中的socre值是给定集中score值之和
- weights可指定每个集合的乘法因子
- AGGREGATE可指定聚合方式sum/min/max
- 返回值为结果集大小
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]
- 用法同上,不同的只是计算的是交集