Redis搜索具有值的键

Shr*_*war 1 ruby redis redis-rails

如何在Ruby中搜索具有值的键?例如,获取值为"somevalue"的所有KEYS.

我的钥匙是

"xyz"=> {:status =>"connected",:topic =>"ABC"}

"PQR"=> {:status =>"connected",:topic =>"ABC"}

现在我需要找到主题为"ABC"的所有KEYS

Ita*_*ber 6

无论编程语言如何,要有效地执行此操作,您需要维护一个"索引"键,将某些值映射到键名.您应该经常使用Set或Sorted Set - 即为其添加新的键名并根据其值删除它们 - 并在您想要"搜索"时获取该键的内容.

有一些库(即宝石)可以提供这种随时可用的功能 - 在您的情况下查看最优秀的欧姆.

编辑

我的密钥是xyz => {:status =>"connected",:topic =>"ABC"} PQR => {:status =>"connected",:topic =>"ABC"}现在我需要找到所有的主题是"ABC"的KEYS

我会将xyz的值存储为String或Hash(取决于我是否需要更新/只读取部分内容).然后我会SADD topic:ABC xyzSMEMBERSSSCAN在上面获取该主题的所有键的名称.我还会尝试记住SREM主题中的相关成员:当我DEL关键时ABC ...