Hitachi

インメモリデータグリッド Hitachi Elastic Application Data Store ユーザーズガイド


16.1.1 キャッシュへのアクセスとデータ操作の流れ

キャッシュへのアクセスとデータ操作の流れについて説明します。

[図データ]

〈この項の構成〉

(1) Java言語を使用する場合のソースプログラムの例

Java言語を使用する場合のソースプログラムの例(keyとvalueを格納する場合)を次に示します。

// EADSが提供するパッケージをインポートする
import com.hitachi.software.xeads.client.api.*;
 
public class PutSample {
 
public static void main(String[] args) {
 
    // EADSクライアントの初期設定をする
 
    final String CONFPATH = "./conf/eads_sample_client.properties";
    final String CACHENAME = "cache1";
    CacheManager cacheManager = null;
    Cache cache = null;
 
    try {
        cacheManager = CacheManager.create(CONFPATH);
 
        // キャッシュへのアクセスを開始する
        cache = cacheManager.getCache(CACHENAME);
        System.out.println("cache start succeeded. (cache name = " + CACHENAME + ")");
 
        // keyとvalueを格納する
        final String KEY = "key1";
        final String VALUE = "value1";
 
        cache.put(KEY, VALUE);
        System.out.println("PUT succeeded. (key = " + KEY + ", value = " + VALUE + ")");
 
        String value = (String)cache.get(KEY);
        System.out.println("GET succeeded. (key = " + KEY + ", value = " + value + ")");
 
    } catch (CacheException e) {
        System.out.println("cache operation failed.(cache name = " + CACHENAME + ", error code = " + e.getErrorCode() + ")");
    }finally{
        if(cacheManager != null){
            // キャッシュへのアクセスを終了する
            if(cache != null){
                try{
                    cacheManager.removeCache(CACHENAME);
                    System.out.println("cache stop succeeded. (cache name = " + CACHENAME + ")");
                }catch(CacheException e){
                    System.out.println("CacheManager.removeCache() failed. (error code = " + e.getErrorCode() + ")");
                }
            }
            // EADSクライアントの使用を終了する
            try{
                cacheManager.destroy();
            }catch(CacheException e){
                System.out.println("CacheManager.destroy() failed. (error code = " + e.getErrorCode() + ")");
            }
        }
    }
}
}

(2) EADSが提供するパッケージをインポートする

EADSが提供する次のパッケージをインポートします。

import com.hitachi.software.xeads.client.api.*;

(3) EADSクライアントの初期設定をする

EADSクライアントの初期設定をするには,CacheManagerクラスのcreate()を使用して,CacheManagerクラスのインスタンスを生成します。

クライアント定義に従って,接続先EADSサーバなどが設定されます。

複数のクラスタと同時に接続するなど,設定の異なる複数のCacheManagerクラスのインスタンスを同時に使用したい場合は,クライアント定義を変更してCacheManagerクラスのcreate()を複数回実行します。複数回実行した場合は,取得した各CacheManagerクラスのインスタンスに対してCacheManagerクラスのdestroy()を実行して,EADSクライアントの使用を終了してください。

(4) キャッシュへのアクセスを開始する

EADSクライアントの初期設定が完了したら,キャッシュへのアクセスを開始します。

キャッシュへのアクセスを開始するには,CacheManagerクラスのgetCache()を使用して,データを操作するためのインスタンス(Cacheクラスのインスタンス)を生成します。

(5) keyとvalueを格納する

キャッシュにkeyとvalueを格納するには,Cacheクラスのput()を使用します。

put()には,キャッシュに格納するkeyとvalueを指定します。

(6) valueを取得する

キャッシュからvalueを取得するには,Cacheクラスのget()を使用します。

get()には,取得するvalueに関連づけられたkeyを指定します。

get()によってvalueの取得が成功すると,戻り値としてkeyに関連づけられたvalueが返却されます。

valueを取得する場合のソースプログラムの例を次に示します。

ソースプログラムの例(valueを取得する場合)

    // valueを取得する
    final String KEY = "key1";
    try {
        String value = (String) cache.get(KEY);
        System.out.println("GET succeeded. (key = " + KEY + ", value = " + value + ")");
    } catch (CacheException e) {
        int errcode = e.getErrorCode();
        System.out.println("GET failed. (key = " + KEY + ", error code = " + errcode + ")");
    }

(7) keyとvalueを削除する

キャッシュから指定したkey,およびkeyに関連づけられたvalueを削除するには,Cacheクラスのremove()を使用します。

remove()には,削除するvalueに関連づけられたkeyを指定します。

(8) ユーザファンクションを実行する

ユーザファンクションを実行するには,executeFunction()を使用します。

executeFunction()には,ユーザファンクションを実行するkeyまたはグループ名,もしくはNodeクラスのインスタンス,実行するユーザファンクション名,およびユーザファンクションに渡す引数を指定します。

executeFunction()によってユーザファンクションが実行されると,ユーザファンクションの実行結果が返却されます。

(9) キャッシュへのアクセスを終了する

キャッシュへのアクセスを終了するには,CacheManagerクラスのremoveCache()を使用します。

removeCache()には,アクセスを終了するキャッシュ名を指定します。

(10) EADSクライアントの使用を終了する

EADSクライアントの使用を終了するには,CacheManagerクラスのdestroy()を使用します。