2015-11-09 37 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

爲什麼?

哈希使用更多的內存用於存儲密鑰,而其同樣爲所有用戶 - 如用戶名,姓名,年齡,日期和...

您可以使用一個列表,而不是,只是與小騙子。列表是項目的順序,您可以通過其索引訪問每個項目。 您可以使用此索引來存儲用戶的信息。例如第一個項目是用戶名,第二個是名稱和....

這將減少使用的存儲器,具體地