首页 / MYSQL / memcache怎么存储的对象
memcache怎么存储的对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了memcache怎么存储的对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2044字,纯文字阅读大概需要3分钟。
内容图文
memchache 将对象序列化后保存 memcahce将值序列化成字节数组,然后存储到缓存中。 如下例,我们将user对象序列化到文件a.txt中,同时将user保存到缓存中,通过比较文件和缓存中的值 发现,两者是一样的。 public class User implements Serializable { priv
memchache 将对象序列化后保存
memcahce将值序列化成字节数组,然后存储到缓存中。
如下例,我们将user对象序列化到文件a.txt中,同时将user保存到缓存中,通过比较文件和缓存中的值
发现,两者是一样的。
public class User implements Serializable{
private String name;
private String address;
public User(String name, String address) {
super();
this.name = name;
this.address = address;
}
}
public static void main(String[] args) throws InterruptedException, ExecutionException, FileNotFoundException, IOException {
MemcachedClient mcc = null;
try{
// 本地连接 Memcached 服务
mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessful.");
}catch(Exception ex){
System.out.println( ex.getMessage() );
}
User u = new User("junwang","qingdao city");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("a.txt")) );
oos.writeObject(u);
Future fo = mcc.set("myuser", 5*60*1000, u);
// 查看存储状态
System.out.println("set status:" + fo.get());
//
输出值
System.out.println("myuser value in cache - " + mcc.get("myuser"));
// 关闭连接
mcc.shutdown();
}
查看源代码
查看源代码,可以发现正是将对象序列化,然后保存。证明了我们上述的猜想。
BaseSerializingTranscoder.java
protected byte[] serialize(Object o) {
if (o == null) {
throw new NullPointerException("Can't serialize null");
}
byte[] rv=null;
ByteArrayOutputStream bos = null;
ObjectOutputStream os = null;
try {
bos = new ByteArrayOutputStream();
os = new ObjectOutputStream(bos);
os.writeObject(o);
os.close();
bos.close();
rv = bos.toByteArray();
} catch (IOException e) {
throw new IllegalArgumentException("Non-serializable object", e);
} finally {
CloseUtil.close(os);
CloseUtil.close(bos);
}
return rv;
}
结论
值的存储,都是序列化成字节数组,然后保存
内容总结
以上是互联网集市为您收集整理的memcache怎么存储的对象全部内容,希望文章能够帮你解决memcache怎么存储的对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。