redis之Hash存储与String存储内存消耗对比

时间:2022-02-13 17:24:38

存储对象User
String存储方式:

SET media:1155315 939
  GET media:1155315
  > 939

 String结构存储该对象      

User243 243600

存储量 使用内存(KB) 使用时间(毫秒) 使用cpu
100 30.72 2983  
100 30.72 1224  
100 40.96 2638  
100 40.96 1543  
100 40.96 3335  
4487 1934.62 21760(21.76秒) 0.05
4487 1934.59 21732(21.732秒) 0.05
       
1000000 84.042MB 70.672分(单线程)  


String结构存储该对象      

存储量 使用内存(KB) 使用时间(秒) 使用cpu
100 30.72 0.2983  
100 30.72 0.1224  
100 40.96 0.2638  
100 40.96 0.1543  
100 40.96 0.3335  
4487 1934.62 21.76  
4487 1934.62 21.732  
       
1000000 84.042MB 70.672(分钟)  
Hash结构存储该对象

100
存储量 使用内存(KB) 使用时间(秒) 使用cpu
100 367.76 0.454  
100 37.37 0.458  
50.50 0.461  
100 40.44 0.467  
100 35.50 0.489  
4487 1805.1 21.729  
4487 1844.23 21.712  
4487 1844.23 21.778  
       
1000000 68.70MB    




HSET "mediabucket:1155" "1155315" "939"
  HGET "mediabucket:1155" "1155315"
  > "939"

存储量 使用内存(KB) 使用时间(毫秒) 使用cpu
100 367.76 454  
100 37.37 458  
100 50.50 461  
100 40.44 467  
100 35.50 489  

   
     
     
     


4487 1805.1 21729 0.06
4487 1844.23 21712 0.05
4487 1844.23 21778  

1000000 0                   68.70MB  
       


Hash结构继续优化

类似

HSET "1155" "315" "939"
  HGET "1155" "315"
  > "939"


存储量 使用内存(KB) 使用时间(毫秒) 使用cpu
100 367.76 454  
100 37.37 458  
100 50.50 461  
100 40.44 467  
100 35.50 489  
4487 1803.29 21879 0.06
4487 1842.43 21931 0.05
       


参考文章:

http://www.searchdatabase.com.cn/showcontent_54724.htm 

节约内存:Instagram的Redis实践