---
acl_categories:
- '@write'
- '@string'
- '@fast'
arguments:
- display_text: key
key_spec_index: 0
name: key
type: key
arity: 2
categories:
- docs
- develop
- stack
- oss
- rs
- rc
- oss
- kubernetes
- clients
command_flags:
- write
- denyoom
- fast
complexity: O(1)
description: Decrements the integer value of a key by one. Uses 0 as initial value
if the key doesn't exist.
group: string
hidden: false
key_specs:
- RW: true
access: true
begin_search:
spec:
index: 1
type: index
find_keys:
spec:
keystep: 1
lastkey: 0
limit: 0
type: range
update: true
linkTitle: DECR
railroad_diagram: /images/railroad/decr.svg
since: 1.0.0
summary: Decrements the integer value of a key by one. Uses 0 as initial value if
the key doesn't exist.
syntax_fmt: DECR key
title: DECR
---
Decrements the number stored at `key` by one.
If the key does not exist, it is set to `0` before performing the operation.
An error is returned if the key contains a value of the wrong type or contains a
string that can not be represented as integer.
This operation is limited to **64 bit signed integers**.
See [`INCR`]({{< relref "/commands/incr" >}}) for extra information on increment/decrement operations.
## Examples
{{% redis-cli %}}
SET mykey "10"
DECR mykey
SET mykey "234293482390480948029348230948"
DECR mykey
{{% /redis-cli %}}
## Redis Software and Redis Cloud compatibility
| Redis
Software | Redis
Cloud | Notes |
|:----------------------|:-----------------|:------|
| ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | |
## Return information
{{< multitabs id="decr-return-info"
tab1="RESP2"
tab2="RESP3" >}}
[Integer reply](../../develop/reference/protocol-spec#integers): the value of the key after decrementing it.
-tab-sep-
[Integer reply](../../develop/reference/protocol-spec#integers): the value of the key after decrementing it.
{{< /multitabs >}}