`
xieke
  • 浏览: 6143 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

memcached缓存性能优势何在

阅读更多

使用memcached作为orm缓存实现已经有一段时间了,
今天写了一段测试代码,想看看缓存对系统性能到底有多大提升,结果出乎意料。

测试方法 getById(String id),根据记录id从数据库中查出对象。

1. jdbc版本实现:直接用jdbc执行select方法,代码大致如下
		PreparedStatement pst = null;
		ResultSet set = null;
		
			sql = "select " + TABLECOLUMN + " from " + TABLENAME + " where "
					+ IDCOLUMN + " = '"+id+"'";
			pst = con.prepareStatement(sql);
			set = pst.executeQuery();
			BizObject b = helpSetValue(set); //从set到orm业务对象数据拷贝
			return b;

2.memcached实现,使用whalin客户端实现
		mcc.setCompressEnable( true );
		mcc.setCompressThreshold( 64 * 1024 );
		
		BizObject o = (BizObject)mcc.get(mccid);
		if (o==null){
			o = loadObject(id); //调用jdbc查询,并set到memcached server			
		}
		return o;

具体测试就是循环调用 getById方法 取出指定id,测试结果如下:
执行10次:
jdbc耗时:haoshi 31毫秒
memcached耗时:haoshi 109毫秒
执行100次:
jdbc耗时:haoshi 188毫秒
memcached耗时:haoshi 406毫秒
执行1000次:
jdbc耗时:haoshi 1579毫秒
memcached耗时:haoshi 2435毫秒,

memcache和oracle11g都安装在同一IBMx3650服务器上,
测试结果是在另外一台客户机上运行得到的。
改用jcs本地缓存后,测试1000次循环只需要94毫秒。

oracle和memcached在同一台服务器上(生产机),网络状况应该都一样,排除这个差别,
memcached性能表现竟然比直接jdbc访问要差,我无法理解,
采用memcached意义何在,难道用性能下降的方式来分担数据库压力吗?
或者是说memcached要在大压力下才能获得性能优势?
倒是本地jvm缓存性能提升很大,就是不支持集群。
请教各位,是否我的测试场景有问题?memcached是否适用于企业erp应用?

另外以前看到有人优化memcache client的文章,在前段再加入一层本地Jvm缓存,这样做有何意义呢,性能当然会有很大提升,不过主要就是用本地jvm缓存了,mem成了空架子,而且也不支持集群了。

分享到:
评论

相关推荐

    搭建Memcached缓存服务器1

    Memcached是一种高性能的缓存服务器,通常用于加速动态网页和减少数据库的负载。在本文中,我们将详细介绍如何搭建Memcached缓存服务器。 标题解释 Memcached缓存服务器是一种流行的缓存解决方案,它可以将频繁访问...

    php memcached缓存操作类

    在PHP开发中,缓存是提高网站性能的关键技术之一,Memcached是一款广泛应用的分布式内存对象缓存系统。这个“php memcached缓存操作类”旨在简化开发者对Memcached的使用,提供一个方便、高效的接口来处理数据缓存。...

    memcached缓存使用演示

    Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。它通过将数据存储在内存中,使得数据的读取速度大大提高,尤其在处理高并发请求时表现卓越。 ### ...

    韩顺平 PHP Memcached缓存技术资料源码笔记图解PPT_Ady

    Memcached是一款分布式内存对象缓存系统,广泛应用于高性能网站和应用中。它设计的目标是简化并加速动态Web应用程序的数据存储,通过将数据存储在内存中,避免频繁读取或写入数据库,从而提高系统响应速度。 二、...

    memcached缓存处理

    `memcached`是一个高性能、分布式内存对象缓存系统,用于在动态系统中减少数据库负载。它通过将数据存储在内存中来加速读取操作,而不是每次请求都去查询数据库。由于其轻量级的设计和简单易用的接口,memcached被...

    Memcached缓存机制 用好Cache,优化应用

    Memcached是一款高性能、分布式的内存对象缓存系统,主要用于加速Web应用程序,通过将数据存储在内存中,减少对数据库的直接访问,从而提高系统的响应速度和效率。Memcached的设计理念是简单、快速,它支持多种编程...

    memcached 缓存图片

    Memcached是一种高性能、分布式内存对象缓存系统,用于在动态应用中减少数据库负载,提高网站性能。它通过在内存中存储数据,使频繁访问的数据能够快速获取,从而减少了对硬盘I/O操作的依赖。在本示例中,我们将探讨...

    使用spring aop对web 应用数据进行memcached缓存

    标题 "使用Spring AOP对Web应用数据进行Memcached缓存" 涉及到的关键技术是Spring AOP(面向切面编程)和Memcached,这是一种常见的高性能、分布式内存对象缓存系统。在Web应用程序中,使用缓存可以显著提高数据访问...

    memcached缓存

    memcached 缓存 jar包,tomcat共享缓存可用,java开发数据库缓存也可用。

    .net c# memcached缓存获取所有缓存键的方法步骤.docx

    .NET C# Memcached 缓存获取所有缓存键的方法步骤 ...本文详细介绍了如何使用 .NET C# 语言实现 Memcached 缓存获取所有缓存键的方法步骤,该方法可以帮助开发者快速实现 Memcached 缓存机制,并提高系统性能。

    MemCached 缓存系统配置说明

    这里需要解释说明一下,很多开发者觉得Memcached是一种分布式缓存系统,但是其实Memcached服务端本身是单实例的,只是在客户端实现过程中可以根据存储的主键做分区存储,而这个区就是Memcached服务端的一个或者多个...

    memcached缓存服务器

    Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。这个“memcached缓存服务器”压缩包提供的版本是1.2.1,适用于Windows 32位系统。 **一、...

    php memcached 缓存

    Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高网站的响应速度。PHP与Memcached的结合,使得开发者能够轻松地在PHP应用中实现数据缓存。 ### Memcached的...

    缓存服务器memcached下载

    Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库负载,提高页面加载速度,从而显著提升网站的整体性能。Memcached的设计理念是简单而高效,它将数据存储在内存中,通过...

    SSM整合memcached缓存

    Memcached是一款轻量级的分布式内存对象缓存系统,用于减少数据库负载,提高应用程序性能。在SSM项目中集成Memcached,可以显著提升数据读取速度,降低对数据库的依赖。 首先,让我们深入了解一下SSM框架: 1. ...

    memcached缓存服务器64位

    memcached缓存服务器 ,64位安装包 ,内有简单的使用说明

    memcached缓存编程实战.pptx

    Memcached 是一个高性能的缓存系统,通过减少数据库的查询次数和降低系统的负载来提高网站的性能。Memcached 可以与多种编程语言集成,包括 Java、PHP、Python 等。 Memcached Java 客户端 Memcached Java 客户端...

    Memcached缓存技术资料源码

    Memcached是一款高性能的分布式内存对象缓存系统,它被广泛应用于Web应用中,用于缓解数据库的压力,提高数据访问速度。本文将深入探讨Memcached的基本概念、工作原理、安装配置、使用方法以及源码分析。 **一、...

    memcached缓存安装配置.pptx

    Memcached 缓存安装配置 Memcached 是一个自由开源的高速缓存系统,可以用来加速动态Web应用程序中的数据访问速度。本文将指导您如何安装和配置 Memcached,并介绍 Memcached 的基本概念和参数。 一、安装 ...

Global site tag (gtag.js) - Google Analytics