redis的有序集合
一.集合内
1.添加成员
zadd key score member [score member …] [nx|xx|ch|incr]
- 返回添加成员成功的个数
- nx:用于添加,成员不存在才可以添加成功
- xx:用于更新,成员必须存在
- ch:返回此次操作后,有序集合元素和分数发生变化的个数
- incr:对score做增加,相当于zincrby
2.增加成员的分数
zincrby key increament member
127.0.0.1:6379> zadd rank 100 zhangsan
(integer) 1127.0.0.1:6379> zincrby rank 10 zhangsan
"110"
3.计算成员个数
zcard key
127.0.0.1:6379> zcard rank
(integer) 4
4.计算某个成员的分数
zscore key member
127.0.0.1:6379> zscore rank zhangsan
"100"127.0.0.1:6379> zscore rank wangwu
(nil)
5.计算成员的排名
zrank key member
zrevrank key member
127.0.0.1:6379> zrank rank zhangsan
(integer) 0
127.0.0.1:6379> zrevrank rank lisi
(integer) 0
127.0.0.1:6379> zrevrank rank zhangsan
(integer) 1
6.返回指定排名返回的成员
zrange key start end [withscores]
- 按分数升序返回
zrevrange key start end [withscores] - 按分数降序返回
127.0.0.1:6379> zrange rank 0 1 withscores
1) "xiaoming"
2) "60"
3) "xiaohong"
4) "77"127.0.0.1:6379> zrevrange rank 0 1 withscores
1) "xiaofang"
2) "150"
3) "zhangsan"
4) "110"
7.返回指定分数范围的成员
zrangebyscore key min max [withscores] [limit offset count]
- 按分数升序返回
- limit offset count:限制输出的起始位置和个数
- 返回最小或最大值支持开区间(小括号标识)和闭区间(默认是闭区间)
zrevrangbyscore key min max [withscores] [limit offset count]
- 按分数降序返回
- limit offset count:限制输出的起始位置和个数
- 返回最小或最大值支持开区间(小括号标识)和闭区间(默认是闭区间)
127.0.0.1:6379> zrangebyscore rank (110 +inf withscores
1) "xiaofang"
2) "150"127.0.0.1:6379> zrangebyscore rank 110 150 withscores
1) "zhangsan"
2) "110"
3) "xiaofang"
4) "150"
8.返回指定分数范围成员个数
zcount key min max
127.0.0.1:6379> zcount rank 110 150
(integer) 2
9.删除成员
zrem key member [member …]
127.0.0.1:6379> zrem rank lisi
(integer) 1
10.删除指定排名内的升序元素
zremrangebyrank key start end
11.删除指定分数范围的成员
zremrangebyscore key min max
二.集合间的操作
1.交集
zinterstore destination numkeys key [key key …] [weights weight [weight …]] [aggregate sum|min|max]
- destination:交集计算结果保存位置
- numkeys:需要做交接计算的个数
- key:交集计算的键
- weights:每个键的权重
- aggregate:计算成员交集后,分值的操作运算
2.并集
zunionstore destination numkeys key [key key …] [weights weight [weight …]] [aggregate sum|min|max]