memcached,oscache 浅析

现在开源缓存让人眼花撩乱,介绍一下两个比较典型的缓存

 

oscache

oscache支持内存缓存和硬盘缓存两种方式,且可以两种方式同时使用

使用方式:oscahce,oscache属于应用端缓存,即只能和应用服务在同一台机器上,或者说只能与运行的应用在同一个
             JVM中使用。

集群方式: oscache 依赖jgroups 的组播功能可以进行分布式集群,oscache可以参考我
             之前的一边文章:http://mengxs.iteye.com/admin/blogs/1023791  ,不过oscache在集群方面存在bug。
优点:

1.oscache提供了jsp标签库,在jsp页面可以很简单对数据进行缓存

2.支持cron表达式

3.配置简单,只要将配置文件稍作修改或不修改就可使用

4.oscache在读写操作时,并发对相同 key 进行写操作时它只写一次:多个线程T1,T2,T3并发去读取 key的缓存
 对象,T1读取数据时发现数据过期,这时T1会获取key的写锁,T2,T3读取数据时也发现数据过期,同时发现这
 个key的数据正在被其他线程进行写,这时T2,T3就处于等待状态,直到T1将新的数据写入缓存,T2、T3线
  程被唤醒,T2、T3醒来后发现缓存数据已经被更新,他们会重新在缓存中获取key的数据。

缺点:

1.集群本身存在bug http://mengxs.iteye.com/admin/blogs/1023791  

2.缓存只能与应用处于同一JVM种,不能够将oscache放在独立的缓存服务器上。不适合大规模集群

 

MEMCACHED

memcached是单独的缓存服务,独立于应用层,可以放在单独的机器上。将memcached安装完以后(具体安装看官方文档),如果要使用的话,需要下载memcached客户端,如:https://github.com/gwhalin/Memcached-Java-Client

 

优点:

1.memcached本身独立于应用层,可以放在单独的服务器上

2.多台memcached缓存服务器可以进行分布式,分布式是通过客户端来决定将key 的对象 缓存到指定的某台机器上,多台memcached之间是没有相互通信的,他们是单独互不影响。适合集群,不存在网络爆炸的危险

 

缺点:

客户端提供的缓存的同一key的读、写操作都是并发执行,这点感觉不如socache周到。

 

 总结 

 从可扩展行和稳定性来看,建议使用memcached 作为内存缓存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值