Redis-Zset(有序集合)

前言

提示:本文章是日常学习内容的总结,并非全部原创;仅供大家参考借鉴,并无其他商业用途。Bilibili搜索关注:狂神说
真正在公司中的实践:NoSQL + RDBMS 一起使用才是最强的,阿里巴巴的架构演进!
技术没有高低之分,就看你如何去使用!(提升内功,思维的提高!)
云计算的长征之路:阿里云的这群疯子

Zset(有序集合)概括

与set的区别
set:   sadd set value
zset: zadd Zset 1 value
在set的基础上,增加了一个排序值
案例思路:

  1. 存储班级成绩表
  2. 工资表排序
  3. 普通消息,重要消息,带权重进行判断!
  4. 排行榜应用实现,取Top N 测试!

1、Zadd ,Zrange

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"

2、排序如何实现 ZrangeByScore,ZrevRange

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 kaungshen 
(integer) 1   # ZRANGEBYSCORE key min max 
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf               # 显示全部的用户 salary 从小到大! 
1) "kaungshen" 
2) "xiaohong" 
3) "zhangsan" 
127.0.0.1:6379> ZREVRANGE salary 0 -1                        # 从大到进行排序! 
1) "zhangsan" 
2) "kaungshen" 
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf withscores    # 显示全部的用户并且附带成 绩
1) "kaungshen" 
2) "500" 
3) "xiaohong"
4) "2500" 
5) "zhangsan" 
6) "5000" 
127.0.0.1:6379> ZRANGEBYSCORE salary -inf 2500 withscores    # 显示工资小于2500员工的升 序排序! 
1) "kaungshen"
2) "500" 
3) "xiaohong" 
4) "2500"

3、Zrem ,Zcard

# 移除rem中的元素 
127.0.0.1:6379> zrange salary 0 -1 
1) "kaungshen" 
2) "xiaohong" 
3) "zhangsan" 
127.0.0.1:6379> zrem salary xiaohong                        # 移除有序集合中的指定元素 
(integer) 1 
127.0.0.1:6379> zrange salary 0 -1 
1) "kaungshen" 
2) "zhangsan" 
127.0.0.1:6379> zcard salary                                # 获取有序集合中的个数 
(integer) 2

4、zcount 获取指定区间的成员数量

127.0.0.1:6379> zadd myset 1 hello 
(integer) 1 
127.0.0.1:6379> zadd myset 2 world 3 kuangshen 
(integer) 2 
127.0.0.1:6379> zcount myset 1 3                            # 获取指定区间的成员数量! 
(integer) 3 
127.0.0.1:6379> zcount myset 1 2 
(integer) 2

猜你喜欢

转载自blog.csdn.net/ws13575291650/article/details/112434552