这两天有时间,研究了一下最近火的发烫的 memcached.
java 有两个类库,Api 都很简单。
看了看介绍,先试用了 http://bleu.west.spy.net/~dustin/projects/memcached/
但是测试之下发现客户端的 CPU 占用接近 100%,而服务器端 cpu 基本上是 0 。对于比较复杂的对象每秒只能完成 1400 个左右的 get.
看来 memcached 的确是很棒的产品。但是客户端会是很大的瓶颈。
于是开始测试另外一个库,http://www.whalin.com/memcached/
结果测试结果更加令人失望,速度只是第一个的 60-70%。
难道是所有的客户端都会这么慢?所以我试了一下 perl 的库,发现 perl 的库速度很令人满意。所以应该是 java 的客户端库的问题。
但是这么很好很强大的的 memcached 又不能不用,所以打算改进一下 java 库。
开始的时候打算改进 spy 库,但是他有一个 spy.jar 不是开放源码的。而且他的对应的代码写的太复杂了,有一些过度设计了。这很不符合我追求的简单原则。
简单看了下 whalin 的源代码,发现有许多方面可以改进。于是花了点时间改进了几个比较严重影响性能的地方。经过测试,性能居然超过了 spy 包。
不错,应该可以在产品环境使用了,由于时间有限,暂时不进行更多的改进工作了。等到它成为性能瓶颈的时候再进一步的进行优化吧。估计应该有 20-150% 的优化空间。
BTW:网上有人说 Hessian 的串行化性能比 Java 的好,经过测试,发现 Serialize Java is 3 times faster. deserialize Hessian is 10% faster. Wired.
分享到:
- 2008-09-17 21:24
- 浏览 1559
- 评论(5)
- 论坛回复 / 浏览 (5 / 4654)
- 查看更多
相关推荐
2. 编译后的jar文件(如:lib/slabsj-1.6.jar),这是实际运行时需要引入到Java项目的类库,包含了所有必要的类和方法,用于与Memcached服务器通信。 3. 文档(docs目录),可能包括API文档、用户手册或开发者指南,...
10. **lib**: 这个目录可能包含了一些依赖库,这些库是Java Memcached客户端运行所必需的,可能包含其他的Java库或第三方依赖。 使用Java Memcached客户端的关键在于了解如何连接到Memcached服务器,创建客户端实例...
1. **memcached** 是一个高性能的分布式内存对象缓存系统,用于减少数据库负载,提高应用程序的性能。它的设计目标是简化数据存储,提供快速、简便的数据存储解决方案。 2. **Java客户端**:在Java中,可以使用...
6. **测试和监控**:集成后,进行充分的测试以确保Memcached与Tomcat配合良好,没有性能问题或冲突。同时,对Memcached的性能进行监控,如使用率、命中率、错误率等,以便及时调整配置。 总之,通过将Memcached与...
- 下载并添加Memcached客户端库的jar包到Tomcat的`lib`目录,这样服务器可以访问到这些类。 - 在Java应用中引入客户端库,初始化连接到Memcached服务器的实例,设置必要的配置,如服务器地址、端口、超时时间等。 ...
【标题解析】 "Tomcat-Memcached所需jar包"这个标题揭示了我们要讨论的核心内容。Tomcat是一款广泛使用的开源Java应用服务器,而...然后,通过编程接口存取缓存数据,进行性能测试和调优,以确保系统的稳定性和效率。
这个名为“Linux-memcached-tomcat8-session共享lib.rar”的压缩包文件显然旨在解决一个特定的问题:在Linux系统上,通过Nginx作为负载均衡器,利用Memcached实现跨多个Tomcat实例的session共享。下面将详细解释这个...
7. **测试与优化**:集成后,通过实际运行应用并进行性能测试,确定是否达到预期的性能提升,同时根据需求进行进一步的优化。 总结起来,"tomcat7.0+memcached依赖jar包"涉及到的是在Tomcat 7.0环境中集成Memcached...
5. **测试和优化**:确保Memcached的集成工作正常,并根据需求调整缓存策略和性能参数。 在实际开发中,考虑到不同版本的Tomcat可能存在API差异,因此选择适合版本的JAR包至关重要。对于Tomcat 8.5及更高版本,可能...
在Web应用中,特别是在使用Java技术栈的Tomcat服务器上,Memcached常被用来实现session共享,提高应用的性能和可扩展性。 在标题中提到的"memcached所需要的jar包---tomcat8.0",指的是为了在Tomcat 8.0服务器上...
我们将java_memcached-release_1.6.zip解压后的目录中的java_memcached-release_1.6.jar文件复制到java项目的lib目录下,然后我们来编写代码,比如我提供的一个应用类如下: package utils.cache; import java....
标题 "tomcat7整合memcached所需jar包" ...总的来说,整合Tomcat 7和Memcached是提升Java Web应用性能的有效手段,但需要正确配置和管理,以充分利用Memcached的优势。正确地添加和配置jar包是实现这一目标的关键步骤。
Memcached是一款高性能、分布式的内存对象缓存系统,适用于缓解数据库负载,提升Web应用性能。它将数据存储在内存中,以键值对的形式进行操作,提供快速的访问速度。 要实现Tomcat7与Memcached的Session共享,我们...
Memcached 是一个高性能、分布式内存对象缓存系统,常用于减轻数据库的负载,通过将数据存储在内存中来加速读取。在Windows环境下,使用Java与Memcached进行交互需要几个关键步骤。 首先,你需要下载Memcached的...
Memcached是一种高性能、分布式的内存对象缓存系统,常被用来解决session共享的问题。本篇将详细阐述如何利用Memcached配置session共享,并涉及所需依赖的jar包。 首先,Memcached作为一个缓存服务,能够存储会话...
集成完成后,确保通过单元测试验证功能的正确性,并使用监控工具(如Memcached自带的stats命令或第三方工具)监控Memcached的运行状态,以确保其性能和稳定性。 综上所述,集成Memcached与Tomcat7主要涉及下载和...
6. 测试验证:部署应用程序后,进行功能和性能测试,确保集成正确无误,并达到预期的性能提升。 在使用过程中,开发者需要注意版本兼容性问题,因为不同的Tomcat和Memcached版本可能会有不同的API或行为变化。此外...
标题中的“tomcat7+整合memcached jar包集合”指的是在Tomcat 7这个流行的Java应用服务器上集成Memcached缓存系统的过程。Memcached是一种分布式内存对象缓存系统,广泛用于减轻数据库压力,提高Web应用的性能。在这...
安装MSM时,需要将jar包添加到Tomcat的lib目录下,并在server.xml配置文件中进行相应设置,启用MSM并指定Memcached服务器的地址和端口。 Kryo序列化是MSM的一个可选选项,它是一种高效的Java对象序列化库。相比默认...
在Tomcat的`lib`目录下,添加`spymemcached.jar`等依赖库,使Tomcat能够与Memcached通信。 4. **Nginx配置**: - 修改`nginx.conf`,在http或server上下文中,添加负载均衡配置。使用`ip_hash`指令实现session...