博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis中Value使用hash类型的效率是普通String的两倍
阅读量:7071 次
发布时间:2019-06-28

本文共 1170 字,大约阅读时间需要 3 分钟。

什么Redis? 

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

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

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

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

测试的代码如下:

            RedisClient client = new RedisClient("192.168.1.59", 6379);             Stopwatch sw = Stopwatch.StartNew();             for (int i = 0; i < 100; i++)             {
                client.Get(new Random().Next(1000000).ToString());             }             sw.Stop();             Console.WriteLine("使用String类型:"+sw.ElapsedMilliseconds);             sw.Restart();             for (int i = 0; i < 100; i++)             {
                long t = new Random().Next(1000000, 199999998);                 client.GetValueFromHash(t.ToString(), (t + 1).ToString());             }             sw.Stop();             Console.WriteLine("使用Hash类型:"+sw.ElapsedMilliseconds);

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

相差2倍的程度。

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

 本文转自Rt-张雪飞博客园博客,原文链接http://www.cnblogs.com/mszhangxuefei/p/redis-01.html如需转载请自行联系原作者

张雪飞

你可能感兴趣的文章
Qt学习之路_14(简易音乐播放器)
查看>>
linux相关工具
查看>>
HTML 基础控件介绍
查看>>
Visual Studio 2012 Update 3
查看>>
sql执行计划解析案例(二)
查看>>
在页面头部<!DOCTYPE html ....> 前面不能有任何输出
查看>>
hdu 2102 A计划(双层BFS)(具体解释)
查看>>
大型机器学习
查看>>
FluentNhibernate 不支持存储过程
查看>>
Python 修改电脑DNS
查看>>
JSCover+WebDriver/Selenium获得JS代码覆盖
查看>>
其简单的通用适配器的定义
查看>>
IIS应用程序池自动回收问题的有效解决办法
查看>>
数据库设计之半结构化存储
查看>>
BZOJ4385 : [POI2015]Wilcze doły
查看>>
Java内部类的自我理解
查看>>
复杂 Listview 显示 多个样式
查看>>
JAVA使用POI读取EXCEL文件的简单model
查看>>
Docker创建centos的LNMP镜像
查看>>
lintcode:Wiggle Sort
查看>>