OSCache是进程级缓存,说白了就是利用JVM本身的内存来保存一些对象.
Memcache是利用别的机器的缓存,利用网络来沟通.
个人建议是看你的应用了.
OScache本身提供了广播和JMS等方式来进行缓存失效通知,这种方式的问题就是....
A和B两个Tomcat,A机里的一个KEY被更新了,通知了B,B把这个KEY失效了...结果就是B不能享用到A已经做过的事...还要再从数据库或者其他地方重新读取数据放到缓存.
如果这个操作很费资源那就不合算了.
Memcache可以避免这个问题,但同时也产生另外的问题.由于memcache是由网络来沟通的,所以存在着序例化和反序例化还有网络IO等操作的时间.所以读取单个KEY时会比从OScache里拿要慢一些.
时间: 2024-10-19 19:49:40