如何在 Ruby 中搜索具有值的键?例如获取值为“somevalue”的所有 KEYS。
我的 key 是
"xyz"=> {:status=> "connected", :topic=> "ABC"
"PQR"=> {:status=> "connected", :topic=> "ABC"}
现在我需要找到主题为“ABC”的所有 KEYS
最佳答案
无论使用何种编程语言,要有效地执行此操作,您都需要维护一个将某些值映射到键名的“索引”键。为此使用 Set 或 Sorted Set 是您通常应该做的 - 即向其中添加新键名称并根据它们的值删除它们 - 并在您想要“搜索”时获取该键的内容。
有一些库(即 gems)可以提供这种随时可用的功能 - 查看最优秀的 Ohm在你的情况下。
编辑
My keys are xyz => {:status=> "connected", :topic=> "ABC"} PQR => {:status=> "connected", :topic=> "ABC"} Now I need to find all the KEYS where topic is "ABC"
我会将 xyz 的值存储为字符串或哈希(取决于我是否需要更新/读取它的一部分)。然后我将 SADD topic:ABC xyz
并对其执行 SMEMBERS
或 SSCAN
以获取具有该主题的所有键的名称。当我 DEL
它的键时,我也会尝试记住 SREM
主题中的相关成员:ABC...
关于ruby - Redis 搜索具有值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32137880/