今回は、Infinispan をライブラリモードでキャッシュを使用してみます。
デフォルト設定でキャッシュを作成し、そのキャッシュにmycache
という名前を付けます。そして、mycache
というキャッシュを取得します。最後にそのキャッシュにあるデータの件数やデータを取得・格納してみます。
ライブラリモードの環境構築についてはこちらを参照下さい。
Infinispan 10.1 の環境を構築する - #chiroito ’s blog
今回使うメソッドは以下のとおりです。
- データの件数を取得するには
Cache#size()
メソッドを使用します。 - データの取得には
Cache#get(K)
メソッドを使用し、Kには取得したいキーを指定します。 - データの格納には
Cache#put(K, V)
メソッドを使用し、Kには格納したいキー、Vには格納したい値を指定します。
import org.infinispan.Cache; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.manager.EmbeddedCacheManager; import java.io.IOException; public class EmbeddedSingleSample { public static void main(String[] args) { // ライブラリモードでやる時のおまじないです。 // ここではauto closeされるので、tryで囲わない場合は自分でcloseしてください。 try (EmbeddedCacheManager manager = new DefaultCacheManager()) { // キャッシュを定義(作成)します manager.defineConfiguration("mycache", new ConfigurationBuilder().build()); // キャッシュを取得します Cache<String, String> cache = manager.getCache("mycache"); // キャッシュのサイズを出力します。 System.out.println("Cache size is " + cache.size()); // キャッシュに入れてないデータがない事を確認します。 System.out.println("Value is " + cache.get("key")); // キャッシュにデータを入れます。 cache.put("key", "value"); // キャッシュのサイズを出力します。 System.out.println("Cache size is " + cache.size()); // キャッシュに入れたデータを確認します System.out.println("Value is " + cache.get("key")); } catch (IOException e) { e.printStackTrace(); } } }
出力結果は以下のとおりになります。最初のデータの件数は0で、値を取っても値がないのでnull
が返されます。次にデータを投入してから同様の処理をします。すると、データの件数は1件になり、値を取るとvalue
という値が返されています。
3 16, 2020 4:44:42 午後 org.infinispan.factories.GlobalComponentRegistry preStart INFO: ISPN000128: Infinispan version: Infinispan 'Turia' 10.1.3.Final Cache size is 0 Value is null Cache size is 1 Value is value