【问题标题】:Why is ehcache faster than memcache?为什么 ehcache 比 memcache 快?
【发布时间】: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。

标签: caching memcached ehcache


【解决方案1】:

Ehcache经常和应用运行在同一个jvm进程中,所以不需要序列化和io开销。

在将 Ehcache 与 memcached 一起使用时,一些对象存储在 ehcache 堆中,而其他对象则存储在 memcached 中。所以混合使用 ehcahe 和 memcached 会比只使用 memcached 更快。

在同一个 JVM 进程中运行 ehcache 和应用程序是一种以 RAM 空间换时间的方式, 但是你不能把太多的数据放到ehcache,因为你需要考虑服务器之间的复制。

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 2019-11-02
    • 2015-07-24
    • 1970-01-01
    • 2019-04-18
    • 2014-07-06
    相关资源
    最近更新 更多