`
softlife
  • 浏览: 109157 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MemberCache的使用

阅读更多
package com.test.memcache;
import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

/**
 * 利用开源项目danga.MemCached管理缓存,实现分布式缓存支持。
 * 在调试时使用了memcached-1.2.6-win32-binary安装,在部署时需要build linux版本部署。 服务器默认端口是11211
 */
public class MemCacheManager {

	// 创建全局的唯一实例
	protected static MemCachedClient mcc = null;

	protected static MemCacheManager memCacheManager = null;

	/**
	 * 保护型构造方法!
	 * 
	 */
	protected MemCacheManager() {

	}

	/**
	 * 获取唯一实例.
	 * 
	 * @return
	 */
	public static MemCacheManager getInstance() {
		// 设置与缓存服务器的连接池
		if (memCacheManager == null) {
				
			// 获取socke连接池的实例对象
			SockIOPool pool = SockIOPool.getInstance();
			String server ="127.0.0.1";
			String port ="11211";
			String[] servers = { server+":"+port};
			// 设置服务器信息
			pool.setServers(servers);
			//	与服务器列表中对应的各服务器的权重,权重高的负载大
			Integer[] weights = { 3 };
			pool.setWeights(weights);

			// 设置初始连接数、最小和最大连接数以及最大处理时间
			pool.setInitConn(5);
			pool.setMinConn(5);
			pool.setMaxConn(250);
			pool.setMaxIdle(1000 * 60 * 60 * 6);

			// 设置主线程的睡眠时间
			pool.setMaintSleep(30);

			// 设置TCP的参数,连接超时等
			pool.setNagle(false);
			pool.setSocketTO(3000);
			pool.setSocketConnectTO(0);
			
			// 初始化连接池
			pool.initialize();
			// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
			MemCachedClient mcc = new MemCachedClient();
			mcc.setCompressEnable(true);
			mcc.setCompressThreshold(64 * 1024);
			memCacheManager = new MemCacheManager();
			memCacheManager.mcc = mcc;
		}

		return memCacheManager;
	}

	/**
	 * 添加一个指定的值到缓存中.
	 * 
	 * @param key
	 * @param value
	 * @return
	 */
	public boolean put(String key, Object value) {
		return mcc.add(key, value);
	}

	public boolean put(String key, Object value, Date expiry) {
		return mcc.add(key, value, expiry);
	}

	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);
	}

	/**
	 * 根据指定的关键字获取对象.
	 * 
	 * @param key
	 * @return
	 */
	public Object get(String key) {
		Object rv=  mcc.get(key);
		
		return rv;
	}

	
}


依赖jar文件:
java_memcached-release_2.0.1.jar
分享到:
评论

相关推荐

    membercache-5.2

    对于“membercache-5.2”而言,readme.txt可能会详细介绍如何配置和使用这个缓存系统,包括如何安装dll文件,启动memcached服务,以及如何在PHP代码中利用这个扩展。 在实际应用中,使用`php_memcache_5.2.dll`时,...

    memcached的使用

    membercached要用到的dll和基础使用范例。

    Python memcache 上传数据

    本篇我们将深入探讨如何使用Python与Memcached进行交互,上传数据到缓存系统,并了解相关的源码和工具。 首先,我们需要安装Python的`memcache`库,这是Python与Memcached服务器通信的标准接口。通过Python的`pip`...

    linux下用memcache做tomcat集群session复制

    在Linux环境下,使用Memcached实现Tomcat集群的session复制是一个常见的解决方案,以提高应用的可扩展性和高可用性。Memcached是一种分布式内存对象缓存系统,它可以存储包括session在内的临时数据,使得多个服务器...

    PHP代码生成器2.0(memcache)修正版

    4, BindForm() 自动绑定表单数据配合Add()、Edit()使用减少大量代码,极大提高开发效率 D_表名(静态方法类) 1, 查询一条数据 GetModel($id)、 GetModelByWhere($where) 2,查询多条数据 GetList($PageSize,$...

    redis集成spring实现aop

    下载分设置的比较高,不过绝对的...为了在接下来的项目中能够方便的控制和使用 redis,所以也粗略的模仿了下membercache的aop代码,写了一份spring-redis-aop。当然方法有很多种,也许你有更好的 使用方法当然更好哈。

    Nginx+Tomcat6+Membercached 实现负载均衡

    标题中的“Nginx+Tomcat6+Memcached 实现负载均衡”涉及到的是一个常见的Web服务器和应用服务器的架构组合,用于提高系统性能和可扩展性。在这个架构中,Nginx作为反向代理和负载均衡器,Tomcat6是Java应用服务器,...

    nginx+tomcat7+memcached所需jar

    在构建高性能的Web应用系统时,常常会遇到服务器集群间会话共享的问题。"nginx+tomcat7+memcached所需jar"的组合提供了一种解决方案,利用Memcached作为分布式缓存来实现跨服务器的session共享,提高系统的可扩展性...

    分布式缓存1.0

    压缩包中的文件列表显示了一些开发相关的文件,如autofac.extras.dynamicproxy2.3.0.7.nupkg,这表明项目可能使用Autofac作为依赖注入容器,并且利用动态代理进行AOP(面向切面编程)来增强代码。DCLSystem.sln是...

Global site tag (gtag.js) - Google Analytics