【问题标题】:redis data storage with match and range具有匹配和范围的redis数据存储
【发布时间】:2016-01-13 23:07:55
【问题描述】:

我正在尝试使用redis 作为我的mongodb 数据库的缓存层,我的要求是我有城市集合,其中包含亚洲大陆和欧洲大陆的所有城市,并且我需要在这些数据上执行搜索带有正则表达式和分页的城市名称。我将所有城市集合转储到 redis zset 中。问题是当我能够进行分页但不能使用zscan and match 进行区分大小写的搜索时。请帮帮我,我使用redis 的方法是对还是错。

【问题讨论】:

    标签: php mongodb redis


    【解决方案1】:

    我不知道是非对错,但这是我对 Redis 的处理方式:MATCH 子句进行全局样式匹配,因此当您需要更健壮的表达式时,这是一个问题。在这种情况下,您可以尝试三种基本方法:

    1. 如果可能,请尝试将您的搜索标准化为全局样式,例如通过始终进行小写搜索(并保持数据相同)
    2. 尝试使用ZRANGEBYLEX,可能使用http://redis.io/topics/indexes 处的信息
    3. 使用 Lua 脚本来实现正则表达式逻辑,例如https://stackoverflow.com/a/29945372/3160475

    另请注意,关于ZSCAN 的分页,COUNT 开关只是一个提示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      相关资源
      最近更新 更多