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 单元中配置二级缓存
您可以使用 persistence 单元 的 shared-cache-mode
元素来配置第二级缓存。
-
请参阅 创建一个 Simple Jakarta Persistence Application,以便在 Red Hat CodeReady Studio 中创建
persistence.xml
文件。 在
persistence.xml
文件中添加以下内容:<persistence-unit name="..."> (...) <!-- other configuration --> <shared-cache-mode>SHARED_CACHE_MODE</shared-cache-mode> <properties> <property name="hibernate.cache.use_second_level_cache" value="true" /> <property name="hibernate.cache.use_query_cache" value="true" /> </properties> </persistence-unit>
SHARED_CACHE_MODE
元素可以使用以下值:-
ALL
:所有实体都应被视为可缓存。 -
新增
:任何实体都不应被视为可缓存。 -
ENABLE_SELECTIVE
:仅标记为可缓存的实体才应被视为可缓存。 -
DISABLE_SELECTIVE
:除明确标记为不可缓存的实体外的所有实体都应被视为可缓存。 -
UNSPECIFIED
:行为未定义。适用特定于提供商的默认值。
-