16.2.3 データ操作に関する留意事項
- 〈この項の構成〉
(1) データ操作に関する留意事項
データ操作に関する留意事項を次に示します。
-
指定したkeyがすでにキャッシュに格納されている場合,put()は無条件にvalueを更新します。無条件にvalueを更新したくない場合は,次のメソッドを使用してください。
-
create()
新規にkeyを格納する場合だけ,valueをkeyに関連づけて格納します。
-
update()
指定したkeyがすでに格納されている場合だけ,valueをkeyに関連づけて格納します。
-
replace()
指定したkeyに関連づけられているvalueを,条件として指定したvalue(comparativeValue)と比較します。valueが一致している場合だけ,valueをkeyに関連づけて格納します。
-
-
get()の実行時に指定したkeyがキャッシュに存在しない場合は,nullが返却されます。
-
replace()の実行時に指定したkeyが存在しない場合は,CacheException.EAD_ERROR_SERVER_REPLACE_METHOD_KEY_NOT_EXISTが返却されます。
-
replace()の実行時に比較結果が一致しなかった場合はCacheException.EAD_ERROR_SERVER_REPLACE_METHOD_NOT_MATCHEDが返却されます。
-
create()の実行時に指定したkeyがすでに存在している場合は,CacheException.EAD_ERROR_SERVER_CREATE_METHOD_KEY_EXISTが返却されます。
-
update()の実行時に指定したkeyが存在しない場合は,CacheException.EAD_ERROR_SERVER_UPDATE_METHOD_KEY_NOT_EXISTが返却されます。
(2) データの一括操作に関する留意事項
データの一括操作に関する留意事項を次に示します。
-
指定したkeyがすでにキャッシュに格納されている場合,putAll()は無条件にvalueを更新します。
-
キャッシュの操作中に排他処理はされません。そのため,一括操作中に,ほかのキャッシュ操作によって操作対象のvalueが変更されることがあります。
-
大量のデータを一括操作する場合,EADSクライアントおよびEADSサーバでメモリが大量に消費されることがあります。
-
大量のデータを一括操作する場合,操作の完了までに時間が掛かることがあります。そのため,タイムアウト時間を適切に設計してください。
-
複数のkeyを指定する一括操作の実行時に,あるkeyに対する操作に失敗した場合やクラスタ構成が変更された場合は,一括操作の処理が終了し,その時点で未実行の操作がキャンセルされます。一括操作中に,ユーザの操作(例:スケールアウト処理,リバランス処理,または復旧処理)によってクラスタ構成が変更された場合も,未実行の操作がキャンセルされます。
操作に失敗したkeyおよび失敗した要因については,各APIの戻り値から判断してください。また,操作がキャンセルされたkeyについては,CacheException.EAD_ERROR_CLIENT_BATCH_CANCELのエラーコードで確認できます。
-
複数のkeyを指定する一括操作の実行時に,keyに対する操作がすべて失敗した場合は,CacheException.EAD_ERROR_BATCH_FAILED_ALLが返却されます。
-
複数のkeyを指定する一括操作の実行時に,keyに対する操作が部分的に失敗した場合は,CacheException.EAD_ERROR_BATCH_FAILED_PARTが返却されます。