4.3. キャッシュプログラムによる設定
Cache Manager でキャッシュ設定を定義します。
注記
このセクションの例では、クライアントと同じ JVM で実行する Cache Manager である EmbeddedCacheManager を使用します。
HotRod クライアントでキャッシュをリモートで設定するには、RemoteCacheManager を使用します。詳細は、HotRod のドキュメントを参照してください。
新しいキャッシュインスタンスの設定
以下の例では、新しいキャッシュインスタンスを設定します。
EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml");
Cache defaultCache = manager.getCache();
Configuration c = new ConfigurationBuilder().clustering()
.cacheMode(CacheMode.REPL_SYNC)
.build();
String newCacheName = "replicatedCache";
manager.defineConfiguration(newCacheName, c);
Cache<String, String> cache = manager.getCache(newCacheName);
既存設定からの新規キャッシュの作成
以下の例では、既存のキャッシュ設定から新しいキャッシュ設定を作成します。
EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml");
Configuration dcc = manager.getDefaultCacheConfiguration();
Configuration c = new ConfigurationBuilder().read(dcc)
.clustering()
.cacheMode(CacheMode.DIST_SYNC)
.l1()
.lifespan(60000L)
.build();
String newCacheName = "distributedWithL1";
manager.defineConfiguration(newCacheName, c);
Cache<String, String> cache = manager.getCache(newCacheName);
EmbeddedCacheManager manager = new DefaultCacheManager("infinispan-prod.xml");
Configuration rc = manager.getCacheConfiguration("replicatedCache");
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" という名前のキャッシュ設定をベースとして使用します。