Redis - 存储和检索大量密钥的最有效方法

时间:2014-05-28 10:02:57

标签: redis

我计划使用Redis作为数据库的主要部分并持有一大组键(~20 ^ 12键+值)。

这些键将如下所示(对于帖子):

+-------------+
+-- title ----+
+-------------+
+---- id -----+ <- Increment id
+-------------+
+-- author ---+
+-------------+
+-- content --+
+-------------+
+--- date ----+
+-------------+
+--- votes ---+
+-------------+
+--- views ---+
+-------------+
+--- locked --+ <- Boolean value
+-------------+

看起来HMSET是最好的选择,但它是O(N)而HSET O(1)。

是否有类似HMSET的操作,但时间复杂度为O(1)?我最担心的是网络绊倒开销以及检索某个密钥的时间,如果恰好位于字段中间。

你用这么大的数据集解决的方法是什么?

1 个答案:

答案 0 :(得分:2)

我引用了关于HMGET的Redis文档:

  

时间复杂度:O(N)其中N是要设置的字段数。

所以N只是你项目的字段数。如果您只从项目中获得一个字段,那么它确实是O(1)(就像HGET一样)。当然,您需要知道您要查找的字段的名称。

一次通话只是一个多个HSET / HGET。

相关问题