我需要在应用程序中缓存一些数据,并且我正在考虑使用Ehcache。我有几个问题:
我是否需要其他服务器进行Ehcache?
您可以在独立模式下使用Ehcache。在这种拓扑中,缓存数据保存在应用程序节点中。因此,在这种模式下,您将不需要其他服务器。Ehcache还提供了另外两种模式:
分布式拓扑可作为Terracotta开源产品提供,没有客户端限制,但对Terracotta群集大小有限制。使用商用BigMemory Max时,这些将被删除。
我是否需要其他客户端来使用Ehcache?
您应该使用Ehcache库才能与Ehache通信。但是Spring提供了一个缓存抽象,它可以更优雅地工作,并且还具有独立于底层缓存实现的优点。因此,如果您使用Spring Caching Abstraction,则可以轻松地从Ehcache切换到Hazelcast。您可以在此处阅读有关Spring Caching Abstraction的更多信息。
Spring Boot提供了spring-boot- starter-cache启动程序包,CacheManager只要启用了缓存支持,它就会根据实现自动配置合适的启动程序包。
spring-boot- starter-cache
CacheManager
Ehcache如何与多个实例一起使用?甚至可以使用Ehcache创建类似共享缓存的内容吗?
引用Ehcache文档:
Ehcache提供了进程内缓存,您可以在多个节点之间进行复制。它还是Terracotta的商业缓存和内存中数据存储产品BigMemory Go和BigMemory Max的核心。BigMemory Max随附的Terracotta服务器阵列可实现具有TB级缓存的混合进程内/进程外配置。有关Terracotta的BigMemory产品的信息,请参阅http://terracotta.org/documentation上的BigMemory Go和BigMemory Max产品文档。
如上所述,Ehcache提供了一个免费的群集选项。对于此要求,Redis和Hazelcast也是不错的选择。