Redis07Zset(有序集合)类型


有序集合最大的作用就是排序

应用场景:set 排序 存储班级成绩表,工资排序

普通消息 1,重要消息 2 ,带权重进行判断

排行榜应用实现,取Top N 测试

127.0.0.1:6379> ZADD myset 1 one
(integer) 1
127.0.0.1:6379> ZADD myset 2 two 3 three
(integer) 2

127.0.0.1:6379> ZRANGE myset 0 -1

1) "one"
2) "two"
3) "three"

127.0.0.1:6379> ZADD salary 2500 xiaohong (添加三个用户)
(integer) 1
127.0.0.1:6379> ZADD salary 5000 zhangsan
(integer) 1
127.0.0.1:6379> ZADD salary 500 xiaowang
(integer) 1

127.0.0.1:6379> ZRANGEBYSCORE salary -inf +infBYSCORE的score就是指上面的第三列数字)(-inf +inf指负无穷到正无穷(升序)
1) "xiaowang"
2) "xiaohong"
3) "zhangsan"

127.0.0.1:6379> ZREVRANGE salary 0 -1 (按score降序)
1) "zhangsan"
2) "xiaowang"

127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf withscores 
1) "xiaowang"
2) "500"
3) "xiaohong"
4) "2500"
5) "zhangsan"
6) "5000"

127.0.0.1:6379> ZRANGEBYSCORE salary -inf 2500 withscores (设置指定范围)
1) "xiaowang"
2) "500"
3) "xiaohong"
4) "2500"

127.0.0.1:6379> ZREM salary xiaohong (移除一个指定元素)
(integer) 1
127.0.0.1:6379> ZRANGE salary 0 -1
1) "xiaowang"
2) "zhangsan"

ZCARD salary(查看有几个元素)

127.0.0.1:6379> ZADD myset 1 one (插入三个新元素)
(integer) 1
127.0.0.1:6379> ZADD myset 2 two
(integer) 1
127.0.0.1:6379> ZADD myset 3 three
(integer) 1
127.0.0.1:6379> ZRANGE myset 0 -1 
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> ZCOUNT myset 1 2 (获取区间有几个值)
(integer) 2
127.0.0.1:6379> ZCOUNT myset 1 3
(integer) 3