Redis 07 Zset
Zset 就是 Set 的有序集合
应用场景:排行榜
赋值
添加一个或多个元素
zadd
127.0.0.1:6379> zadd zset 1 one
(integer) 1
127.0.0.1:6379> zadd zset 2 two 3 three
(integer) 2
查询
正序查询指定下标范围的元素
zrange
127.0.0.1:6379> zrange zset 0 1
1) "one"
2) "two"
127.0.0.1:6379> zrange zset 0 -1 # 0 -1 即为查询所有的元素
1) "one"
2) "two"
3) "three"
倒序查询指定下标范围的元素
zrevrange
127.0.0.1:6379> zrevrange zset 0 -1
1) "three"
2) "two"
3) "one"
获取元素个数
zcard
127.0.0.1:6379> zrange zset 0 -1
1) "one"
2) "two"
127.0.0.1:6379> zcard zset
(integer) 2
获取指定区间的元素数量
zcount
127.0.0.1:6379> zrange zset 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> zcount zset 1 3 # 这里下标从 1 开始
(integer) 3
127.0.0.1:6379> zcount zset 1 2
(integer) 2
排序
正序
zrangebyscore
127.0.0.1:6379> zrangebyscore zset -inf +inf # 负无穷到正无穷正序排列
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> zrangebyscore zset -inf 2 # 负无穷到 2 排序
1) "one"
2) "two"
127.0.0.1:6379> zrangebyscore zset -inf 2 limit 0 1 # 排序结果只取 0 到 1 条
1) "one"
127.0.0.1:6379> zrangebyscore zset -inf +inf withscores # 排序结果带上分数
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
倒序
zrevrangebyscore
127.0.0.1:6379> zrevrangebyscore zset +inf -inf # 正无穷到负无穷倒序排列
1) "three"
2) "two"
3) "one"
移除
移除指定元素
zrem
127.0.0.1:6379> zrange zset 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> zrem zset three # 移除指定元素
(integer) 1
127.0.0.1:6379> zrange zset 0 -1
1) "one"
2) "two"