Redis 使用带有 Glob 模式的 SCAN 匹配键来获取命名空间中的项目集合

标签 redis glob

我有一个像这样的 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. 是否存在可以隔离该 namespace 的有效 glob 模式?
  3. 是否有更好的方法来查询集合(例如,也适用于报告、注释等)/我是否必须为包含该集合键的每个命名空间创建一个集合?

最佳答案

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

关于Redis 使用带有 Glob 模式的 SCAN 匹配键来获取命名空间中的项目集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43138663/

相关文章:

redis - 什么是 Booksleave IKeyCommands.Find 等价于 StackExchange.Redis

python - 将 WindowsPath 转换为字符串

Python 如何搜索带有特殊符号的子字符串?和 *(类似正则表达式)

python - 使用 PySpark 从名称不包含字符串的文件夹中读取文件

用于排除多个文件的 node.js glob 模式

python - 使用 Python 水平扩展或分片 Python-RQ 或 Redis

redis - 从排序集中随机获取结果的子集而不是词汇? - 雷迪斯

ruby - 如何在 websocket eventmachine 中断开 redis 客户端

hash - 有效地从redis查询几个哈希

c++ - glob 只给出匹配模式的第一个文件