Latest web development tutorials

MemcachedのCASコマンド

MemcachedのCAS(チェック・アンド・セットまたはコンペアとスワップ)コマンドは、「チェックと設定」操作を実行するために使用されます

これは、現在のクライアントだけ最後の値は、他のクライアントが値を書き込むことができるように修正されていない場合に対応するキー値の後です。

チェックがcas_tokenパラメータによって行われ、このパラメータは既存の要素に割り当てられた固有の64ビット値Memcachです。

構文:

次のように基本的な構文のCASコマンドは次のとおりです。

cas key flags exptime bytes unique_cas_token [noreply]
value

パラメータは以下のとおりです。

  • キー:キーのキーと値の構造のキーは、キャッシュ値を見つけるために使用されます。
  • フラグ:クライアントがキーと値のペアについての追加情報を格納するためにそれを使用して、整数パラメータのキーと値のペアを含むことができます。
  • EXPTIME:(秒単位で、0は永遠を意味する)キャッシュ内の時間の長さをキーと値のペアを保存
  • バイト:キャッシュに格納されたバイト数
  • コマンドを介して取得したunique_cas_tokenは、ユニークな64ビットの値を取得します。
  • noreply(オプション):このパラメータは、サーバがデータを返す必要はありません伝えます
  • 値:格納された値は、(常に2行目にあります)(直接キーと値の構造値として理解することができます)

CASは、Memcachedの上でコマンドを使用するには、コマンドを取得を通じてMemcachedのサービスプロバイダからのトークン(トークン)を取得する必要があります。

機能は同じような基本的なgetコマンドをコマンド取得します。 64ビットの整数値を非常に多くの名前/値ペア "バージョン"識別子のように:2つのコマンドの違いは、もう少し情報が返される、ということです。

次の手順の例:

  • あなたはユニークなトークン、CASコマンド実行エラーを設定しない場合。
  • キー、キーが存在しない場合は、実行に失敗しました。
  • キーと値のペアを追加します。
  • ゲット固有のトークンコマンドはを通じて取得します。
  • データを更新するためのCASコマンドを使用して
  • データの更新を表示するには、getコマンドを使用するかどうか
cas tp 0 900 9
ERROR             <− 缺少 token

cas tp 0 900 9 2
memcached
NOT_FOUND         <− 键 tp 不存在

set tp 0 900 9
memcached
STORED

gets tp
VALUE tp 0 9 1
memcached
END

cas tp 0 900 5 1
redis
STORED

get tp
VALUE tp 0 5
redis
END

輸出

データが正常に追加された場合、出力:

STORED

出力情報説明:

  • STORED:正常に保存された出力後。
  • ERROR:エラーまたは構文エラーを保存します。
  • EXISTS:他のユーザーがデータを更新しているの最後の値の後に。
  • NOT_FOUND:このキーは、Memcachedのサービスに存在しません。