分布式缓存Memcached之Java使用篇
一、Memcache的客户端类型:
1. 官方提供的基于传统阻塞io由Greg Whalin维护的客户端
https://github.com/gwhalin/Memcached-Java-Client/wiki
2. Dustin Sallings实现的基于java nio的Spymemcached
http://code.google.com/p/spymemcached/
3. XMemcached
http://code.google.com/p/xmemcached/,nio
4. 各个客户端比较:
XMemcached在并发数增长的情况下有比较稳定的表现,Memcached-Java-Client小并发下性能最好,50并发以后出现问题,几乎不能支持高并发。Spymemchached有不稳定的因素,性能对比中比Xmemcached差一些;
因此选定了XMemcached,一般一个节点一个连接;对于多并发,还是可以使用多连接池来提高性能表现。
二、XMemcached的使用:
1. 常用:MemcachedClient.get(key); set(key, expirationTime, value); deleteWithNoReply(key); cas(key, expirationTime, value, version); GetsResponse<T> response = gets(key);
2.对象序列化,可以提升效率,使用Hessian进行序列化。
- <bean name="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" destroy-method="shutdown">
- <property name="servers"><value>localhost:11211 localhost:12000 localhost:12001</value> </property>
- <!-- server's weights -->
- <property name="weights">
- <list><value>1</value> <value>1</value> <value>2</value> </list></property>
- <!-- AuthInfo map,only valid on 1.2.5 or later version -->
- <property name="authInfoMap"><map /> </property>
- <!-- nio connection pool size --> <property name="connectionPoolSize" value="1" />
- <!-- when SAL should Use binary protocol,default is TextCommandFactory,otherwise must Text -->
- <!-- property name="commandFactory"><bean class="net.rubyeye.xmemcached.command.BinaryCommandFactory"></bean></property-->
- <!-- Distributed strategy -->
- <property name="sessionLocator"><bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator" /> </property>
- <!-- Serializing transcoder -->
- <property name="transcoder"><bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" /> </property>
- <!-- ByteBuffer allocator -->
- <property name="bufferAllocator"><bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator" /> </property>
- <!-- Failure mode --> <property name="failureMode" value="false" /> </bean>
References:
http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html
http://code.google.com/p/xmemcached/wiki/User_Guide_zh?ts=1277197687&updated=User_Guide_zh#%E4%B8%8ESpring%E6%A1%86%E6%9E%B6%E5%92%8CHibernate-memcached%E7%9A%84%E9%9B%86%E6%88%90
http://www.splinedancer.com/memcached-win32/
http://wangqiaowqo.iteye.com/blog/1155732
附录:
Memcached vs Redis:
1. 数据类型:Memcache可存储任何数据类型:二进制存储即可;Redis只能存储String、List<String>、Set<String>、Hash<String,String>
2. 安全:新的Memcache可以认证、高并发有CAS机制;Redis没有CAS;
3. 存储:Memcache只有内存,Redis可以存到磁盘;
4. 性能上很多说法,说谁快的都有,实际测试数据调研中Redis快的比较多;
5. 其他,使用经验上,memcached群体较多。
6. 数据大小:1M,内存碎片
另外,还有有名的TT内存缓存。
分布式缓存Memcached之Java使用篇相关推荐
- ITOO4.1之缓存—分布式缓存Memcached学习(理论篇)
1. 何为缓存? 缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找.由于缓存的运行速度比内存快 ...
- .NET分布式缓存Memcached测试体验
一直在学习关注大访问量网站的缓存是如何实现,之前看过Memcached的资料,忙于没有时间来真正测试一下,今天测试下分布式缓存Memcached 首先要在缓存服务器上安装安装:memcached(1. ...
- 分布式缓存-Memcached
分布式缓存-Memcached (2012-03-29 17:01:09) 分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障 ...
- 深入分布式缓存之EVCache探秘开局篇(文末赠书)
深入分布式缓存 读完需要 15 分钟 速读仅需 5 分钟 云服务不仅为软件系统的开发和部署带来了更多的敏捷性,而且提供了更多创新的可能性.当分布式缓存技术遇到云服务会是怎样的情形呢?EVCache 就 ...
- 分布式缓存memcached
Memcached是一款开源.高性能.分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对数据库的访问来加速web应用程序.它是一个基于内存的"键值对"存储,用 ...
- 企业项目开发--分布式缓存memcached(3)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3.3.ssmm0-data 结构: 3.3.1.pom.xml 1 <?xml version=&q ...
- EhCache 分布式缓存/缓存集群
开发环境: System:Windows JavaEE Server:tomcat5.0.2.8.tomcat6 JavaSDK: jdk6+ IDE:eclipse.MyEclipse 6.6 开发 ...
- Ehcache分布式缓存及测试方法
接到配合架构部要求配合测试需求,对EhCache 进行测试,在此之前,未接触过ehcache缓存,之前知道一些缓存,但是还真没了解过内存缓存.于是百度,看书,查资料,先恶补一下ehcache的一些知识 ...
- memcached java 客户端优化,分布式缓存技术memcached学习系列(五)—— memcached java客户端的使用...
Memcached的客户端简介 我们已经知道,memcached是一套分布式的缓存系统,memcached的服务端只是缓存数据的地方,并不能实现分布式,而memcached的客户端才是实现分布式的地方 ...
最新文章
- Toast 位置的改变 和 Toast的简单用法
- 华为atn980传输设备_注册开发者超200万!华为HMS加速全球布局,打造全场景智慧体验...
- hbase参数配置及优化
- 【c语言】蓝桥杯算法提高 P0401
- 【PAT乙级】1008 数组元素循环右移问题 (20 分)
- 常用的设计模式——观察者设计模式?和发布者-订阅者设计模式的区别
- linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.
- Convolution(2021牛客暑期多校训练营4)
- 面试常考题目之atoi的实现
- echo输出到stderr
- 2:url有规律的多页面爬取
- Java数据结构:数组模拟的队列(Queue)和环形队列(Circle Queue)
- Redis面试题(2020最新版)
- 营业执照号码生成规则
- STM32串口驱动安装攻略
- 计算机网络一、什么是计算机网络
- sccm可以管理linux补丁,在Linux系统中如何运用SCCM集合?
- 陆奇最新演讲高清PPT下载;AI 绘画20+工具体验汇总;我愿称MOSS为全球开源界最强;思否AIGC黑客马拉松北京站 | ShowMeAI日报
- 网站服务器备案有什么危害,域名备案对服务器有影响吗
- STM32CUBEMX F103 HAL库开发 两路定时器的Encoder编码器模式
热门文章
- 解决:unable to connect to X server
- 梅花雪2.0树数据库数据绑定实例(vs2008)
- 无痕埋点的设计与实现
- CSDN产品周报第12期|CSDN官方指定推广功能上线
- 性能测试,app怎么做性能测试?app性能测试指标有哪些?测试点?
- linux查看日志相关
- 将性价比进行到底,realme真我Q2锁定双11口碑爆款之王
- tomcat配置SSL证书_tomcat配置https证书
- 我也来“办”团购网站
- python爬斗鱼直播数据图片_Python爬取2000万直播数据——看20万游戏主播能否月入100万...