首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring,使用EhCache缓存

Spring,使用EhCache缓存
EN

Stack Overflow用户
提问于 2016-04-29 09:05:44
回答 2查看 16.8K关注 0票数 10

我需要在我的应用程序中缓存一些数据,我正在考虑使用Ehcache。我有几个问题:

  1. 我需要另一台服务器来完成Ehcache吗?
  2. 我需要另一个客户来处理Ehcache吗?
  3. Ehcache如何处理多个实例?甚至可以使用Ehcache创建类似共享缓存的内容吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-29 09:35:58

我需要另一台服务器来完成Ehcache吗?

您可以在独立模式下使用Ehcache。在此拓扑中,缓存数据保存在应用程序节点中。因此,在这种模式下不需要另一台服务器。Ehcache还提供了另外两种模式

  1. 分布式--数据保存在远程服务器(或服务器数组)中,在每个应用程序节点中保存最近使用的数据的子集。此拓扑提供了一组丰富的一致性选项。分布式拓扑是集群或扩展应用程序环境中推荐的方法。它提供了最高级别的性能、可用性和可伸缩性。 分布式拓扑可以作为Terracotta开放源码服务使用,没有客户端的限制,但对Terracotta集群大小有限制。在使用商业BigMemory Max时,这些内容将被删除。
  2. 复制-缓存的数据集保存在每个应用程序节点中,数据在没有锁定的情况下在节点上被复制或失效。复制可以是异步的,也可以是同步的,其中写入线程在传播时阻塞。此拓扑中唯一支持的一致性模式是弱一致性。

我需要另一个客户来处理Ehcache吗?

为了能够与Ehache通信,您应该使用Ehcache库。但是Spring提供了一个缓存抽象,使用起来更优雅,而且它的优点是独立于底层的缓存实现。因此,如果您使用Spring缓存抽象,您可以轻松地从Ehcache切换到,例如,Hazelcast。您可以在这里中阅读更多关于Spring缓存抽象的内容。

Spring Boot提供了spring-boot-starter-cache初学者包,只要启用缓存支持,它就会根据实现自动配置合适的CacheManager

Ehcache如何处理多个实例?甚至可以使用Ehcache创建类似共享缓存的内容吗?

引用Ehcache文档

Ehcache提供进程内缓存,您可以跨多个节点复制该缓存。它也是BigMemory Go和BigMemory Max的核心,这是Terracotta的商业缓存和内存数据存储产品。由BigMemory Max提供的Terracotta支持进程内/进程外的混合配置和兆字节大小的缓存。有关Terracotta的BigMemory产品的信息,请参阅http://terracotta.org/documentation的BigMemory Go和BigMemory Max产品文档。

如前所述,Ehcache提供了一个免费的集群选项。对于这一要求,Redis和Hazelcast也是不错的选择。

票数 12
EN

Stack Overflow用户

发布于 2016-04-29 09:10:50

这些文件和例子应该回答你所有的问题:

https://spring.io/blog/2015/06/15/cache-auto-configuration-in-spring-boot-1-3 https://github.com/spring-projects/spring-boot/tree/1.3.x/spring-boot-samples/spring-boot-sample-cache

当然,您可以简单地在Spring应用程序中使用嵌入式EhCache。如果您想共享缓存,它取决于您的体系结构。您可以公开REST端点,以使其他应用程序可以使用缓存。

如果您想要一个分布式的、可伸缩的、高性能的缓存,那么您可能应该看看Hazelcast。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36934115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档