DECRを返す

Decrwo Fansu



Redis 整数操作

文字列型は、Redis が提供する最も基本的なデータ型です。 Redis 文字列は、テキスト、シリアル化された JSON オブジェクト、画像、音声、さらには数値を格納できます。このガイドでは、数値と整数の操作に焦点を当てます。 Redis は、数値データを保持するための個別の整数データ型をサポートしていません。 Redis キーに整数として表現できる文字列が含まれている場合、Redis は数値を base-10 の 64 ビット符号付き整数として解釈できます。


数値操作は、どのデータベースにもある非常に便利な機能です。 Redis は、INCR、DECR、INCRBY などの整数型を操作するための便利な操作をいくつか提供しています。このガイドでは、整数型を操作する DECR コマンドについて詳しく説明します。







DECR コマンド

DECR コマンドは、特定のキーに格納されている数値を 1 減らすために導入されました。これは、base-10 の 64 ビット整数として表現できる文字列値に対してのみ機能します。 DECR コマンドは、非文字列値または整数として表現できない文字列値に対してエラーをスローします。



以下は、DECR コマンドの構文です。



DECR キー


鍵: 文字列値を保持するキー。





DECR コマンドは、デクリメント操作の後、結果の符号付き整数を返します。指定されたキーが存在しない場合、コマンドは値を 0 に設定してから 1 減らします。また、値が文字列以外の場合、または 64 ビットの符号付き整数として表現できない場合、エラーがスローされます。このコマンドは、非常に高速な一定時間の複雑さ (O(1)) で動作します。

ユース ケース – オンライン ゲームでプレイヤーの体力を減らす

メディパックが公開されると、各プレイヤーのヘルスが 1 ずつ増加するオンライン ゲームを想定してみましょう。同様に、プレイヤーが転んだり、他のプレイヤーに打たれたりすると、ヘルスが 1 減少します。



プレイヤーの健康を保存する理想的な候補は、健康を整数として保存できる Redis 文字列型です。鍵を作ろう ヘルス:playerID:1 その値を 10 に設定します。次のように SET コマンドを使用できます。

設定 ヘルス:プレーヤーID: 1 10



GET コマンドを使用して、格納されている値を確認できます。 ヘルス:playerID:1。

ヘルスを取得:playerID: 1



ID 1 のプレイヤーが攻撃を受け、ヘルスが 1 減少したとします。 DECR コマンドは次のように使用できます。

Decr health:playerID: 1


予想どおり、次の図に示すように、DECR コマンドはデクリメント操作の後に更新された値を出力します。


また、キーに格納されている値を調べることもできます ヘルス:playerID:1 GET コマンドで。

ヘルスを取得:playerID: 1



予想通り、値が 1 減少しました。

DECR 演算子は、負の数でも有効です。キーに新しい負の数値を格納しましょう 負:値1 .

設定 負:値1 -3


次のように GET コマンドを使用して値を調べることができます。

負の値を取得:value1



次のコマンドは、キーで DECR コマンドを使用する方法を示しています。 負:値1:

decr マイナス:value1


非整数値に対する DECR コマンド

文字列以外のデータ型または整数として表現できない文字列を保持する Redis キーで DECR コマンドを使用しようとすると、いくつかの特殊なケースがあります。次の例に示すように、DECR コマンドはこれらの場合にエラーをスローします。

設定 notAnIntergerVal こんにちは


「こんにちは」は、符号付き整数に変換できないテキストです。したがって、このキーに対して DECR コマンドを呼び出すと、エラーが発生します。

decr notAnIntergerVal


存在しないキーに対する DECR コマンド

場合によっては、Redis データ ストアに存在しないキーに対して DECR コマンドを呼び出すことがあります。そのため、コマンドは指定されたキーを作成し、その値を整数 0 に設定します。同時に、値が 1 減少します。

decr 存在しないキー


予想通り、出力は -1 です。


全体として、DECR コマンドは、低遅延アプリケーションでカウンターを実装するのに非常に役立ちます。

結論

要約すると、DECR は、特定の Redis キーに格納されている数値を操作するコマンドの 1 つです。 Redis は個別の整数データ型をサポートしていません。そのため、文字列型は数値を保持するためにも使用されます。調べたように、文字列値を 64 ビットの符号付き整数として表すことができる場合、DECR コマンドを使用してその値を減らすことができます。最も重要なことは、一定の時間の複雑さで動作することです。また、DECR コマンドは、カウンタの実装に広く使用されています。