使用redis hash比键值对消耗更多的内存

时间:2015-11-09 06:41:25

标签: redis

我的原始数据文件只有600mb。

我正在使用

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。知道如何节省一些空间吗?

1 个答案:

答案 0 :(得分:0)

所有redis数据类型都很强大。但你应该选择最好的使用方式。 使用散列可以增加或减少使用的内存。这完全取决于你要找的东西。

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

为什么?

哈希使用更多内存来存储密钥,而对所有用户来说都是一样的 - 例如用户名,姓名,年龄,日期等......

您可以使用列表,只需使用小作弊。 list是项目序列,您可以通过索引访问每个项目。 您可以使用此索引存储用户的信息。例如,第一项是用户名,第二项是名称......

这将减少已用内存,特别是