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

Posted lytwajue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis之Hash存储与String存储内存消耗对照相关的知识,希望对你有一定的参考价值。

存储对象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实践





















以上是关于redis之Hash存储与String存储内存消耗对照的主要内容,如果未能解决你的问题,请参考以下文章

redis之hashes类型及操作

Redis 利用 Hash 存储节约内存

redis源码分析之内存布局

系统学习redis之四——redis数据类型之hash类型及操作

Day737.String数据结构内存空间消耗问题 -Redis 核心技术与实战

Redis (非关系型数据库) 数据类型 之 String类型