Zset有序集合
大约 2 分钟数据库技术Redis
在set的基础上,增加了一个值。
set k1 v1
zset k1 score1 v1
##########################################################################
# 1、存值取值
127.0.0.1:6379> zadd myset 1 one # 添加一个值
(integer) 1
127.0.0.1:6379> zadd myset 2 two 3 three 4 four # 添加多个值
(integer) 3
127.0.0.1:6379> ZRANGE myset 0 -1 # 获取所有值
1) "one"
2) "two"
3) "three"
4) "four"
##########################################################################
# 2、排序
127.0.0.1:6379> zadd salary 2500 xiaohong # 添加3个用户
(integer) 1
127.0.0.1:6379> zadd salary 5000 zhangsan
(integer) 1
127.0.0.1:6379> zadd salary 500 hejin
(integer) 1
127.0.0.1:6379> ZRANGE salary 0 -1
1) "hejin"
2) "xiaohong"
3) "zhangsan"
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf # 显示全部的用户 从小到大排序
1) "hejin"
2) "xiaohong"
3) "zhangsan"
127.0.0.1:6379> ZRANGEBYSCORE salary 0 -1
(empty array)
127.0.0.1:6379> ZRANGEBYSCORE salary +inf -inf
(empty array)
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf withscores # 显示全部的用户。从小到大排序。并且附带成绩
1) "hejin"
2) "500"
3) "xiaohong"
4) "2500"
5) "zhangsan"
6) "5000"
127.0.0.1:6379> ZRANGEBYSCORE salary -inf 2500 withscores # 显示工资小于2500员工的升序排列信息
1) "hejin"
2) "500"
3) "xiaohong"
4) "2500"
127.0.0.1:6379> ZREVRANGE salary 0 -1 # 从大到小排序
1) "zhangsan"
2) "hejin"
127.0.0.1:6379> ZREVRANGE salary 0 -1 withscores # 从大到小排序,带成绩
1) "zhangsan"
2) "5000"
3) "hejin"
4) "500"
##########################################################################
# 3、移除元素
127.0.0.1:6379> zrange salary 0 -1
1) "hejin"
2) "xiaohong"
3) "zhangsan"
127.0.0.1:6379> zrem salary xiaohong # 移除有序集合中的指定元素
(integer) 1
127.0.0.1:6379> zrange salary 0 -1
1) "hejin"
2) "zhangsan"
127.0.0.1:6379> zcard salary # 获取有序集合中的个数
(integer) 2
##########################################################################
# 4、获取指定区间的成员数量
127.0.0.1:6379> zadd myset 1 hello
(integer) 1
127.0.0.1:6379> zadd myset 2 world 3 hejin
(integer) 2
127.0.0.1:6379> ZRANGE myset 0 -1
1) "hello"
2) "world"
3) "hejin"
127.0.0.1:6379> zcount myset 1 3 # 获取指定区间的成员数量
(integer) 3
127.0.0.1:6379> zcount myset 1 2
(integer) 2
如果工作中有需要,查查官方文档。
案例思路
- 工资表排序
- 普通消息,重要消息。带权重进行判断
- 排行榜