Memcached中我们常常需要自定义一些数据,所以,单纯的Key-Value的格式无法完成需求,所以我们需要把这个value部分 对象化,而memcache里面要 存储对象并非传统,它需要用工具序列化才行,如下列代码:
import java.io.Serializable;
public class TBean implements Serializable {
private static final long serialVersionUID = 1945562032261336919L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
对基本的数据我们可以操作,对于普通的POJO而言,如果要进行存储的话,那么比如让其实现java.io.Serializable接口,因为memcached是一个分布式的缓存服务器,多台服务器间进行数据共享需要将对象序列化的,所以必须实现该接口,否则会报错的。比如我们写一个简单的测试Bean如下:
测试用例:
public class TestMemcached extends TestCase {
private static MemCachedManager cache;
@Test
public void testCache() {
TBean tb = new TBean();
tb.setName("E网打进");
cache.add("bean", tb);
TBean tb1 = (TBean) cache.get("bean");
System.out.println("name=" + tb1.getName());
tb1.setName("E网打进_修改的");
tb1 = (TBean) cache.get("bean");
System.out.println("name=" + tb1.getName());
}
@Override
protected void setUp() throws Exception {
super.setUp();
cache = MemCachedManager.getInstance();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
cache = null;
}
}