memcache 应用例子

前面已发布了linux memcache的安装,这写了一个小例子,这在不再详细介绍。
安装说明:[url]http://sunney2010.iteye.com/blog/656905[/url]
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。
  Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。


package com.ctoall.core;

import java.util.Date;

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


public class MemCached {
// 创建全局的唯一实例
protected static MemCachedClient mcc = new MemCachedClient();

protected static MemCached memCached = new MemCached();
// 设置与缓存服务器的连接池
static {
// 服务器列表和其权重
String[] servers = {"192.168.186.128:11211"};
Integer[] 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 * 6 );

// 设置主线程的睡眠时间
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()
{

}

/**
* 获取唯一实例.
* @return
*/
public static MemCached getInstance()
{
return memCached;
}

/**
* 添加一个指定的值到缓存中.
* @param key
* @param value
* @return
*/
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);
}

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)
{
return mcc.get(key);
}

public static void main(String[] args)
{
MemCached cache = MemCached.getInstance();
StudentDO stuDO=new StudentDO();
stuDO.setId(10);
stuDO.setAge(28);
stuDO.setName("sunney");
stuDO.setAddress("广东省深圳市福田区梅华路105号多丽科技楼9楼");
cache.add("stu", stuDO);
StudentDO stuDO1=(StudentDO)cache.get("stu");
System.out.println("id:"+stuDO1.getId());
System.out.println("name:"+stuDO1.getName());
System.out.println("age:"+stuDO1.getAge());
System.out.println("adress:"+stuDO1.getAddress());
System.out.println("+++++++++++++++++++++++ok++++++++++++++++++++++++");

}
}


package com.ctoall.core;

import java.io.Serializable;

public class StudentDO implements Serializable {

/**
*
*/
private static final long serialVersionUID = 3312721104787630488L;
private int Id;
private String Name;
private int age;
private String address;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值