Redis - ZRANGEBYLEX 返回空集

标签 redis

我有一个存储在 redis 中的集合,如下所示:

127.0.0.1:6379> zrange my_set 0 -1
1) "ABC20180108131627044829:XYZ20180108131627044857"
2) "ABC20180108131627044829:XYZ20180108131627044858"
3) "ABC20180108131627044829:XYZ20180108131627044859"
4) "ABC20180108131627044830:XYZ20180108131627044830"
5) "ABC20180108131627044830:XYZ20180108131627044831"

它们是使用

添加到集合中的
ZADD my_set 0 ABC20180108131627044829:XYZ20180108131627044857
ZADD my_set 0 ABC20180108131627044829:XYZ20180108131627044858
ZADD my_set 0 ABC20180108131627044829:XYZ20180108131627044859
ZADD my_set 0 ABC20180108131627044830:XYZ20180108131627044830
ZADD my_set 0 ABC20180108131627044830:XYZ20180108131627044831

我想我可以使用以下方法取回所有包含 ABC20180108131627044829 的项目,但我在这里得到一个空列表。

127.0.0.1:6379> ZRANGEBYLEX my_set - [ABC20180108131627044829
(empty list or set)

最佳答案

您正在寻找自动完成行为。这是一个 ZRANGEBYLEX 查询,它将只为您提供以字符串开头的元素:

ZRANGEBYLEX my_set [STRING [STRING\xff

以你的例子为例:

ZRANGEBYLEX my_set [ABC20180108131627044829 [ABC20180108131627044829\xff

1) "ABC20180108131627044829:XYZ20180108131627044857"
2) "ABC20180108131627044829:XYZ20180108131627044858"
3) "ABC20180108131627044829:XYZ20180108131627044859"

注意,所有分数必须相等。

关于Redis - ZRANGEBYLEX 返回空集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48191464/

相关文章:

node.js - hdel 里面的 hget block nodejs redis

javascript - 使用 node.js 进行长轮询并表达 : how to cache res object into redis or other cache framework

redis - 为什么我会收到此 hgetall 类型错误?

redis - 不均匀的缓存命中

c# - .net + 使用 redissessionstateprovider + sessionstate 自定义模式在多个服务器上共享 session

ruby-on-rails-4 - 无法处理 SSE 中断开连接的客户端

redis - 如何使用Redis 批量插入?

基于 Redis 的 Java 作业调度程序?

c++ - hiredis Redis 库是否为异步回调创建自己的线程

javascript - Redis ReJSON 系统地返回两个错误 : missing key at non-terminal path and new object must be created at root