Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis ZRANGEBYLEX查询为相同数量的字符数返回不同的结果_Redis_Lexical - Fatal编程技术网

Redis ZRANGEBYLEX查询为相同数量的字符数返回不同的结果

Redis ZRANGEBYLEX查询为相同数量的字符数返回不同的结果,redis,lexical,Redis,Lexical,我创造了这样的场景 ZADD myzset 0 baba 0 abab 0 aabb 0 bbaa 0 baab 0 abba 当我使用“aa”和“bb”关键字查询类似的结果时 用于“aa” ZRANGEBYLEX myzset“[aa”+ 1) “aabb” 2) “abab” 3) “阿巴” 4) “巴布” 5) “爸爸” 6) “bbaa” 用于“bb” ZRANGEBYLEX myzset“[bb”+ 1) “bbaa” 为什么“bb”只返回1而“aa”返回6 ZRANGEBYLEX m

我创造了这样的场景
ZADD myzset 0 baba 0 abab 0 aabb 0 bbaa 0 baab 0 abba

当我使用“aa”和“bb”关键字查询类似的结果时

用于“aa”

ZRANGEBYLEX myzset“[aa”+
1) “aabb”
2) “abab”
3) “阿巴”
4) “巴布”
5) “爸爸”
6) “bbaa”

用于“bb”

ZRANGEBYLEX myzset“[bb”+
1) “bbaa”

为什么“bb”只返回1而“aa”返回6

ZRANGEBYLEX myindex“[香蕉:”+限制1 10
1) “香蕉:123”
2) “banahhh:1”
3) “被禁止用户:49”
4) “禁止:89”

另一个来自redis站点()

如何才能
2)“banahhh:1”
这列为第二个。它不能显示在结果中,或者我遗漏了什么

ZRANGEBYLEX myindex“[香蕉:”+限制1 10
1) “香蕉:123”
2) “banahhh:1”
3) “被禁止用户:49”
4) “禁止:89”


注意:我注意到它对添加的项目进行排序,并根据排序后的索引返回。我不知道这是因为排序集中的元素具有相同的分数,并且您使用ZRANGEBYLEX命令。正如redis文档所述:

由于每个元素都是唯一的,因此同一元素不能在排序集中重复,但可以添加多个具有相同分数的不同元素。当多个元素具有相同分数时,它们按字典顺序排列。(它们仍然以分数作为第一个键进行排序,但是,在本地,具有相同分数的所有元素都是相对按字典顺序排列的)

使用ZRANGEBYLEX命令,它只是比较字符串和相同分数的限制

如果排序集中的元素具有不同的分数,则返回的元素未指定

因此,如果您的排序集具有不同的分数,则该操作未指定

如果使用ZRANGE命令,它将首先比较分数,然后比较具有相同分数的字符串


请参阅api文档以获取更多信息,从redis站点(
ZRANGEBYLEX myindex“[banana:+LIMIT 1 10 1)”香蕉:123“2”banahhh:1“3)”禁止用户:49“4”禁止:89“
这怎么可能是第二个
2)“banahhh:1”
结果中不能显示它,或者我遗漏了什么我在这个网站上没有看到,他们的分数是一样的吗?它只是按lex顺序列出的:bananah作为词法顺序,当我在这里尝试(),
banah
not listedeh,那么也许这是个错误,你应该相信你的尝试