2015-11-09 39 views
0

我的原始数据文件只有600mb。使用redis哈希消耗比键值对更多的内存

我用

hmset "10000000" "0427" "a long string" 
hmset "10000000" "0428" "a long string" 
hmset "10000001" "0427" "a long string" 
hmset "10000001" "0429" "a long string" 

第一个是用户ID,第二个是日期,第三个是一个长的字符串。

将整个文件加载到内存需要1.3gb。

如果我只用

set "1000000000427" "a long string", 
set "1000000000428" "a long string", 
set "1000000010427" "a long string", 
set "1000000000429" "a long string", 

只需要800MB。任何想法如何节省一些空间?

回答

0

所有的redis数据类型都很强大。但你应该选择使用它们的最佳方式。 使用哈希可以增加或减少已用内存。它完全取决于你在找什么。

对于你的情况,我想你想保存用户的信息,如果它的,如果你准备好要消耗更多的时间,我建议你使用LIST

为什么?

哈希使用更多的内存用于存储密钥,而其同样为所有用户 - 如用户名,姓名,年龄,日期和...

您可以使用一个列表,而不是,只是与小骗子。列表是项目的顺序,您可以通过其索引访问每个项目。 您可以使用此索引来存储用户的信息。例如第一个项目是用户名,第二个是名称和....

这将减少使用的存储器,具体地