有关缓存

最近阅读了一些有关缓存的资料,主要是两个ehcache和memcached.由于都没有使用过,所以在此只是对收集的资料进行一些总结.

1.性能比较

ehcache和memcached的性能都很强.有些资料显示ehcache的性能数百倍于memcached.由于自己没有使用过,所以没有具体感受.不过memcached被很多大型网站使用,可见其性能已经相当强劲.

2.持久化

memcached是纯内存型缓存,但是可以使用第三方模块进行磁盘或者数据库的缓存持久化.

ehcache则原生支持将缓存持久化到磁盘,在缓存服务器重启的时候会自动将磁盘的内容读入内存.当内存使用超过设置值时会自动将缓存持久化到磁盘.

3.对集群的支持

memcached服务器之间并不通信,所有的分布式算法都在客户端实现.由于服务器之间也不拷贝数据,所以容灾主要靠客户端算法完成.

ehcache使用RMI在服务器之间做异步数据同步,以保证服务器之间的数据一致性.所以原生容灾支持,不需要客户端的特别算法.

4.缓存的过期移除策略

memcached可以设置缓存过期时间,但是并不设置异步监控线程清理过期的缓存,而是在客户端请求缓存时检查是否过期.当内存空间不足的时候,会使用LRU(最近最少使用)算法释放内存空间.

ehcache使用JVM的内存空间,同样使用LRU算法,同时也支持FIFO,LFU等算法.推荐(也是默认)使用LRU.

5.API客户端

memcached支持使用socket通信的任何编程语言客户端,现在Python,Java,PHP,Ruby,Perl等等几乎所有语言都有相应的客户端.

ehcache主要服务于Java,本身也由Java开发.是Hibernate默认使用的外部缓存.所以只有Java访问API.但服务器也可以使用.但是也可以建立使用RESTful或者Webservice的服务器,这样其它语言也可以使用HTTP协议使用ehcache缓存服务.

 

memcached只支持C/S的访问结构.服务器本身的cpu负载极低,在分布式应用中性能主要瓶颈在于网络通信.

ehcache现在的版本也支持memcached的C/S方式,同时也支持在JAVA应用内部集成.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值