2.2. 创建和使用嵌入式缓存


Data Grid 提供了一个 GlobalConfigurationBuilder API,用于控制 Cache Manager 和用于配置缓存的 ConfigurationBuilder API。

先决条件

  • infinispan-core 工件添加为 pom.xml 中的依赖项。

流程

  1. 初始化 CacheManager

    注意

    在创建缓存前,您必须始终调用 cacheManager.start () 方法来初始化 CacheManager。默认构造器为您完成此操作,但构建器的超载版本不会为您这样做。

    缓存管理器也是重量的对象,Data Grid 建议实例化每个 JVM 只有一个实例。

  2. 使用 ConfigurationBuilder API 定义缓存配置。
  3. 使用 getCache ()createCache ()getOrCreateCache () 方法获取缓存。

    Data Grid 建议使用 getOrCreateCache () 方法,因为它在所有节点上创建一个缓存或返回现有的缓存。

  4. 如有必要,对缓存使用 PERMANENT 标志,以在重启后保留。
  5. 通过调用 cacheManager.stop () 方法以释放 JVM 资源并正常关闭任何缓存,以停止 CacheManager
// Set up a clustered Cache Manager.
GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder();
// Initialize the default Cache Manager.
DefaultCacheManager cacheManager = new DefaultCacheManager(global.build());
// Create a distributed cache with synchronous replication.
ConfigurationBuilder builder = new ConfigurationBuilder();
                     builder.clustering().cacheMode(CacheMode.DIST_SYNC);
// Obtain a volatile cache.
Cache<String, String> cache = cacheManager.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache("myCache", builder.build());
// Stop the Cache Manager.
cacheManager.stop();
Copy to Clipboard Toggle word wrap

getCache () 方法

调用 getCache (String) 方法以获取缓存,如下所示:

Cache<String, String> myCache = manager.getCache("myCache");
Copy to Clipboard Toggle word wrap

前面的操作会创建一个名为 myCache 的缓存(如果尚未存在),并返回它。

使用 getCache () 方法仅在您调用方法的节点上创建缓存。换句话说,它会执行一个本地操作,它必须在集群中的每个节点上调用。通常,在多个节点间部署的应用程序会在初始化过程中获取缓存,以确保缓存都是 对称的,并在每个节点上存在。

createCache () 方法

调用 createCache () 方法,以在整个集群中动态创建缓存。

Cache<String, String> myCache = manager.administration().createCache("myCache", "myTemplate");
Copy to Clipboard Toggle word wrap

前面的操作还会在随后加入集群的任何节点上自动创建缓存。

默认情况下,您使用 createCache () 方法创建的缓存是临时的。如果整个集群关闭,则缓存重启后不会自动创建。

PERMANENT 标志

使用 PERMANENT 标志来确保缓存可以在重启后保留。

Cache<String, String> myCache = manager.administration().withFlags(AdminFlag.PERMANENT).createCache("myCache", "myTemplate");
Copy to Clipboard Toggle word wrap

要使 PERMANENT 标志生效,您必须启用全局状态并设置配置存储提供程序。

有关配置存储供应商的更多信息,请参阅 GlobalStateConfigurationBuilder#configurationStorage ()

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat