Spring ehcache vs Memcached?

标签 spring memcached ehcache spring-cache

我一直在使用 ehcache 进行 spring caching。对我来说,这与公开的不同 API 集及其实现是一样的。

它们之间提供的功能有什么区别
除了API/实现?

更新:- 我已经看过 Hibernate EHCache vs MemCache但这个问题主要是从休眠的角度来看的,但我的问题通常适用于任何缓存服务。对该问题的回答还指出,在功能方面没有太大区别

最佳答案

除了您注意到的 API 差异之外,这里的主要区别在于 memcached 位于不同的进程中,而 Ehcache 位于 JVM 内部——除非配置为存储在磁盘或集群中。

这主要意味着使用 Memcached,您始终需要对象的序列化版本,并且您始终与不同的进程交互,无论是否远程。

Ehcache 和其他基于 JVM 的缓存解决方案,最初从基于堆的缓存开始,它允许查找只是处理对 Java 对象的引用。

当然,这意味着对象一直生活在 Java 堆中,从而增加了内存压力。在 Ehcache 3.x 的情况下,您可以选择移至 offheap memory以及更多,允许在不影响 JVM 堆的情况下增加缓存。

此时,Memcached 的好处可能是您希望非 Java 客户端访问它。

最终决定权在您手中。缓存消耗内存以减少延迟。对你有用的可能与对别人有用的不同。你必须衡量和决定。

关于Spring ehcache vs Memcached?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441425/

相关文章:

mysql - 使用 memaced 减少数据库写入

java - 从 Memcache 或 blobstore 提供服务更快/更高效/更便宜吗?

grails - Grails EHCache预热

java - LDAP 身份验证 - Spring Security - LdapAuthenticationProvider

java - 使用带有 Spring 的 Apache POI 在 Excel 中读取合并单元格

memcached - 使用 Homebrew 程序即服务启动时查找 Memcache 端口号

java - 使用 ehcache 进行多层缓存

java - Spring 4.2 中 EhCacheManager 出现类未找到异常

spring - 将对象属性传递给表单并取回

angularjs - 我的 Angular 前端应用程序无法将 PUT 请求发送到我的后端 REST 应用程序