Memcached CAS コマンド
Memcached CAS (Check-And-Set または Compare-And-Swap) コマンドは、「チェック アンド セット」操作を実行するために使用されます
最後のキーの後にキーに対応する値が取得できなかった場合にのみ使用されます現在のクライアントが値を取得した時刻。値は他のクライアントによって変更された場合にのみ書き込めます。
チェックは、Memcach が既存の要素に割り当てる一意の 64 ビット値である cas_token パラメーターを介して実行されます。
構文:
CAS コマンドの基本構文形式は次のとおりです:
cas key flags exptime bytes unique_cas_token [noreply] value
パラメータの説明は次のとおりです:
key: キー値 キーと値の構造内のキーは、検索に使用されます。キャッシュ値。
flags: キーと値のペアを含めることができる整数パラメーター。クライアントがキーと値のペアに関する追加情報を保存するために使用します。 。
exptime: キーと値のペアをキャッシュに保持する期間 (秒単位、0 は永久を意味します)
bytes: キャッシュに格納されているバイト数
unique_cas_token gets コマンドを通じて取得される一意の 64 ビット値。
noreply (オプション): このパラメータは、データを返す必要がないことをサーバーに伝えます
value: 格納されている値 (常に 2 行目にあります) (キーと値の構造の値)
Instance
Memcached で CAS コマンドを使用するには、gets コマンドを通じて Memcached サービス プロバイダーからトークンを取得する必要があります。
gets コマンドは、基本的な get コマンドと同様に機能します。 2 つのコマンドの違いは、get の方がわずかに多くの情報 (名前と値のペアの「バージョン」識別子によく似た 64 ビット整数値) を返すことです。
手順の例は次のとおりです:
固有トークンが設定されていない場合、CASコマンド実行エラーが発生します。
キー key が存在しない場合、実行は失敗します。
キーと値のペアを追加します。
gets コマンドを使用して一意のトークンを取得します。
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 : 保存に成功した後に出力されます。
エラー: 保存エラーまたは構文エラー。
EXISTS: 別のユーザーも最後の値の後のデータを更新しています。
NOT_FOUND: キー値が Memcached サービスに存在しません。