【问题标题】:Redis ZRANGEBYLEX Escape CharactersRedis ZRANGEBYLEX 转义字符
【发布时间】:2014-09-01 22:09:14
【问题描述】:

我的排序集中很少有这样的项目:

> zrangebylex search - +
1) "abcdefghijkl"
2) "[asd](asd)"
3) "[zxy](zxc)"

如何仅使用前两个字符 '[a' 检索第二个项目?

我正在尝试实现一个自动完成系统,当我在 redis-cli 中尝试这些特殊字符时,它们会造成问题。

我尝试了以下命令,但它们不起作用(带/不带引号):

zrangebylex search ([a "([a\xff"
zrangebylex search (\[a "([a\xff"

【问题讨论】:

    标签: autocomplete redis


    【解决方案1】:

    redis-cli 需要引号,但除此之外,一切都应该按预期工作。这是我的会话的输出:

    127.0.0.1:6379> zadd search 0 abcdefjhijkl
    (integer) 1
    127.0.0.1:6379> zadd search 0 "[asd](asd)"
    (integer) 1
    127.0.0.1:6379> zadd search 0 "[zxy](zxc)"
    (integer) 1
    127.0.0.1:6379> ZRANGEBYLEX search - +
    1) "[asd](asd)"
    2) "[zxy](zxc)"
    3) "abcdefjhijkl"
    127.0.0.1:6379> ZRANGEBYLEX search "([a" "([a\xff"
    1) "[asd](asd)"
    

    ```

    【讨论】:

    • 如果我再添加 zadd search 0 "{\"Id\": 14,\"SubId\": 21055,\"CreateDate\": \"2016-04-19T04:16:34.837 \Local:0>"}" 我可以知道如何使用 ZRANGEBYLEX 来搜索这个特定的数据吗?
    • 听起来是个不同的问题,但您要搜索/依据什么?
    • 我的排序集有很多 json 字符串,可能看起来像 1) {"Id": 14,"SubId": 21055} 2) {"Id": 15,"SubId": 21056 } 3) {"Id": 15,"SubId": 21056} 我想搜索 {"Id": 14, 可能??因为我可能有不同的 ID。
    • 请打开一个包含所有相关详细信息的新问题。我保证我会在那里提供帮助;)
    猜你喜欢
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多