12.8. 第二级缓存
12.8.1. 关于第二级缓存 复制链接链接已复制到粘贴板!
第二级缓存是在应用会话外保留信息的本地数据存储。缓存由持久性提供商管理,通过将数据与应用分开来改进运行时。
JBoss EAP 支持用于以下目的的缓存:
- Web Session Clustering
- 有状态的 Session Bean Clustering
- SSO 集群
- Hibernate 第二级缓存
- Jakarta Persistence second-level Cache
每个缓存容器定义一个 repl 和一个 dist 缓存。用户应用不应直接使用这些缓存。
12.8.1.1. 默认的二级缓存供应商 复制链接链接已复制到粘贴板!
Infinispan 是 JBoss EAP 的默认第二级缓存提供程序。Infinispan 是带有可选架构的分布式内存中键/值数据存储,在 Apache License 2.0 下提供。
12.8.1.1.1. 在 Persistence 单元中配置二级缓存 复制链接链接已复制到粘贴板!
为确保与将来的 JBoss EAP 版本兼容,应使用 Infinispan 子系统(而非 persistence.xml 属性覆盖)自定义缓存配置。
您可以使用 persistence 单元 的 shared-cache-mode 元素来配置第二级缓存。
-
请参阅 创建一个 Simple Jakarta Persistence Application,以便在 Red Hat CodeReady Studio 中创建
persistence.xml文件。 在
persistence.xml文件中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow SHARED_CACHE_MODE元素可以使用以下值:-
ALL:所有实体都应被视为可缓存。 -
新增:任何实体都不应被视为可缓存。 -
ENABLE_SELECTIVE:仅标记为可缓存的实体才应被视为可缓存。 -
DISABLE_SELECTIVE:除明确标记为不可缓存的实体外的所有实体都应被视为可缓存。 -
UNSPECIFIED:行为未定义。适用特定于提供商的默认值。
-
示例:使用 persistence.xml更改 实体 和 local-query 缓存的属性
| 属性 | 描述 |
|---|---|
|
| 表示 object-memory 大小。 |
|
| 表示在缓存中维护缓存条目的最大空闲时间(以毫秒为单位)。 |
|
| 表示缓存条目过期的最大生命周期span(以毫秒为单位)。默认为 60 秒。无限期限可以使用 -1 指定。 |
|
| 表示后续运行之间的间隔(以毫秒为单位)从缓存中清除过期的条目。可以使用 -1 禁用过期时间。 |