Redis中Value使用hash类型的效率是普通String的两倍

什么Redis? 点击这里

最近要开发的一个项目是分布式缓存组件,解决参数缓存高效获取的问题。参数达到了500万级别,刚刚开始了解Redis。做设计的时候考虑到Value使用哪种类型的问题?

主要面临的是使用一般的String还是使用Hash。本来直觉以为使用String的效率会高,因为Redis在Memcached的基础上升级了,扩展的Value类型应该是为了方便。没想到在效率上也有了很大的提升。

测试的环境是一台Linux物理机,安装了最新版的Redis2.6. 测试数据如下:

String类型的数据和Hash类型的数据各100w(前100万为String,后100万为Hash),随机取100次数据,比较两种的耗时;

测试的代码如下:

虽然都是毫秒级别,但是结果对比下就一目了然,我应该选择那种类型:

相差2倍的程度。

正在学习使用Redis的过程中,记下来给初学的朋友参考,日后自己也好查阅。

作者:张雪飞
出处:https://zhangxuefei.site/p/57
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

3comments

  1. 我觉得这个测试不准确,应该是100万个string和1个hashmap中有100万的field,这样测出来的结果才有意义。

发表评论

电子邮件地址不会被公开。 必填项已用*标注