Redis zrangebylex的使用 | Redis sorted_set不可不知的秘密

本文详细介绍了Redis中的zrangebylex命令,包括其作用、注意事项和经典案例,如利用"-"和"+"表示得分范围,limit分页等。同时揭示了sorted_set的不可不知的秘密,如所有命令以z开头,分值相同成员按字典顺序排序,以及如何更新分值、获取分值和成员操作。
摘要由CSDN通过智能技术生成

一、前言

关于redis的zrangebylex的使用,官网和各种课程,给的案例很粗糙,难以理解。

本文带你了解以下内容:

1、zrangebylex它是干什么的

2、zrangebylex命令到底是怎么用?

3、sorted_set有哪些不可不知的秘密?

二、zrangebylex详解

1.zrangebylex的作用和注意事项

作用:按字典从低到高排序,取索引范围内的元素(集合内的分值需相同) 

127.0.0.1:6379> help zrangebylex

ZRANGEBYLEX key min max [LIMIT offset count]
summary: Return a range of members in a sorted set, by lexicographical range
since: 2.8.9
group: sorted_set

注意事项:
1.分数必须相同! 如果有序集合中的成员分数有不一致的,返回的结果就不准。
2.成员字符串作为二进制数组的字节数进行比较。
3.默认是以ASCII字符集的顺序进行排列。如果成员字符串包含utf-8这类字符集(比如:汉字)的内容,就会影响返回结果,所以建议不要使用。
4.默认情况下, “max” 和 “min” 参数前必须加 “[” 符号作为开头。”[” 符号与成员之间不能有空格, 返回成员结果集会包含参数 “min” 和 “max” 。
5.“max” 和 “min” 参数前可以加 “(” 符号作为开头表示小于, “(” 符号与成员之间不能有空格。返回成员结果集不会包含 “max” 和 “min” 成员。
可以使用 “-” 和 “+” 表示得分最小值和最大值
6.zrangebylex(它的参数是min 在前 max在后)获取顺序相反的指令是zrevrangebylex (它的参是 max 在前 min 在后)。
7.源码中采用C语言中memcmp() 函数, 从字符的第0位到最后一位进行排序,如果前面部分相同,那么较长的字符串比较短的字符串排序靠后。

 使用场景:分数相同的有序集合中;LEX结尾的指令是要求分数必须相同。

 2.zrangebylex的经典案例

1.用 “-” 和 “+” 表示得分最小值和最大值

127.0.0.1:6379> zadd num 100 aa  100 cc 100 bb 100 ff 100 ee 100 gg 添加分值相同的元素
6
127.0.0.1:6379> zrangebylex num - +  获取所有元素
aa
bb
cc
ee
ff
gg

2.limit分页的使用

语法: zrangebylex  key min max [LIMIT offset count]
min 是起始元素位置,- 代表从第0位开始
max 是终止元素位置,+ 代表到最后一个元素
offset 是指下标索引的起始值,
count 是指,从下标索引offset的位置开始(包含offset所对应的元素),向后取几个元素 


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值