4.3. 以编程方式配置缓存


使用 Cache Manager 定义缓存配置。

注意

本节中的示例使用 EmbeddedCacheManager,它是一个在与客户端相同的 JVM 中运行的 Cache Manager。

要使用 HotRod 客户端远程配置缓存,请使用 RemoteCacheManager。如需更多信息,请参阅 HotRod 文档。

配置新的缓存实例

以下示例配置一个新的缓存实例:

EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml");
Cache defaultCache = manager.getCache();
Configuration c = new ConfigurationBuilder().clustering() 1
  .cacheMode(CacheMode.REPL_SYNC) 2
  .build();

String newCacheName = "replicatedCache";
manager.defineConfiguration(newCacheName, c); 3
Cache<String, String> cache = manager.getCache(newCacheName);
1
创建新的 Configuration 对象。
2
指定分布式、同步缓存模式。
3
使用 Configuration 对象定义一个名为 "replicatedCache" 的新缓存。

从现有配置创建新缓存

以下示例从现有缓存配置创建新缓存配置:

EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml");
Configuration dcc = manager.getDefaultCacheConfiguration(); 1
Configuration c = new ConfigurationBuilder().read(dcc) 2
  .clustering()
  .cacheMode(CacheMode.DIST_SYNC) 3
  .l1()
  .lifespan(60000L) 4
  .build();
 
String newCacheName = "distributedWithL1";
manager.defineConfiguration(newCacheName, c); 5
Cache<String, String> cache = manager.getCache(newCacheName);
1
从 Cache Manager 返回默认缓存配置。在本例中,infinispan-prod.xml 定义复制缓存作为默认值。
2
创建新的 Configuration 对象,它使用默认缓存配置作为基础。
3
指定分布式、同步缓存模式。
4
添加 L1 生命周期配置。
5
使用 Configuration 对象定义名为 "distributedWithL1" 的新缓存。
EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml");
Configuration rc = manager.getCacheConfiguration("replicatedCache"); 1
Configuration c = new ConfigurationBuilder().read(rc)
  .clustering()
  .cacheMode(CacheMode.DIST_SYNC)
  .l1()
  .lifespan(60000L)
  .build();
 
String newCacheName = "distributedWithL1";
manager.defineConfiguration(newCacheName, c);
Cache<String, String> cache = manager.getCache(newCacheName);
1
使用名为"replicatedCache"的缓存配置作为基础。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.