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);
1
新しい設定オブジェクトを作成します。
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" という名前のキャッシュ設定をベースとして使用します。