如何根据散列中的键/值查找键/值数据并将其添加到 Redis 中的散列?
Posted
技术标签:
【中文标题】如何根据散列中的键/值查找键/值数据并将其添加到 Redis 中的散列?【英文标题】:How can I find and add key / value data to hashes in Redis based on a key / value inside the hash? 【发布时间】:2017-06-16 07:52:50 【问题描述】:我的 Redis 数据存储中有大量的键,所有这些键都具有随机十六进制文本的任意长名称。
所有的哈希键都有一个名为 name 的键,它有一个值。
当我不知道键在哪里时,如何找到具有某个唯一名称值的哈希?(所以我必须搜索所有哈希 -我知道非常糟糕) - 例如,将字段 color: blue
添加到我拥有唯一 name: f-377
的哈希中
【问题讨论】:
【参考方案1】:我建议您创建附加哈希,该哈希将包含所有这些唯一值并映射到长名称。也就是自己的索引。
所以你需要创建新的哈希,遍历所有现有的键并添加字段(每个键一个)。并且将来当您需要创建新键时 - 您也需要将新字段添加到索引哈希中。 在这个索引哈希中搜索 - O(1),你能得到的最好的。
【讨论】:
很遗憾,我不是控制这些数据原始传播的人。 所以这很糟糕。搜索所有键非常昂贵 - O(n),没有其他方法可以比添加新索引结构更快地找到您请求的对象。如果可能的话,您可以使用 Lua 脚本 redis.io/commands/eval 与传播数据的其他人签订更严格的合同。您可以像使用 SQL 数据库中的存储过程一样使用它们。以上是关于如何根据散列中的键/值查找键/值数据并将其添加到 Redis 中的散列?的主要内容,如果未能解决你的问题,请参考以下文章