【问题标题】:Redis matching keys using SCAN with Glob pattern to get collection of items within a namespaceRedis 使用 SCAN 和 Glob 模式匹配键以获取命名空间内的项目集合
【发布时间】:2017-04-01 01:47:35
【问题描述】:

我有一个像这样的 redis 数据结构:

practice:1:patient:{UUID}:reports:{UUID}
practice:1:patient:{UUID}:reports:{UUID}:notes:{id}
practice:1:patient:{UUID}:reports:{UUID}:notes:{id}:fieldValue:{id}
practice:1:patient:{UUID}
practice:1:patient:{UUID}:variables
practice:1:patient:{UUID}:documents

我正在尝试专门查询 patient:{UUID} 键,但事实证明,使用 glob 模式匹配很困难。

  1. 我应该创建一个集practice:1:patients 并添加患者密钥吗?
  2. 是否存在可以隔离该命名空间的有效全局模式?
  3. 是否有更好的方法来查询集合(例如,也适用于报告、注释等)/我是否必须为每个包含该集合键的命名空间创建一个集合?

【问题讨论】:

    标签: redis glob


    【解决方案1】:

    扫描整个键空间以检索几个键是低效的 - 使用不同的数据结构来存储患者数据(例如哈希)和/或集合(您的 1 和 3)以执行快速查找。

    【讨论】:

    • 感谢您的回复。是的,我最终根据要排序的属性创建了一个排序集,例如患者:姓氏、患者:名字等。SCAN(在整个键空间上)的有效用例是什么?
    • 例如,后台管理或分析过程可以从 SCAN 中受益。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多