*Redis DECRBY 命令

DECRBY 将指定 key 的整数值减去给定的减量值。


*语法

DECRBY key decrement

*参数说明

参数 类型 必填 说明
key String 键名
decrement Integer 要减去的整数值

*返回值

返回减去后的新值(整数);如果 key 不存在,先将其视为 0 再执行减法。


*时间复杂度

O(1)

*

*示例

*基本用法

> SET count 100
OK
> DECRBY count 20
(integer) 80

*对不存在的 key 操作

> DECRBY new_count 5
(integer) -5

*负减量

> DECRBY count -10
(integer) 90

*常见错误

错误 原因 解决
ERR value is not an integer or out of range 当前值不是整数或超出 64 位有符号范围 确保 key 存储的是合法整数字符串
ERR wrong number of arguments 缺少参数 必须提供 key 和 decrement

*最佳实践

  • 常用于计数器扣减,如库存减少、积分扣除。
  • 如果要减 1,可直接使用 DECR,语义更清晰。
  • 注意 DECRBY key -5 等效于 INCRBY key 5。

*FAQ

DECRBY 和 DECR 有什么区别? DECR 固定减 1;DECRBY 可指定任意减量。

key 不存在时会怎样? 视为 0 再减,结果为 -decrement。

支持浮点数吗? 不支持;浮点数请使用 DECRBYFLOAT。