1.memcached client for java

客户端API:memcached client for java

网址:http://www.whalin.com/memcached(我从 https://github.com/gwhalin/Memcached-Java-Client/downloads 下载的)

最新版本:java_memcached-release_2.6.6.jar

操作示例:

package com.dxz.cache.memcachedclient;import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;public class TestMemcached {public static void main(String[] args) {/* 初始化SockIOPool,管理memcached的连接池 */String[] servers = { "192.168.8.28:11211" };SockIOPool pool = SockIOPool.getInstance();pool.setServers(servers);pool.setFailover(true);pool.setInitConn(10);pool.setMinConn(5);pool.setMaxConn(250);pool.setMaintSleep(30);pool.setNagle(false);pool.setSocketTO(3000);pool.setAliveCheck(true);pool.initialize();/* 建立MemcachedClient实例 */MemCachedClient memCachedClient = new MemCachedClient();for (int i = 0; i < 3; i++) {/* 将对象加入到memcached缓存 */boolean success = memCachedClient.set("" + i, "Hello!");/* 从memcached缓存中按key值取对象 */String result = (String) memCachedClient.get("" + i);System.out.println(String.format("set( %d ): %s", i, success));System.out.println(String.format("get( %d ): %s", i, result));}}
}

执行结果:

set( 0 ): true
get( 0 ): Hello!
set( 1 ): true
get( 1 ): Hello!
set( 2 ): true
get( 2 ): Hello!

2.spymemcached

客户端API:spymemcached client

网址:http://code.google.com/p/spymemcached/

最新版本:spymemcached-2.9.1.jar

操作示例:用spymemcached将对象存入缓存及从缓存中取出

package com.dxz.cache.spymemcached;import java.net.InetSocketAddress;
import java.util.concurrent.Future;import net.spy.memcached.MemcachedClient;public class MClient {public static void main(String[] args) {try {/* 建立MemcachedClient 实例,并指定memcached服务的IP地址和端口号 */MemcachedClient mc = new MemcachedClient(new InetSocketAddress("192.168.8.28", 11211));Future<Boolean> b = null;/* 将key值,过期时间(秒)和要缓存的对象set到memcached中 */b = mc.set("abcd123", 900, "someObject");System.out.println("set():" + b);/* 按照key值从memcached中查找缓存,不存在则返回null */Object c = mc.get("abcd123");System.out.println("get():" + c);if (b.get().booleanValue() == true) {mc.shutdown();}} catch (Exception ex) {ex.printStackTrace();}}
}

执行结果:

2016-01-21 19:07:23.213 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/192.168.8.28:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2016-01-21 19:07:23.219 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@4eb754b0
set():net.spy.memcached.internal.OperationFuture@23ac5c8b
get():someObject
2016-01-21 19:07:23.253 INFO net.spy.memcached.MemcachedConnection: Shut down memcached client

3.两种API比较

memcached client for java:较早推出的memcached JAVA客户端API,应用广泛,运行比较稳定。

spymemcached:A simple, asynchronous, single-threaded memcached client written in java. 支持异步,单线程的memcached客户端,用到了java1.5版本的concurrent和nio,存取速度会高于前者,但是稳定性不好,测试中常报timeOut等相关异常。

由于memcached client for java发布了新版本,性能上有所提高,并且运行稳定,所以建议使用memcached client for java.

转载于:https://www.cnblogs.com/duanxz/p/5149323.html

