Spring ehcache 与 Memcached?
Spring ehcache vs Memcached?
我曾使用 ehcache 进行 spring 缓存。对我来说,这就像公开不同的 API 集及其实现一样。
它们之间提供的功能有何不同
除了 API/implementation ?
更新:- 我已经看过 Hibernate EHCache vs MemCache 但这个问题主要是从休眠角度提出的,但我的问题一般是针对任何缓存服务。该问题的答案还指出在功能方面没有太大差异
除了您提到的 API 差异之外,这里的主要区别在于 memcached 存在于不同的进程中,而 Ehcache 位于 JVM 内部 - 除非配置为存储在磁盘或集群中.
这主要意味着使用 Memcached,您总是 需要对象的序列化版本,并且您总是与不同的进程交互,无论远程与否。
Ehcache 和其他基于 JVM 的缓存解决方案,最初是从基于堆上的缓存开始的,它允许查找只是处理对 Java 对象的引用。
当然这意味着对象一直在Java堆中,增加了内存压力。在 Ehcache 3.x 的情况下,您可以选择移动到 offheap memory 等,允许在不影响 JVM 堆的情况下增加缓存。
此时,Memcached 的好处可能是您希望非 Java 客户端访问它。
最终决定权真的掌握在您的手中。缓存消耗内存以减少延迟。对您有用的可能与对其他人有用的不同。你得衡量再决定。
我曾使用 ehcache 进行 spring 缓存。对我来说,这就像公开不同的 API 集及其实现一样。
它们之间提供的功能有何不同 除了 API/implementation ?
更新:- 我已经看过 Hibernate EHCache vs MemCache 但这个问题主要是从休眠角度提出的,但我的问题一般是针对任何缓存服务。该问题的答案还指出在功能方面没有太大差异
除了您提到的 API 差异之外,这里的主要区别在于 memcached 存在于不同的进程中,而 Ehcache 位于 JVM 内部 - 除非配置为存储在磁盘或集群中.
这主要意味着使用 Memcached,您总是 需要对象的序列化版本,并且您总是与不同的进程交互,无论远程与否。
Ehcache 和其他基于 JVM 的缓存解决方案,最初是从基于堆上的缓存开始的,它允许查找只是处理对 Java 对象的引用。
当然这意味着对象一直在Java堆中,增加了内存压力。在 Ehcache 3.x 的情况下,您可以选择移动到 offheap memory 等,允许在不影响 JVM 堆的情况下增加缓存。
此时,Memcached 的好处可能是您希望非 Java 客户端访问它。
最终决定权真的掌握在您的手中。缓存消耗内存以减少延迟。对您有用的可能与对其他人有用的不同。你得衡量再决定。