版权声明: 转载请注明出处!本文采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际许可协议
前言
从上一篇学习了一个有序集合的 ZADD 命令开始,我们继续学习有序集合的命令,今天这几个命令就是查看有序集合中元素情况的,因为是有序集合,所以在查看的时候涉及到查看顺序,接下来我们一起来看一下。
这篇笔记中的3个命令分别是 ZRANGE 、 ZREVRANGE 、 ZCARD ,可以参考:
- 《Redis每日一练(21):LPUSH和LRANGE命令》 中的 LRANGE 命令
- 《Redis每日一练(28):SADD、SMEMBERS和SCARD命令》 中的 SCARD 命令
ZRANGE
- 最早出现版本:1.2.0
- 时间复杂度:O(log(N)+M) (N是有序集合中的元素个数,M是返回的元素个数)
- 命令参数:ZRANGE key start stop [WITHSCORES]
- 操作类型:sorted sets
- 官方文档
作用
这个命令我们在学习 ZADD 命令是简单使用过,就是查询有序集合中指定范围内的元素,这个范围包括指定的端点,同时支持负数,这些规则在 redis 中是通用的。
当 start 大于 stop 时,并不会报错,而是返回一个空的列表,当指定了 WITHSCORES 选项时,每个指定范围后的元素会紧跟着一个分数。
练习
向有序集合中添加多个元素,然后使用 ZRANGE 命令查看元素:
127.0.0.1:6379> DEL zset (integer) 1 127.0.0.1:6379> ZADD zset 99 albert 98 bella 100 tom 90 lili (integer) 4 127.0.0.1:6379> ZRANGE zset 0 -1 1) "lili" 2) "bella" 3) "albert" 4) "tom" 127.0.0.1:6379> ZRANGE zset 0 1 1) "lili" 2) "bella" 127.0.0.1:6379> ZRANGE zset 0 0 1) "lili" 127.0.0.1:6379> ZRANGE zset 4 3 (empty list or set) 127.0.0.1:6379> ZRANGE zset 0 -1 WITHSCORES 1) "lili" 2) "90" 3) "bella" 4) "98" 5) "albert" 6) "99" 7) "tom" 8) "100" 127.0.0.1:6379>
复制
ZREVRANGE
- 最早出现版本:1.2.0
- 时间复杂度:O(log(N)+M) (N是有序集合中的元素个数,M是返回的元素个数)
- 命令参数:ZREVRANGE key start stop [WITHSCORES]
- 操作类型:sorted sets
- 官方文档
作用
查看指定有序集合中指定范围内元素,参数要求和作用与 ZRANGE 命令一致,唯一的不同是 ZRANG 命令查询的元素是按分数从小到大排列的,而 ZREVRANGE 命令查询的元素是按分数从大到小的顺序排列的。
练习
向有序集合中添加多个元素,然后使用 ZREVRANGE 命令查看元素,可以对比一下与 ZRANGE 命令的不同:
127.0.0.1:6379> DEL zset (integer) 1 127.0.0.1:6379> ZADD zset 99 albert 98 bella 100 tom 90 lili (integer) 4 127.0.0.1:6379> ZRANGE zset 0 -1 1) "lili" 2) "bella" 3) "albert" 4) "tom" 127.0.0.1:6379> ZREVRANGE zset 0 -1 1) "tom" 2) "albert" 3) "bella" 4) "lili" 127.0.0.1:6379> ZREVRANGE zset 0 0 1) "tom" 127.0.0.1:6379> ZREVRANGE zset -2 -1 1) "bella" 2) "lili" 127.0.0.1:6379> ZREVRANGE zset 0 -1 WITHSCORES 1) "tom" 2) "100" 3) "albert" 4) "99" 5) "bella" 6) "98" 7) "lili" 8) "90" 127.0.0.1:6379>
复制
ZCARD
- 最早出现版本:1.2.0
- 时间复杂度:O(1)
- 命令参数:ZCARD key
- 操作类型:sorted sets
- 官方文档
作用
这个命令比较简单,直接返回有序集合中元素的个数(也叫集的势),当指定的键不存在时返回0,当指定的键不是有序集合时会给出错误信息。
练习
向有序集合中添加多个元素,然后使用 ZCARD 命令查看元素个数:
127.0.0.1:6379> DEL zset (integer) 1 127.0.0.1:6379> ZADD zset 99 albert 98 bella 100 tom 90 lili (integer) 4 127.0.0.1:6379> ZRANGE zset 0 -1 1) "lili" 2) "bella" 3) "albert" 4) "tom" 127.0.0.1:6379> ZCARD zset (integer) 4 127.0.0.1:6379>
复制
总结
- ZRANGE 命令可以获取有序集合中,将元素按照分数从小到大排序后,指定范围内的所有元素。
- ZREVRANGE 命令可以获取有序集合中,将元素按照分数从大到小排序后,指定范围内的所有元素。
- ZCARD 命令可以求有序集合中元素的个数,也叫集的势。
2020-1-5 12:19:37
最后修改时间:2020-01-12 22:50:11
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Redis 8.0:开启一体化多功能开源数据平台新时代
老王两点中
99次阅读
2025-05-12 09:00:43
Redis 挂 AGPLv3 “战袍”,开源江湖风云突变
青年数据库学习互助会
70次阅读
2025-05-08 10:04:49
Redis改协议内幕曝光!核心开发者亲述被“踢出局”,外部贡献者几乎全跑光了!
老鱼笔记
47次阅读
2025-04-17 10:41:56
Redis数据库——Cluster集群模式
编程Cookbook
46次阅读
2025-04-16 15:34:44
亚马逊:MemoryDB,一款内存优先的云数据库
数据库应用创新实验室
33次阅读
2025-04-18 09:54:15
redis初识
chirpyli
30次阅读
2025-05-07 17:32:31
优雅遍历和删除特定开头的key
陌殇流苏
27次阅读
2025-04-25 12:17:03
Redis数据库——内存分配器
编程Cookbook
18次阅读
2025-04-14 12:59:10
Redis数据库——持久化机制
编程Cookbook
15次阅读
2025-04-15 11:32:38
Redis内存溢出故障排查
IT那活儿
13次阅读
2025-04-25 10:10:09
TA的专栏
我与数据库相爱相杀的日子
收录63篇内容
热门文章
Mysql中Blob类型字段的插入、查看、截取和拼接
2019-11-28 12404浏览
Redis每日一练(26):BLPOP和BRPOP命令
2019-12-28 6920浏览
Redis每日一练(22):LPOP、RPUSH和RPOP命令
2019-12-23 6299浏览
MySQL数据库导入、导出、复制表、重命名表
2019-11-30 5612浏览
MySQL中全局变量、会话变量、用户变量和局部变量的区别
2019-12-07 5612浏览
最新文章
Redis每日一练(37):ZREVRANGEBYLEX、ZRANGEBYSCORE和ZREVRANGEBYSCORE命令
2020-02-04 4231浏览
Redis每日一练(36):ZREVRANK、ZREM和ZRANGEBYLEX命令
2020-01-14 2447浏览
Redis每日一练(35):ZSCORE、ZINCRBY和ZRANK命令
2020-01-10 3891浏览
Redis每日一练(33):ZADD命令
2020-01-05 2619浏览
Redis每日一练(32):SDIFFSTORE、SINTERSTORE和SUNIONSTORE命令
2020-01-03 909浏览
目录