Memcache客户端安装和使用
来源:互联网 发布:xml与json传输性 编辑:程序博客网 时间:2024/06/01 09:37
一、memcached客户端安装
Memcached本身是使用C开发的,客户端可以是php、C#、或者java。我是做java的,所以这里只介绍基于java的客户端。
Memcached目前有三种java的客户端
(1)memcached client for java
较早推出的memcached JAVA客户端API,应用广泛,运行比较稳定。
(2)spymemcached
A simple, asynchronous, single-threaded memcached client written in java.
支持异步,单线程的memcached客户端,用到了java1.5版本的concurrent和nio,存取速度会高于前者,但是稳定性不好,测试中常报timeOut等相关异常。
(3)xmemcached
XMemcached同样是基于java nio的客户端,java nio相比于传统阻塞io模型来说,有效率高(特别在高并发下)和资源耗费相对较少的优点。传统阻塞IO为了提高效率,需要创建一定数量的连接形成连接池,而nio仅需要一个连接即可(当然,nio也是可以做池化处理),相对来说减少了线程创建和切换的开销,这一点在高并发下特别明显。因此XMemcached与Spymemcached在性能都非常优秀,在某些方面(存储的数据比较小的情况下)Xmemcached比Spymemcached的表现更为优秀,具体可以看这个Java
Memcached Clients Benchmark。
本人属于学习,选择了较为稳定的memcached client for java。下面以 memcached client for java讲解下客户端使用方法。
1.安装。
点击进入 java memcached client的jar包下载地址
由于目前java memcached java memcached client要依赖slf4j-simple、slf4j-api、commons-pool三个包,因此我们需要为其编辑一个pom文件,将java memcached client的jar包和pom文件一起安装,解决java memcached client对其他jar包的依赖。
安装步骤:
1. 下载 memcached.jar(放到d:/)
2. 编写 java-memcached-2.6.6.pom文件(d:/)
3. 执行安装命令:
mvn install:install-file-Dfile=d:/java_memcached_2.6.6.jar-DpomFile=d:/java-memcached-2.6.6.pom
4. 在 项目中引入memcache
<dependency>
<groupId>com.danga</groupId>
<artifactId>java-memcached</artifactId>
<version>2.6.6</version>
</dependency>
java-memcached-2.6.6.pom的内容为:
<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.danga</groupId> <artifactId>java-memcached</artifactId> <version>2.6.2</version> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.5.6</version> </dependency> </project>
二、DEMO的实现
memcached包结构
在Dao层编写所对应的memcached的单例,代码如下:
/** * memcache 客户端 * * Created by ydw on 15/4/15. */public class MemCacheDao { // 创建全局的唯一实例 protected static MemCachedClient mcc = new MemCachedClient(); protected static MemCacheDao memCachedManager = new MemCacheDao(); // 设置与缓存服务器的连接池 static { // 服务器列表和其权重 String[] servers = {"Ip:port"}; Integer[] weights = {3}; // 获取soket 连接池的实例对象 SockIOPool pool = SockIOPool.getInstance(); // 设置服务器信息 pool.setServers(servers); pool.setWeights(weights); //设置初始连接数、最小和最大连接数以及最大处理时间 pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(500); pool.setMaxIdle(1000*60*60*6); // 设置主线程的睡眠时间 pool.setMaintSleep(30); // 设置TCP的参数和连接超时 pool.setNagle(false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); // 初始化连接池 pool.initialize(); } /** * 私有构造方法,不允许外部实例化! */ protected MemCacheDao(){ } /** * 获取唯一实例 */ public static MemCacheDao getInstance() { return memCachedManager; } /** * 添加一个指定的值到缓存中 */ public boolean add(String key, Object value){ return mcc.add(key, value); } public boolean add(String key, Object value, Date expiry) { return mcc.add(key, value, expiry); } /** * 修改缓存 * @param key * @param value * @return */ public boolean replace(String key, Object value){ return mcc.replace(key, value); } public boolean replace(String key, Object value, Date expiry) { return mcc.replace(key, value, expiry); } /** * 根据指定的关键字获取对象 */ public Object get(String key) { return mcc.get(key); } public static void main(String [] args) { MemCacheDao cache = MemCacheDao.getInstance(); cache.add("hello", 234); System.out.println("get value:" + cache.get("hello")); }}
在service层,使用下面语句,对mecached client进行实例化,便可以操作memcache服务器。
// cache client dao MemCacheDao cacheDao = MemCacheDao.getInstance();
参考资料:
http://369369.blog.51cto.com/319630/833234/
http://blog.csdn.net/seelye/article/details/8511073
使用memcache处理缓存的三种方案
- Memcache客户端安装和使用
- memcache安装和使用
- Memcache的安装和使用
- Memcache的安装和使用
- memcache的安装和使用
- memcache的安装和使用
- memcache安装,配置和使用
- memcache的安装和使用
- php memcache服务器端的安装和memcached客户端的安装。
- Memcache Java 客户端使用
- Memcache Java 客户端使用
- memcache的安装和使用步骤
- spy memcache 客户端使用体会
- 理解memcache客户端和服务器端
- memcache使用及安装
- memcache使用及安装
- memcache使用及安装
- memcache安装使用
- 利用Log4Net记录用户操作日志(未完成)
- 剑指offer2 - 实现singleton模式
- Setting parameter value for binding with code
- c++多态、重写、覆盖、隐藏、重载
- 获取http头部信息三种方法
- Memcache客户端安装和使用
- AlarmManager 全局闹钟
- php 常用函数
- 域名生存全过程扫描
- C++ Windos写开机启动项
- Robot Framework Remote Library 使用远程接口库
- select、poll、epoll之间的区别总结[整理]
- Git版本控制:Github的使用之 多人协作及参与项目
- Robot Framework 经验谈 - 将Teardown动作的收集分解到主体步骤中