Redis HASH Key和Field如何互换?

时间:2015-07-21 00:39:20

标签: redis

我打算以下列方式使用Redis哈希作为地图地图: [version ->[key -> serialized data]]

应用程序和数据设计建议使用Redis key作为版本,使用Redis field作为密钥。在我们的例子中,这意味着只存储几十个Redis密钥,每个密钥具有数千万个字段。

似乎与Redis文档中的用例场景不对称。简单的get / set / delete操作在性能方面是否可以?没有密钥到期和其他Redis高级技术将被使用。

1 个答案:

答案 0 :(得分:3)

您当然可以使用哈希数据结构以这种方式存储数据。与仅使用简单的KV字符串(即version:key作为键,data作为值)相比,此设计添加了额外的操作来获取/设置每个字段的值。 OTOH,通过使用简单的字符串KV,你最终会拥有很多(几十万个数千万个)密钥,每个密钥的开销都比你建议的方法更高({{{{{{ 3}})。

尽管如此,Hash方法是有效的并且被广泛使用。由于额外操作而导致的性能损失通常可以忽略不计,特别是考虑到节省空间。

注意:您的问题没有说明为什么/如何获取序列化数据。您是否需要获取给定版本下的所有密钥?也许给定密钥的所有版本?都?其他?根据您的使用案例要求,可能有更好的选择。

相关问题