6. Ehcache 支持
要使用 Ehcache 作为缓存实现,请将其作为应用程序的依赖项添加:
注意
此模块使用 Ehcache {ehcacheVersion} 进行构建和测试。
- Gradle
- Maven
implementation("io.micronaut.cache:micronaut-cache-ehcache:3.5.0")
<dependency>
<groupId>io.micronaut.cache</groupId>
<artifactId>micronaut-cache-ehcache</artifactId>
<version>3.5.0</version>
</dependency>
要让 Micronaut 创建缓存,最简洁配置为:
ehcache:
caches:
my-cache:
enabled: true
然后,你可以使用任何缓存注解,并将 my-cache
作为缓存名称。
参阅配置参考以检查所有可能的配置选项。
分层选项
Ehcache 支持分层缓存的概念。此库允许你在每个缓存的基础上配置分层缓存选项。
如果没有显式配置层,则缓存将配置为最多 100 个条目的堆层。
堆层
它可以根据条目的数量进行调整:
ehcache:
caches:
my-cache:
heap:
max-entries: 5000
或按大小:
ehcache:
caches:
my-cache:
heap:
max-size: 200Mb
堆外层
ehcache:
caches:
my-cache:
offheap:
max-size: 1Gb
不要忘记在 java 选项中定义 -XX:MaxDirectMemorySize
选项,根据你打算使用的堆外大小。
磁盘层
ehcache:
storage-path: /var/caches
caches:
my-cache:
disk:
max-size: 10Gb
集群层
Ehcache 支持 Terracotta 的分布式缓存。
这是一个完整的配置示例:
ehcache:
cluster:
uri: terracotta://localhost/my-application
default-server-resource: offheap-1
resource-pools:
resource-pool-a:
max-size: 8Mb
server-resource: offheap-2
resource-pool-b:
max-size: 10Mb
caches:
clustered-cache:
clustered-dedicated:
server-resource: offheap-1
max-size: 8Mb
shared-cache-1:
clustered-shared:
server-resource: resource-pool-a
shared-cache-3:
clustered-shared:
server-resource: resource-pool-b
多层设置
缓存可以配置为具有多个层。阅读有关有效配置选项的 Ehcache 文档。
例如,要配置堆+堆外+磁盘缓存:
ehcache:
storage-path: /var/caches
caches:
my-cache:
heap:
max-size: 200Mb
offheap:
max-size: 1Gb
disk:
max-size: 10Gb