memcache两种客户端比较相关推荐

  1. Redis两种客户端:lettuce和Jedis的区别

    spring boot 2的spring-boot-starter-data-redis中,默认使用的是lettuce作为redis客户端,它与jedis的主要区别如下: Jedis是同步的,不支持异 ...

  2. xFire两种客户端的传递参数

    1. import java.net.MalformedURLException; import java.net.URL; import org.codehaus.xfire.client.Clie ...

  3. GridView 实现服务器端和客户端全选的两种方法

    代码很简单,这里就不累述了.看代码如下: C# GridView 实现服务器端和客户端全选的两种方法 全选 转载于:https://www.cnblogs.com/rocky99261/archive ...

  4. SQL server(MSSQL)客户端工具登录数据库的两种命令行登录方式

    我们安装了sqlserver服务器和sqlserver客户端工具之后,可以使用两种命令行方式登录数据库: >sqlwb -S servername或IP -E     #使用当前windows系 ...

  5. 你知道吗?OAuth2客户端有两种,认证方式有七种。

    OAuth2客户端按照它们与授权服务器进行安全认证的能力可以分为机密类型(Confidential)和公共类型(Public). 机密类型的自身会有个密码凭据,比如Web服务器后端程序:而公共类型则没 ...

  6. 初步了解超图两种3D客户端 - iClient3D for_WebGL 和 iClient3D for_Plugin

    接此文: https://blog.csdn.net/bcbobo21cn/article/details/109441803 下载插件安装: 安装完之后,从realspace点进去,出来的是这些:不 ...

  7. WCF 客户端调用服务操作的两种方法

    本节的主要内容:1.通过代理类的方式调用服务操作.2.通过通道的方式调用服务操作.3.代码下载 一.通过代理类的方式调用服务操作(两种方式添加代理类) 1.手动编写代理类,如下: 客户端契约: 1 u ...

  8. ModalPopupExtender控件主要有两种使用方式:客户端使用方式和服务器端使用方式

    ModalPopupExtender控件主要有两种使用方式:客户端使用方式和服务器端使用方式.这两种使用方式在ModalPopup的官方例子中都有介绍. 1.客户端使用方式 客户端使用方式又可以分为两 ...

  9. 斑马打印机客户端GET和POST,以及后端两种打印方式。

    斑马打印机客户端GET和POST,以及后端两种打印方式. 背景环境:打印机安装在客户端外网.当用户登录时,通过ajax取服务器数据,返回打印机命令,然后客户端通过JS发送给斑马打印机. 1.使用Get ...

最新文章

  1. html5 drap 文件夹,带有显示ID的Html5 drap and drop问题
  2. Python多线程(1)——介绍
  3. ExcelReport第三篇:扩展元素格式化器
  4. Android构建boot.img(一):root目录与ramdisk.img的生成
  5. CTFshow php特性 web140
  6. dax 筛选 包含某个字_DAX分享9:DAX中用变量来计算动态filter context中数值
  7. STM32之窗口看门狗例程
  8. [Android]Thread线程入门3--多线程
  9. 洛谷P3613 睡觉困难综合征
  10. html5 拖拽滚动条,js 简易版滚动条实例(适用于移动端H5开发)
  11. TensorFlow神经网络:模块化的神经网络八股
  12. sql主键_SQL主键
  13. Excel的设置 .net
  14. python的语法格式
  15. 对称式加密与非对称式加密的对比
  16. 【蓝桥杯单片机组模块】15、PWM学习(总结版)
  17. linux 磁盘坏道修复,linux系统下检测硬盘上的坏道和坏块
  18. 计算两个数的平均值几种方法
  19. 电信诈骗瞄准“徐玉玉”们,扣问网络安全教育短板
  20. 计算机毕业设计(附源码)python校园社团管理系统

热门文章

  1. Vue第二部分(3):路由 VueRouter
  2. BootStrap笔记-img相关
  3. Linux笔记-Linux中的TracerPid
  4. 前端工作笔记-element ui弹窗嵌套并获取输入
  5. C++|Qt工作笔记-Windows平台下的句柄与Qt中QWindow::winId()以及 QPlatformWindow::handle的区别与联系
  6. 多层数组如何遍历_带你从零学大数据系列之Java篇---第五章:数组
  7. linux读取dmp备份数据打开,Linux 中 Oracle dmp 文件导入导出(转)
  8. python列表修改函数_python 禁止函数修改列表的实现方法
  9. 注意html的语言编码charset,HTML编码
  10. 贪心算法 0-1背包c语言,贪心算法0-1背包问题(算法实验代码).pdf