redis中的order set 有序集合
命令
1 zadd key score1 value1 score2 value2 ..
添加元素
127.0.0.1:6379> zadd user 12 lilia 13 lilib 8 lilic
(integer) 3
127.0.0.1:6379> zrangebyscore user 0 20 withscores
1) "lilic"
2) "8"
3) "lilia"
4) "12"
5) "lilib"
6) "13"
2 zrem key value1 value2 ..
删除集合中的元素
127.0.0.1:6379> zrem user lilia
(integer) 1
3 zremrangebyscore key min max
删除score在[min,max]之间的元素,返回删除的个数
127.0.0.1:6379> zadd user 12 lilia 13 lilib 8 lilic
(integer) 3
127.0.0.1:6379> zremrangebyscore user 10 15
(integer) 2
127.0.0.1:6379> zrangebyscore user 0 20 withscores
1) "lilic"
2) "8"
4 zremrangebyrank key start end
按排名删除元素,删除名次在[start,end]之间的
127.0.0.1:6379> zadd user 12 lilia 13 lilib 8 lilic
(integer) 3
127.0.0.1:6379> zremrangebyrank user 1 2
(integer) 2
127.0.0.1:6379> zrangebyscore user 0 20 withscores
1) "lilic"
2) "8"
5 zrank key value
查询value的排名(升续 0名开始)
127.0.0.1:6379> zadd user 12 lilia 13 lilib 8 lilic
(integer) 3
127.0.0.1:6379> zrank user lilic
(integer) 0
6 zrevrank key value
查询 value的排名(降续 0名开始)
127.0.0.1:6379> zrevrank user lilic
(integer) 2
7 zrange key start stop [WITHSCORES]
返回名次[start,stop]的元素,默认是升续排列
Withscores :显示score
127.0.0.1:6379> zrange user 0 3 withscores
1) "lilic"
2) "8"
3) "lilia"
4) "12"
5) "lilib"
6) "13"
8 zrevrange key start stop [WITHSCORES]
返回名次[start,stop]的元素,降序排列
Withscores :显示score
127.0.0.1:6379> zrevrange user 0 3 withscores
1) "lilib"
2) "13"
3) "lilia"
4) "12"
5) "lilic"
6) "8"
9 zrangebyscore key min max [withscores] limit offset N
集合(升续)排序后,取score在[min,max]内的元素,并跳过 offset个后, 取出N个
127.0.0.1:6379> zrangebyscore user 8 13 withscores limit 0 1
1) "lilic"
2) "8"
127.0.0.1:6379> zrangebyscore user 8 13 withscores limit 1 1
1) "lilia"
2) "12"
127.0.0.1:6379> zrangebyscore user 8 13 withscores limit 2 1
1) "lilib"
2) "13"
10 zcard key
返回元素个数
127.0.0.1:6379> zcard user
(integer) 3
11 zcount key min max
返回score在[min,max] 区间内元素的数量
127.0.0.1:6379> zcount user 8 13
(integer) 3
12 zinterstore dest numkeys key1 [key2 …]
[weights weight1 [weight2 …]]
[aggregate sum|min|max]
numkeys :几个集合做操作
weights :让集合的score乘以权重weight1
聚合方法用: sum |min|max
聚合的结果,保存在dest集合内
127.0.0.1:6379> zadd num1 1 a 2 b 3 c
(integer) 3
127.0.0.1:6379> zadd num2 1 a 2 b 3 c 4 d
(integer) 4
127.0.0.1:6379> zinterstore dest 2 num1 num2 weights 2 1 aggregate sum
(integer) 3
127.0.0.1:6379> zrange dest 0 10 withscores
1) "a"
2) "3"
3) "b"
4) "6"
5) "c"
6) "9"