学习memcached

memcached是一个高性能、分布式的基于内存的对象缓存系统。

Is a cache,not a cache database。

分为server和client,各个cache server节点之间没有通信,减少了io。通过key的hash编码来存放和获取缓存数据。

缓存的java对象必须实现可序列化接口,因为存在这个对象的序列化和反序列化,因此对性能会造成一定的影响。

适用场景是读取操作远大于更新操作。

限制是如果其中一台cache节点down掉,缓存数据丢失同时会造成hashkey的重新编码,缓存的数据会转移。解决的办法是热备份,利用相同ip的备份cache。

 

几个应用点: 小对象的缓存(用户的Token、权限信息、资源信息);小的静态资源缓存;SQL结果的缓存(这部分如果用的好,性能提高会相当大,同时由于Memcached自身提供向上扩容,那么对于数据库向上扩容的老大难问题无疑是一剂好药);ESB消息缓存。

下面是网上的一个部署逻辑示意图:



memcached java client有spymemcached Java memcached client 。这些client也很容易与spring进行集成。可以参考缓存系统MemCached的Java客户端优化历程http://www.infoq.com/cn/articles/memcached-java 和AOP的实现方案   http://www.iteye.com/topic/28700

 

 

参考资料:

 

memcached 完全剖析  http://tech.idv2.com/2008/07/10/memcached-001/

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值