前面两篇有说道从Memcache的背景介绍到安装和使用,这篇我们就来说说如何在项目中对Memcache的客户端调用,由于我是一个java程序员,所以我在这里讲述的是java客户端的实现,但是它支持的客户端语言很多包含c/c++、php、Python、.NET等主流开发语言,我通过一段时间的学习在实际应用中发现有两种常用的版本:java_memcached-release_2.5.1.zip客户端
memcache-client-forjava客户端
(一)java_memcached-release_2.5.1.zip客户端调用实现
首先,这个版本的实现我们可以到这里https://github.com/gwhalin/Memcached-Java-Client/downloads 下载我们所需要的客户端依赖,然后我们新建一个java项目导入这些依赖包,下面我们来实现我们的一个测试方法CacheTest.java,详细实现可以查看代码注解!package com.cuiyongzhi.mem;
import com.danga.MemCached.*;
public class CacheTest {
public static void main(String[] args) {
/**
* 初始化SockIOPool,管理memcached的连接池
* */
//服务器列表
String[] servers = { "192.168.192.128:11211" };
// Integer[] weights = {3};当存在多服务器的时候服务器之前的权重
//获取SockIOPool连接池实例对象
SockIOPool pool = SockIOPool.getInstance();
// 设置服务器信息
pool.setServers(servers);
//pool.setWeights(weights); //设置权重
pool.setFailover(true);
// 设置初始连接数、最小和最大连接数以及最大处理时间
pool.setInitConn(10);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaintSleep(30);
// 设置TCP的参数,连接超时等
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(true);
// 初始化连接池
pool.initialize();
// 建立MemcachedClient实例
MemCachedClient memCachedClient = new MemCachedClient();
// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
for (int i = 0; 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));
}
}
}
这里运行成功的前提是你需要开启一个Memcache的守护进程并且端口号和ip需要是你自己的,运行成功我们可以通过Telnet方式进入查看,如下:
(二)memcache-client-forjava客户端实现
这个是阿里的大神开发的一套用于memcached框架,项目地址 https://code.google.com/p/memcache-client-forjava/ ,下载对应的jar文件 alisoft-xplatform-asf-cache-2.5.1.jar,这个jar文件依赖于一些开源的库文件(参考大神写的 Memcached_Client_HandBook.docx ,里面详细列举了需要的依赖包):commons-logging-1.0.4.jar or high version
log4j-1.2.12.jar or high version
codehaus/woodstox/wstx-asl-3.2.1.jar or high version
codehaus/staxapi/stax-api-1.0.1.jar or high version
2.5.2版本以后还需要caucho/hessian/hessian-3.2.0.jar or high version
导入到相应的依赖之后我们就可以开始我们的客户端调用了,首先我们建立我们的配置文件memcached.xml,存放到src下,配置如下:<?xml version="1.0" encoding="UTF-8"?>
socketpool="pool_0">
failover="true" aliveCheck="true" initConn="5" minConn="5" maxConn="250"
nagle="false">
192.168.192.128:11211
每个配置参数的设置和详解可以参照代码注解,下面我们来写我们的测试代码,如下:package com.cuiyongzhi.mem;
import com.alisoft.xplatform.asf.cache.ICacheManager;
import com.alisoft.xplatform.asf.cache.IMemcachedCache;
import com.alisoft.xplatform.asf.cache.memcached.CacheUtil;
import com.alisoft.xplatform.asf.cache.memcached.MemcachedCacheManager;
public class CacheTestTwo {
public static void main(String[] args) {
ICacheManager manager;
manager = CacheUtil.getCacheManager(IMemcachedCache.class,
MemcachedCacheManager.class.getName());
// 获取src文件路径
// ClassLoader cl = Thread.currentThread().getContextClassLoader();
// System.out.println(cl.getResource("memcached.xml"));
manager.setConfigFile("memcached.xml");
manager.start();
try {
IMemcachedCache cache = manager.getCache("mclient_0");
cache.put("key", "value");
System.out.println(cache.get("key"));
} finally {
manager.stop();
}
}
}
运行结果可以采用cmd可以获取key的值,如下:
所有的java-Memcache的客户端两种调用方式的代码实现就基本完成了,这里需要的所有依赖可以到这里下载 http://download.csdn.net/detail/u010488222/9464168 ,最后项目结构如下图:
感谢你的翻阅,如有疑问和需要可以留言讨论!
除非注明,否则文章均由 崔用志博客 整理发布,欢迎转载。
如果喜欢,可以点此订阅本站