【Redis实战】有序集合类型(Sorted Set)

3、获得排名在某个范围的元素列表(ZRANGE)

ZRANGE命令会按照元素分数从小从大的顺序返回索引从start到stop之间的所有元素(包含两端的元素)。ZRANGE命令与LRANGE命令十分相似,如索引都是从0开始,负数代表从后向前查找(-1表示最后一个元素)。

127.0.0.1:6379> ZRANGE scoreboard 0 2

  1. “Peter”

  2. “Tom”

  3. “David”

127.0.0.1:6379> ZRANGE scoreboard 1 -1

  1. “Tom”

  2. “David”

如果需要同时获得元素的分数的话可以在ZRANGE命令的尾数加上WITHSCORES参数,这时返回的数据格式就从“元素1,元素2,…,元素n”变为了“元素1,分数1,元素2,分数2,…,元素n,分数n”。

127.0.0.1:6379> ZRANGE scoreboard 0 -1 WITHSCORES

  1. “Peter”

  2. “76”

  3. “Tom”

  4. “89”

  5. “David”

  6. “100”

4、获得指定分数范围的元素(ZRANGEBYSCORE)

ZRANGEBYSCORE命令参数虽然多,但是都很好理解。该命令按照元素分数从小到大的顺序返回分数在min和max之间(包含min和max)的元素。

127.0.0.1:6379> ZRANGEBYSCORE scoreboard 80 100

  1. “Tom”

  2. “David”

如果希望分数范围不包含断点值,可以在分数前加上“(”符号。例如,希望返回80分到100分的数据,可以含80分,但不包含100分,则稍微修改一下上面的命令即可:

127.0.0.1:6379> ZRANGEBYSCORE scoreboard 80 (100

  1. “Tom”

min和max还支持无穷大,同ZADD命令一样,-inf和+inf分别表示负无穷和正无穷。比如你希望得到所有分数高于80分(不包含80分)的人的名单,但你却不知道最高分是多少,这是就可以用上+inf了。

127.0.0.1:6379> ZRANGEBYSCORE scoreboard (80 +inf

  1. “Tom”

  2. “David”

想获得分数高于60分的从第二个人开始的3个人。

127.0.0.1:6379> ZADD scoreboard 56 Jerry 92 Wendy 67 Yvonne

(integer) 3

127.0.0.1:6379> ZRANGE scoreboard 0 -1 WITHSCORES

  1. “Jerry”

  2. “56”

  3. “Yvonne”

  4. “67”

  5. “Peter”

  6. “76”

  7. “Tom”

  8. “89”

  9. “Wendy”

  10. “92”

  11. “David”

  12. “100”

127.0.0.1:6379> ZRANGEBYSCORE scoreboard 60 +inf LIMIT 1 3

  1. “Peter”

  2. “Tom”

  3. “Wendy”

获得分数低于或等于100分的前3个人。

127.0.0.1:6379> ZREVRANGEBYSCORE scoreboard 100 0 LIMIT 0 3

  1. “David”

  2. “Wendy”

  3. “Tom”

5、增加某个元素的分数(ZINCRBY)

ZINCRBY命令可以增加一个元素的分数,返回值是更改后的分数。例如,想给Jerry加4分:

127.0.0.1:6379> ZINCRBY scoreboard 4 Jerry

“60”

127.0.0.1:6379> ZINCRBY scoreboard -4 Jerry

“56”

6、获得集合中元素的数量(ZCARD)

127.0.0.1:6379> ZCARD scoreboard

(integer) 6

7、获得指定分数范围内的元素个数(ZCOUNT)

127.0.0.1:6379> ZCOUNT scoreboard 90 100

(integer) 2

127.0.0.1:6379> ZCOUNT scoreboard (89 +inf

(integer) 2

8、删除一个或多个元素(ZREM)

127.0.0.1:6379> ZREM scoreboard Wendy

(integer) 1

127.0.0.1:6379> ZCARD scoreboard

(integer) 5

9、按照排名范围删除元素(ZREMRANGEBYRANK)

ZREMRANGEBYRANK命令按照元素分数从小到大的顺序(即索引0表示最小的值)删除处在指定排名范围内的所有元素,并返回删除的元素数量,如:

127.0.0.1:6379> ZADD testRem 1 a 2 b 3 c 4 d 5 e 6 f

(integer) 6

127.0.0.1:6379> ZREMRANGEBYRANK testRem 0 2

(integer) 3

127.0.0.1:6379> ZRANGE testRem 0 -1

  1. “d”

  2. “e”

  3. “f”

10、按照分数范围删除元素(ZREMRANGEBYSCORE)

ZREMRANGEBYSCORE命令来删除指定分数范围内的所有元素,参数min和max的特征和ZRANGEBYSCORE命令中的一样。返回值是删除的元素数量。

127.0.0.1:6379> ZREMRANGEBYSCORE testRem (4 5

(integer) 1

127.0.0.1:6379> ZRANGE testRem 0 -1

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

部分内容:

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
片转存中…(img-uIGJr86S-1713534866014)]

[外链图片转存中…(img-hcejLhDi-1713534866015)]

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值