【发布时间】:2013-09-25 11:46:40
【问题描述】:
直接引用来自ehcache的网站[source]:
这里的想法是您的缓存设置在缓存层次结构中。 Ehcache 位于前面,memcacheg 位于后面。两者结合可以让你 优雅地解决 Google App Engine 施加的限制。你 获得 Ehcache 的速度和 umlimited 的好处 内存缓存的大小。 Ehcache 包含可以轻松执行此操作的挂钩。到 更新 memcached,使用 CacheEventListener。搜索 memcacheg 在本地缓存未命中时,一起使用 cache.getWithLoader() 带有用于 memcacheg 的 CacheLoader。
这似乎意味着将 ehcache 与 memcached 一起使用会比单独使用 memcached 更快。为什么 ehcache 会比 memcached 快?在我看来,两者都在内存缓存中,为什么会有性能差异?
【问题讨论】:
-
只是因为它的策略不同。 GAE memcache 实现有一些好处(无限大小),使其架构有点慢,因为它似乎包含了一些网络堆栈。 ehcache 通过仅使用一小部分专用于应用程序实例的可用内存来避免这种情况。因此访问速度更快,但空间有限。缓存大量数据可能会消除 ehcache 的好处,因为它会在自己的堆栈中调用 memcache。