一、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使用篇相关推荐

  1. ITOO4.1之缓存—分布式缓存Memcached学习(理论篇)

    1.   何为缓存?     缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找.由于缓存的运行速度比内存快 ...

  2. .NET分布式缓存Memcached测试体验

    一直在学习关注大访问量网站的缓存是如何实现,之前看过Memcached的资料,忙于没有时间来真正测试一下,今天测试下分布式缓存Memcached 首先要在缓存服务器上安装安装:memcached(1. ...

  3. 分布式缓存-Memcached

    分布式缓存-Memcached (2012-03-29 17:01:09)     分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障 ...

  4. 深入分布式缓存之EVCache探秘开局篇(文末赠书)

    深入分布式缓存 读完需要 15 分钟 速读仅需 5 分钟 云服务不仅为软件系统的开发和部署带来了更多的敏捷性,而且提供了更多创新的可能性.当分布式缓存技术遇到云服务会是怎样的情形呢?EVCache 就 ...

  5. 分布式缓存memcached

    Memcached是一款开源.高性能.分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对数据库的访问来加速web应用程序.它是一个基于内存的"键值对"存储,用 ...

  6. 企业项目开发--分布式缓存memcached(3)

    此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3.3.ssmm0-data 结构: 3.3.1.pom.xml 1 <?xml version=&q ...

  7. EhCache 分布式缓存/缓存集群

    开发环境: System:Windows JavaEE Server:tomcat5.0.2.8.tomcat6 JavaSDK: jdk6+ IDE:eclipse.MyEclipse 6.6 开发 ...

  8. Ehcache分布式缓存及测试方法

    接到配合架构部要求配合测试需求,对EhCache 进行测试,在此之前,未接触过ehcache缓存,之前知道一些缓存,但是还真没了解过内存缓存.于是百度,看书,查资料,先恶补一下ehcache的一些知识 ...

  9. memcached java 客户端优化,分布式缓存技术memcached学习系列(五)—— memcached java客户端的使用...

    Memcached的客户端简介 我们已经知道,memcached是一套分布式的缓存系统,memcached的服务端只是缓存数据的地方,并不能实现分布式,而memcached的客户端才是实现分布式的地方 ...

最新文章

  1. Toast 位置的改变 和 Toast的简单用法
  2. 华为atn980传输设备_注册开发者超200万!华为HMS加速全球布局,打造全场景智慧体验...
  3. hbase参数配置及优化
  4. 【c语言】蓝桥杯算法提高 P0401
  5. 【PAT乙级】1008 数组元素循环右移问题 (20 分)
  6. 常用的设计模式——观察者设计模式?和发布者-订阅者设计模式的区别
  7. linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.
  8. Convolution(2021牛客暑期多校训练营4)
  9. 面试常考题目之atoi的实现
  10. echo输出到stderr
  11. 2:url有规律的多页面爬取
  12. Java数据结构:数组模拟的队列(Queue)和环形队列(Circle Queue)
  13. Redis面试题(2020最新版)
  14. 营业执照号码生成规则
  15. STM32串口驱动安装攻略
  16. 计算机网络一、什么是计算机网络
  17. sccm可以管理linux补丁,在Linux系统中如何运用SCCM集合?
  18. 陆奇最新演讲高清PPT下载;AI 绘画20+工具体验汇总;我愿称MOSS为全球开源界最强;思否AIGC黑客马拉松北京站 | ShowMeAI日报
  19. 网站服务器备案有什么危害,域名备案对服务器有影响吗
  20. STM32CUBEMX F103 HAL库开发 两路定时器的Encoder编码器模式

热门文章

  1. 解决:unable to connect to X server
  2. 梅花雪2.0树数据库数据绑定实例(vs2008)
  3. 无痕埋点的设计与实现
  4. CSDN产品周报第12期|CSDN官方指定推广功能上线
  5. 性能测试,app怎么做性能测试?app性能测试指标有哪些?测试点?
  6. linux查看日志相关
  7. 将性价比进行到底,realme真我Q2锁定双11口碑爆款之王
  8. tomcat配置SSL证书_tomcat配置https证书
  9. 我也来“办”团购网站
  10. python爬斗鱼直播数据图片_Python爬取2000万直播数据——看20万游戏主播能否月入100万...