`

Memcached的简单实例

 
阅读更多
Memcached在很多时候多是作为数据库前端cache使用的.
最近一直在进行着项目的编码工作,在进行模块的功能实现过程中用到了数据库的缓存工具memcached(当然该工具并不仅仅局限于数据库的缓存).
首先简单的介绍下什么是Memcached.
Memcached是高性能的,分布式的内存对象缓存系统.用于在动态应用中减少数据库负载,提升访问速度.Memcached由Danga Interactive开发,
用于提升LiveJournal.com访问速度的.LJ每秒动态页面访问量几千次.用户700万.Memcached将数据负载大幅度降低,更好的分配资源,更快速访问.

下面从一个实际的例子来应用Memcached,
首先到http://danga.com/memcached/下载memcached的windows版本和java客户端jar包.分别解压后即可!首先是安装运行memcached服务器,将memcached解压后.进行其目录
然后运行如下命令:
c>memcached.exe -d install
c>memcached.exe -l 127.0.0.1 -m 32 -d start
第一行是安装memcached成为服务,这样才能正常运行,否则运行失败!第一行是启动memcached的,作为测试我们就简单的只分配32M内存了,然后监听本机端口和以守护进行.
执行完毕后,我们就可以在任务管理器中见到的memcached.exe这个进程.好了,我们的服务器已经正常运行了,
首先把memcached的jar文件复制到java项目的lib目录下
java代码:
package utils.cache;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemCached
{
//创建全局的唯一实例
private static MemCachedClient mcc = new MemCachedClient();

private static MemCached memCached = new MemCached(); 

//设置与缓存服务器的链接池
String[] servers = {"127.0.0.1:11211"};
lnteger[] weights = {3};

//获得socke连接池的实例对象
SockIOPool pool = SockIOPool.getInstance();

//设置服务器信息
pool.setServers(servers);
pool.setWeights(weights);

//设置初始化连接数,最小何最大连接数以及最大处理时间
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaxIdle(1000 * 60 * 60);
//设置主线程的睡眠时间
pool.setMaintSleep(30);

//设置TCP的参数,连接超时等
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);

//初始化连接池
pool.initialize();

//压缩设置,超过指定大小(单位为K)的数据都会被压缩
mcc.setCompressEnable(true);
mcc.setCompressThreshold(64*1024);
}

//保护构造方法,不允许实例化
protected MemCached(){
} 

//获得唯一实例
public static MemCached getInstance(){
	return memCached;
} 
public static void set(String name, Object value, Date expire) {
		mcc.set(name, value, expire);
	}

	public static Object get(String name) {
		return mcc.get(name);
	}

	public static Object delete(String name) {
		return mcc.delete(name);
	}	
	
//添加一个方法来测试一把!!!
public static object set (String key, Object value){
        return mcc.add(key, value); 
       }
	public static void main(String[] args){
	MemCached cache = MemCached.getInstance();
	cache.add("Hello",234);
	system.out.print("value:" + cache.get("Hello"));
	
	}
}
1
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics