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

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值