GAEのmemcahe APIのput(...)
メソッドは、引数として(オーバーロードされた実装の1つで)SetPolicy
引数を受け取ります。 Javadocs hereでは、ポリシーとして「ADD_ONLY_IF_NOT_PRESENT」を選択した場合、私は引用します。GAEのmemcacheの動作+ ADD_ONLY_IF_NOT_PRESENT
「競合状態を避けるために役立ちます。
私の質問は以下のとおりです。
同じキーで設定された有効期限の切れた値でhappends何? memcacheに(key = 1、value = whatever)のようなものを追加すると、このエントリの有効期限が切れ、ADD_ONLY_IF_NOT_PRESENTを使って(キャッシュ= 1、値= whatever2)キャッシュに追加されたwhatever2が追加されます。
「競合状態には便利です」とはどういう意味ですか?具体的には、
put(...)
とADD_ONLY_IF_NOT_PRESENT
SetPolicyを使用した場合、stuffを同時にmemcacheに追加する際の競合状態を避けるため、getIdentifiableとputIfUntouchedを使用する必要はありませんか?
Thanx、これは非常に明確な答えです。しかし、putIfUntouchedとgetIdentifiableを使うのはちょっと面倒です。これは、putIfUntouchedメソッドで使用するために、特定のキーで取得した最後のオブジェクトをすべてローカルに(現在のアプリケーションインスタンスに)格納する必要があることを意味します。 。 –