问题描述
tomcat 集群用什么缓存更好,oscache或memcache,请给出理由。我在网上查到 多个tomcat 可以共用一个memcache,意思是只需要缓存一组数据即可
解决方案
你说的OSCache是进程级缓存,说白了就是利用JVM本身的内存来保存一些对象.Memcache是利用别的机器的缓存,利用网络来沟通.个人建议是看你的应用了.OScache本身提供了广播和JMS等方式来进行缓存失效通知,这种方式的问题就是....A和B两个Tomcat,A机里的一个KEY被更新了,通知了B,B把这个KEY失效了...结果就是B不能享用到A已经做过的事...还要再从数据库或者其他地方重新读取数据放到缓存.如果这个操作很费资源那就不合算了.Memcache可以避免这个问题,但同时也产生另外的问题.由于memcache是由网络来沟通的,所以存在着序例化和反序例化还有网络IO等操作的时间.所以读取单个KEY时会比从OScache里拿要慢一些.
解决方案二:
Ehcache
解决方案三:
memcache的特点是支持分布式、高性能
解决方案四:
memcache可用于单个应用的数据缓存,也可以用于多个应用集群的数据缓存,我们现在做的这个项目就用的memcache做缓存服务器,成产环境是6个was集群。memcache实际上是开放了一个ip和端口的服务,只要知道ip地址和端口,都可以通过set key和get key的方式操作缓存。
时间: 2024-07-31 11:02:17