「这是我参与2022首次更文挑战的第8天,活动详情查看:2022首次更文挑战」
Redis的Zset操作
Zset(有序集合)
1、向Zset集合中添加数据:ZADD ZsetName 标识符 数值
1.1批量插入数据:ZADD ZsetName 标识符1 数值1 标识符2 数值2
2、将有序集合从小到大进行排序:ZRANGEBYSCORE ZsetName min max
3、将有序集合从小到大进行排序:ZRANGEBYSCORE ZsetName max min
4、将有序集合从小到大进行排序,并显示标识符数值:ZRANGEBYSCORE Zsetname min max withscores
5、从大到小进行排序,并显示标识符数值:ZREVRANGEBYSCORE Zsetname max min withscores
6、移除集合中的元素:ZREM Zsetname value
7、查看集合中的元素:ZRANGE Zsetname 0 -1
8、获取有序集合中元素的个数:ZCARD Zsetname
9、获取指定区间成员数量:ZCOUNT Zsetname min max
基本命令操作示例:
127.0.0.1:6379> ZADD myset 1 one #向myset的Zset集合中添加one标识符为1
(integer) 1
127.0.0.1:6379> ZADD myset 2 two 3 three #向myset的Zset集合中批量添加two标识符为2和three标识符是3
(integer) 2
127.0.0.1:6379> ZRANGE myset 0 -1 #查看Zset的myset有序集合中的所有数据
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> ZADD salary 2500 xiaohong #创建salary的集合xiaohong标识符为2500
(integer) 1
127.0.0.1:6379> ZADD salary 5000 zhangsan
(integer) 1
127.0.0.1:6379> ZADD salary 500 xuayng
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf #将salary有序集合从小到大按照score(标识符)进行排序(后面可以进行其他操作)
1) "xuayng"
2) "xiaohong"
3) "zhangsan"
127.0.0.1:6379> ZREVRANGEBYSCORE myset +inf -inf #将salary有序集合从大到小按照score(标识符)进行排序(后面可以进行其他操作)
1) "xuyang"
2) "world"
3) "hello"
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf withscores #将salary有序集合从小到大(默认小到大)进行排序,并显示标识符数值
1) "xuayng"
2) "500"
3) "xiaohong"
4) "2500"
5) "zhangsan"
6) "5000"
127.0.0.1:6379> ZRANGE salary 0 -1 #rem移除Zset中的元素
1) "xuyang"
2) "xiaohong"
3) "zhangsan"
127.0.0.1:6379> ZREM salary xiaohong
(integer) 1
127.0.0.1:6379> ZRANGE salary 0 -1 #只用于排序不进行其他操作
1) "xuyang"
2) "zhangsan"
127.0.0.1:6379> ZCARD salary #获取有序集合中元素的个数
(integer) 2
127.0.0.1:6379> ZCOUNT myset 1 2 #获取指定区间成员数量
(integer) 2
使用场景:
- 班级成绩排行
- 带权重的工作任务分配
- 排行榜等
明天继续加油!