我有一个像这样的 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 模式匹配。
- 我是否应该创建一个集合
practice:1:patients
并将患者键添加到其中? - 是否存在可以隔离该 namespace 的有效 glob 模式?
- 是否有更好的方法来查询集合(例如,也适用于报告、注释等)/我是否必须为包含该集合键的每个命名空间创建一个集合?
最佳答案
扫描整个键空间以检索几个键是低效的 - 使用不同的数据结构来存储患者数据(例如哈希)和/或集合(您的 1 和 3)以执行快速查找。
关于Redis 使用带有 Glob 模式的 SCAN 匹配键来获取命名空间中的项目集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43138663/