`
zhaohaolin
  • 浏览: 1011254 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

windows下redis和memcached的性能对比测试【转】

阅读更多

在windows下测试了redis和memcached的性能,如下:

jedis get 20000次的执行时间:1265毫秒

jedis set 20000次的执行时间:1313毫秒

 

jedis 同时启动60个线程的执行时间:21609毫秒

xmemcached get执行20000次的时间:3219毫秒

 

xmemcached set 20000次的执行时间:3000毫秒

xmemcached 同时启动60个线程的执行时间:75562毫秒

可以看出redis的性能要好于memcached!


redis代码:

01 public class Demo {
02  
03      public static void main(String[] args) throws Exception {
04          Demo demo = new Demo();
05          demo.test();
06      }
07       
08      public void test() throws Exception {
09          Jedis jedis = new Jedis( "localhost" );
10          jedis.set( "key" , "mykey" );
11           
12          long begin = System.currentTimeMillis();
13          for ( int i= 0 ; i< 20000 ; i++)
14              jedis.get( "key" );
15          long end = System.currentTimeMillis();
16          System.out.println( "jedis get20000次的执行时间:" + (end - begin) + "毫秒" );
17           
18          begin = System.currentTimeMillis();
19          for ( int i= 0 ; i< 20000 ; i++)
20              jedis.set(String.valueOf(i), String.valueOf(i));
21          end = System.currentTimeMillis();
22          System.out.println( "jedis set 20000次的执行时间:" + (end - begin) + "毫秒" );
23           
24          begin = System.currentTimeMillis();
25          Thread t[] = new Thread[ 60 ];
26          for ( int j= 0 ; j<t.length; j++) {
27              t[j] = new TestThread();
28              t[j].start();
29          }
30           
31          for ( int j= 0 ; j<t.length; j++) {
32              t[j].join();
33          }
34          end = System.currentTimeMillis();
35          System.out.println( "jedis 启动" + t.length + "个线程的执行时间:" + (end - begin) + "毫秒" );
36      }
37  
38      class TestThread extends Thread {
39  
40          @Override
41          public void run() {
42              Jedis jedis = new Jedis( "localhost" );
43              for ( int i= 0 ; i< 20000 ; i++)
44                  jedis.get(String.valueOf(i));
45              jedis.disconnect();
46          }
47           
48      }
49 }

测试redis的代码时,发现同时启动的线程只能到达63,超过的线程都会失败。

排查很久,发现配置文件中有一句话:it's up to the number of file descriptors the Redis process is able to open.

估计在windows xp下只能到达64,那么还有一个呢?无法得知,查了好久也没有找到和linux下文件描述符想匹配的东西。

 

xmemcache代码:

01 public class Demo {
02  
03      public static void main(String[] args) throws Exception {
04          Demo demo = new Demo();
05          demo.test();
06      }
07       
08      public void test() throws Exception  {
09          MemcachedClient mc = new XMemcachedClient( "localhost" , 11211 );
10          mc.set( "key" , 2000 , "mykey" );
11           
12          long begin = System.currentTimeMillis();
13          for ( int i= 0 ; i< 20000 ; i++)
14              mc.get( "key" , 1000 );
15          long end = System.currentTimeMillis();
16           
17          System.out.println( "memcached get执行20000次的时间:" + (end - begin) + "毫秒" );
18           
19          begin = System.currentTimeMillis();
20          for ( int i= 0 ; i< 20000 ; i++)
21              mc.set(String.valueOf(i), 2000 ,String.valueOf(i));
22          end = System.currentTimeMillis();
23          System.out.println( "memcached set 20000次的执行时间:" + (end - begin) + "毫秒" );       
24           
25          mc.shutdown(); 
26           
27          begin = System.currentTimeMillis();
28          Thread t[] = new Thread[ 60 ];
29          for ( int j= 0 ; j<t.length; j++) {
30              t[j] = new TestThread();
31              t[j].start();
32          }
33           
34          for ( int j= 0 ; j<t.length; j++) {
35              t[j].join();
36          }
37          end = System.currentTimeMillis();
38          System.out.println( "memcached 启动" + t.length + "个线程的执行时间:" + (end - begin) + "毫秒" );      
39      }
40  
41      class TestThread extends Thread {
42  
43          @Override
44          public void run() {
45              try {
46                  MemcachedClient mc = new XMemcachedClient( "localhost" , 11211 );
47                  for ( int i= 0 ; i< 20000 ; i++)
48                      mc.get(String.valueOf(i), 1000 );
49                  mc.shutdown();
50              }
51              catch (Exception e) {
52                   
53              }
54          }
55           
56      }
57 }
分享到:
评论

相关推荐

    分布式缓存技术-Redis和Memcached选型对比-性能测试

    本文将深入探讨Redis与Memcached的选型对比,分析它们的性能测试结果,并探讨各自的优缺点。 Redis与Memcached都是基于NoSQL的内存数据结构存储系统,用于加速应用程序,支持亚毫秒级延迟,并且都是开源项目,用...

    memcached&redis;性能测试

    memcached,redis性能测试,内存缓存系统的性能测试;

    TreeNM在linux下的部署(用记访问redis和memcached)

    7. 测试和优化:搭建完毕后,对TreeNM进行测试,确保它能够正常工作,并通过监控结果对Redis和Memcached进行必要的性能调优。 上述步骤是一个大致的流程,根据TreeNM的具体版本和文档,具体操作可能会有所不同。在...

    memcache、redis、tair性能对比测试报告

    总结来说,本测试报告提供了一套详细的性能对比,揭示了memcache、redis和tair在不同工作场景下的优劣。对于选择合适的缓存解决方案,开发者可以根据自身需求,如数据量、并发需求以及操作类型等因素,参考这些测试...

    分布式缓存 Redis + Memcached 经典面试题!.zip

    分布式缓存是现代大型互联网应用不可或缺的技术之一,主要用于提高数据访问速度,降低数据库负载。Redis 和 Memcached 是其中最常用...掌握 Redis 和 Memcached 的核心特性,对于解决实际问题和优化系统性能至关重要。

    Redis集群性能测试分析

    本次实验的目的主要是搭建Redis Cluster和TwemProxy Redis两种集群,分别对其进行性能测试,测试出集群性能的拐点,找出性能的瓶颈有哪些,并对两套集群进行比较,以便于在不同业务场景下择优选择。

    memcached数据完整迁移到redis

    标题 "memcached数据完整迁移到redis" 描述的是一个数据迁移的过程,从使用 memcached 存储的数据转换到使用 redis 存储。这个过程在 IT 领域中是常见的,因为不同的缓存系统有不同的特性和优势。让我们深入探讨这个...

    ZendFramework 1 cache for Redis,Memcached

    标题"ZendFramework 1 cache for Redis,Memcached"表明这是一个关于使用 Zend Framework 1 框架来实现缓存功能的教程,重点在于集成和使用 Redis 和 Memcached 这两种流行的数据缓存系统。Zend Framework 是一个广泛...

    10.1.1 redis相比memcached有哪些优势?.md

    10.1.1 redis相比memcached有哪些优势?

    windows版Redis1

    总的来说,这个压缩包提供了一个完整的Windows版Redis环境,包括运行、配置、管理和性能测试所需的所有组件。用户只需解压并按照文档指导进行简单的设置,就能在Windows系统中享用到Redis的强大功能。无论你是开发者...

    Memcached Redis MongoDB对比

    在性能上,Redis和Memcached相对比较接近,并且通常高于MongoDB。这主要是因为它们简单的设计和对内存的直接操作,减少了延迟。 操作的便利性: Memcached的数据结构相对单一,仅支持key-value形式的数据,这意味着...

    memcache、redis、tair性能对比测试报告.docx

    该测试报告主要对比分析了三种流行的分布式缓存系统——memcache、redis和tair在不同条件下的性能表现,以供选择适合特定需求的缓存解决方案。测试场景涵盖了单机环境和分布式环境,关注点在于缓存数据的设置和获取...

    TreeNMS for Redis, memcached v1.7.5

    TreeNMS 是一款由 TreeSoft 开发的数据库管理系统,特别针对 Redis 和 memcached 这两种流行的数据存储系统设计。这款工具提供了一种免费且高效的解决方案,用于管理和监控 Redis 以及 memcached 的运行状态。在 v...

    最新版windows windows-redis-6.2.7.zip

    `redis.windows.conf`是Redis在Windows下的默认配置文件,包含了各种参数设定,如端口(默认6379)、数据文件路径(默认data目录下的`appendonly.aof`和`rdb.save.*`)、最大内存限制等。可以根据实际需求修改这些...

    Redis性能测试报告

    Redis性能测试报告旨在详细记录和分析Redis中间件的性能,以确保其在实际生产环境中的稳定性和效率。报告涵盖了测试的各个方面,包括测试范围、目标、环境需求、方案以及结果的呈现。 首先,测试范围明确指出是针对...

    memcache redis tair 性能测试报告

    【性能测试报告概述】 这份报告详细对比了三种常用的内存数据库——memcache、redis以及tair的性能表现。测试目的是为了评估这些缓存工具在不同场景下的处理能力,特别是在并发操作和不同大小的数据存储上的效率。...

    windows下启动redis2.8服务端、客户端、性能测试工具等

    在Windows环境下设置和运行Redis 2.8服务端、客户端以及进行性能测试,是开发者和系统管理员的常见任务。以下是一份详细的步骤指南: 一、安装Redis 2.8 1. 下载:首先,从Redis官方网站或者第三方源获取适用于...

    windows下的redis压缩包

    标题中的"windows下的redis压缩包"指的是专为Windows平台设计的Redis版本。由于Windows系统与Unix-like系统(如Linux)在某些底层机制上有所不同,Redis的开发者提供了适应Windows环境的二进制版本,确保在Windows上...

    windows版本redis6.0.8

    本篇将详细介绍“windows版本redis6.0.8”这一绿色解压版的特点、安装与配置方法,以及如何在Windows环境下使用Redis。 首先,Redis 6.0.8是Redis的一个稳定版本,它带来了许多新特性和改进。其中最重要的改进包括...

Global site tag (gtag.js) - Google Analytics