Use DECR to subtract one from the integer stored at a key and get the result.
A missing key counts as 0, so the first call leaves -1. The value must be the string form of a 64-bit signed integer; anything else returns an error, as does an operation that would go below the minimum. The read, the subtraction, and the write happen atomically, so concurrent callers each get a distinct value and no decrement is lost, which is what makes it safe for counting down remaining quota or stock.
Syntax#
Arguments#
| Argument | Required | Repeatable | Description |
|---|---|---|---|
<key> | Yes | No | Redis key targeted by the command. |
Response#
The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.
| Protocol | Reply |
|---|---|
| RESP2 | Integer |
| RESP3 | Integer |
Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.
Examples#
TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.