Redis存储key filed压缩测试
针对redis hmset存储结构中key 和filed占用内存比例的测试,运行环境如下6379端口存储压缩前数据
6381端口存储压缩后数据
运行前均flushdb清空redis所有数据
运行数据如下,10W keys
一、针对filed压缩测试
压缩前
压缩后
测试结果:
压缩前
压缩后
结论:可以看到10W条记录压缩前共使用25.54M内存,压缩后共使用19.44M内存,压缩比例 23.9%
二、针对key压缩
将user_info: 压缩为u:
测试结果
仅仅压缩key
key filed 均压缩
结论:可以看出,仅仅压缩key就可以得到 6% 的压缩空间,如果对key filed均压缩可以达到30% 的压缩比例,十分可观
三、这对key进一步压缩,对id进行进制转换压缩
$this->redis('redis_6381')->hMSet('u:' . base_convert($i, 10,36), $user_info);
key filed均压缩
结果是非常遗憾的,内存一毛钱也没有省,看来redis对key已经做过一些处理了
那我们对filed的value 的int类型做处理会如何呢,结果就不贴了,遗憾的是不但没有减少内存反而增大了内存空间变为了19M了,其实也很容易理解,redis对数值类型应该做过特殊的处理,如果对filed做进制转换,结果就变成了字符串,不利于redis自身的优化
版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]