直接引用ehcache的网站[source]:
这里的想法是您的缓存设置在缓存层次结构中。 Ehcache坐在前面,后面是memcacheg。结合这两个让你 优雅地解决Google App Engine带来的限制。您 获得Ehcache的速度和umlimited的好处 memcached的大小。 Ehcache包含了很容易做到这一点的钩子。至 更新memcached,使用CacheEventListener。要搜索 memcacheg在本地缓存未命中时,一起使用cache.getWithLoader() 使用用于memcacheg的CacheLoader。
这似乎意味着将ehcache与memcached一起使用会比单独使用memcached更快。为什么ehcache会比memcached更快?我看到它的方式,都在内存缓存中,为什么性能差异?
答案 0 :(得分:1)
Ehcache经常与应用程序在同一个jvm进程中运行,因此它不需要序列化和成本。
将Ehcache与memcached一起使用时,某些对象存储在ehcache堆中,而其他对象则存储在memcached中。所以混合ehcahe和memcached会比仅使用memcached更快。
在同一个JVM进程中运行ehcache和应用程序是一种交换RAM空间的方法, 但是你不能把太多数据放到ehcache上,因为你需要考虑服务器之间的复制。