4 Ways to Decrement a Key in Redis

In Redis, we have several options for decrementing a key. By this, I mean, reducing the value of a key by one or more. For example, if we set a key to 15, we can decrement it by 1 to make 14. Or we can increment it by whatever amount we desire.

The DECR Command

Our first option is to use the DECR command. This command decrements the key by one. If the key doesn’t exist, it’s created with a value of 0, then decremented by 1.

Suppose we create the following key:

SET score 50

Result:

OK

Here’s an example of using DECR to decrement that value by one:

DECR score

Result:

(integer) 49

This command returns the value of the key after the decrement has taken place. So if we run the same command again, we get the following:

DECR score

Result:

(integer) 48

The DECRBY Command

Another option is to use the DECRBY command. This command decrements the key’s value by a specified amount. If the key doesn’t exist, it’s created with a value of 0, then decremented by the specified amount.

Here’s an example of using DECRBY on the same key and value from the previous example:

DECRBY score 10

Result:

(integer) 38

This command returns the value of the key after the decrement has taken place. In this case the initial value was 48, and we decremented it by 10.

The INCRBY Command

If we pass a negative value to the INCRBY command, it has the effect of decrementing the value.

Here’s an example of using INCRBY with a negative argument:

INCRBY score -2

Result:

(integer) 36

In this case we used -2 which decremented the value by 2.

The INCRBYFLOAT Command

If you’re working with floating point numbers, you can use the INCRBYFLOAT command. This command is similar to INCRBY except that it works on floating point numbers, and also allows you to increment by a floating point number.

We can pass a negative value to this command to decrement the value:

INCRBYFLOAT score -10.45

Result:

"25.55"