Redis DECR 命令用于将 Redis 中的 KEY 中储存的数字值减一。如果 KEY 不存在,那么 KEY 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或 字符串类型 的值不能表示为数字,那么返回一个错误。该操作支持的最大值为 64 位(bit)有符号数。
192.168.98.70:6379> DECR KEY
参数 | 作用 |
---|---|
KEY | 需要减少值的 KEY |
执行 DECR 命令之后 KEY 的值。
O(1)
>= 1.0.0
当 KEY 不存在时,会被作为 0 处理
# KEY 不存在
192.168.98.70:6379> EXISTS haicoder.net
(integer) 0
192.168.98.70:6379> DECR haicoder.net
(integer) -1
192.168.98.70:6379> GET haicoder.net
"-1"
192.168.98.70:6379> DEL haicoder.net
(integer) 1
我们首先,使用 EXISTS 命令,判断 haicoder.net 不存在。接着,使用 DECR 命令,将不存在的 haicoder.net 的值减 1 。
最后,使用 GET 命令,获取 haicoder.net 的值为 -1,说明不存在的 KEY 被 DECR 操作时当做了 0 处理 。
当 KEY 存在时,会将相应的值减 1
# KEY 存在
192.168.98.70:6379> SET haicoder.net 100
OK
192.168.98.70:6379> DECR haicoder.net
(integer) 99
192.168.98.70:6379> DECR haicoder.net
(integer) 98
192.168.98.70:6379> DECR haicoder.net
(integer) 97
192.168.98.70:6379> DEL haicoder.net
(integer) 1
我们首先,使用 SET 命令,设置 haicoder.net 的值为 100。接着,使用 DECR 命令,将 haicoder.net 的值减 1 ,此时值变成了 99。
最后,再次使用 DECR 命令,将 haicoder.net 的值减 1 ,此时值变成了 98。再次使用 DECR 命令,将 haicoder.net 的值减 1 ,此时值变成了 97。
当 KEY 为非数值型,会报错
# 非数值型
192.168.98.70:6379> SET haicoder.net Redis
OK
192.168.98.70:6379> DECR haicoder.net
(error) ERR value is not an integer or out of range
192.168.98.70:6379> DEL haicoder.net
(integer) 1
我们首先,使用 SET 命令,设置 haicoder.net 的值为 Redis。最后,使用 DECR 命令,将 haicoder.net 的值减 1 ,此时直接报错。
Redis DECR 命令用于将 Redis 中的 KEY 中储存的数字值减一。Redis DECR 命令语法:
192.168.98.70:6379> DECR KEY