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() 1
.cacheMode(CacheMode.REPL_SYNC) 2
.build();
String newCacheName = "replicatedCache";
manager.defineConfiguration(newCacheName, c); 3
Cache<String, String> cache = manager.getCache(newCacheName);既存設定からの新規キャッシュの作成
以下の例では、既存のキャッシュ設定から新しいキャッシュ設定を作成します。
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);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" という名前のキャッシュ設定をベースとして使用します。