zoukankan      html  css  js  c++  java
  • 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次数据,比较两种的耗时;

    测试的代码如下:

                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的过程中,记下来给初学的朋友参考,日后自己也好查阅。

  • 相关阅读:
    ini_set /ini_get函数功能-----PHP
    【转】那个什么都懂的家伙
    word 2007为不同页插入不同页眉页脚
    August 26th 2017 Week 34th Saturday
    【2017-11-08】Linux与openCV:opencv版本查看及库文件位置等
    August 25th 2017 Week 34th Friday
    August 24th 2017 Week 34th Thursday
    August 23rd 2017 Week 34th Wednesday
    August 22nd 2017 Week 34th Tuesday
    August 21st 2017 Week 34th Monday
  • 原文地址:https://www.cnblogs.com/mszhangxuefei/p/redis-01.html
Copyright © 2011-2022 走看看