Zset(有序集合)
在set的基础上,增加了一个值,set k1 v1 ,zset k1 score1 v1
添加
127.0.0.1:6379> zadd myzset 1 one # 添加一个值
(integer) 1
127.0.0.1:6379> zadd myzset 2 two
(integer) 1
127.0.0.1:6379> zadd myzset 3 three 4 four # 添加多个值
(integer) 2
127.0.0.1:6379> zrange myzeset 0 -1 # 查看全部
(empty list or set)
127.0.0.1:6379> zrange myzset 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
127.0.0.1:6379> zcard salary # 获取集合中的个数
(integer) 4
排序
127.0.0.1:6379> zadd salary 5000 xiaohong
(integer) 1
127.0.0.1:6379> zadd salary 6000 zhangsan
(integer) 1
127.0.0.1:6379> zadd salary 15000 zhaojiulin
(integer) 1
127.0.0.1:6379> zrangebyscore salary -inf +inf # 显示所有用户 从小到大
1) "xiaohong"
2) "zhangsan"
3) "zhaojiulin"
127.0.0.1:6379> zrevrange salary 0 -1 显示所有用户 从大到小
1) "zhaojiulin"
2) "zhangsan"
3) "xiaohong"
127.0.0.1:6379> zrangebyscore salary -inf +inf withscores # 显示所有用户并附带薪水值
1) "xiaohong"
2) "5000"
3) "zhangsan"
4) "6000"
5) "zhaojiulin"
6) "15000"
127.0.0.1:6379> zrangebyscore salary -inf 6000 withscores # 显示工资小于等于6000员工的升序排序
1) "xiaohong"
2) "5000"
3) "zhangsan"
4) "6000"
移除元素
127.0.0.1:6379> zrange salary 0 -1
1) "xiaohong"
2) "zhangsan"
3) "zhaojiulin"
127.0.0.1:6379> zrem salary xiaohong # 移除salary中的xiaohong
(integer) 1
127.0.0.1:6379> zrange salary 0 -1
1) "zhangsan"
2) "zhaojiulin"
区间
127.0.0.1:6379> zrange myzset 0
- List item
-1
1) "one"
2) "two"
3) "three"
4) "four"
127.0.0.1:6379> zcount myzset 1 3 # 获取指定区间成员个数
(integer) 3
127.0.0.1:6379> zcount myzset 1 2
(integer) 2
应用场景:
- 商品的评价标签,可以记录商品的标签,统计标签次数,增加标签次数,按标签的分值进行排序
- 百度搜索热点
- 排行榜