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" という名前のキャッシュ設定をベースとして使用します。