为什么我不能在redis中的这个排序集上使用ZRANGEBYLEX?

为什么我不能在redis中的这个排序集上使用ZRANGEBYLEX?,redis,Redis,在redis文档中,有一个ZRANGEBYLEX ZADD myindex 0 0056:0028.44:90 ZADD myindex 0 0034:0011.00:832 ZRANGEBYLEX myindex [0056:0010.00 [0056:0030.00 1) "0056:0028.44:90" 这很简单 但是,如果我想对下面的示例应用相同的技术 127.0.0.1:6379> zadd feedbacks 1 feedback1 2 feedback2 3 feedba

在redis文档中,有一个
ZRANGEBYLEX

ZADD myindex 0 0056:0028.44:90
ZADD myindex 0 0034:0011.00:832
ZRANGEBYLEX myindex [0056:0010.00 [0056:0030.00
1) "0056:0028.44:90"
这很简单

但是,如果我想对下面的示例应用相同的技术

127.0.0.1:6379> zadd feedbacks 1 feedback1 2 feedback2 3 feedback3 1 feedback4
(integer) 4
127.0.0.1:6379> ZRANGEBYLEX feedbacks [feed [feed
(empty list or set)
我有一套空的

我希望看到这四个值(
feedback1
feedback4


为什么对我的测试样本
ZRANGEBYLEX
失败?

失败是因为他们的分数不同。ZRANGEBYLEX仅适用于相同的分数子集

当排序集中的所有元素都以相同的格式插入时 评分,为了强制进行词典排序,此命令 返回排序集at key中的所有元素,其值介于 最小值和最大值

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

排序集具有在相同分数子集内按字典顺序排序的特性。这给了他们第二个用例,一个按字典顺序排序的集合,但在本例中,您添加了具有相同分数的所有元素

因此,您必须选择如何使用排序集:

  • 按分数排序(对于可预测的顺序,按相同分数排序)
  • 按字典顺序排序,所有元素的分数相同

你不能两者兼得。然后您需要两个排序集。

我在集合中有分配了相同分数的字符串,即1。不过,我得到的结果是一个空数组<代码>['Einflüssen','1','Jüpëtër','1','Mǟrs','1','Sǟtürn','1','Versalhöhe','1','VënüS','1','st ren 1','Ëarth',1']我使用的命令是,
zrangebylex search[Ei Ein从您提供的字符串中,没有一个在
[Ei中[Ein
好的。我对
zrangebylex
中的最小和最大范围有点困惑。我用
zrangebylex搜索[Ei[Einflüssen
尝试了它,它成功了。但是,如果我想让所有至少匹配
[Ein
的字符串出现在我的结果中,那么最大范围应该是什么?你能建议一下吗?你马上做(字节/字符码),排他,结尾:
(Eio