学习Redis,day8 Redis的Zset操作~

134 阅读2分钟

「这是我参与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

使用场景:

  • 班级成绩排行
  • 带权重的工作任务分配
  • 排行榜等

明天继续加油!