*Redis HINCRBY 命令

对 Hash 中指定 field 的整数值做增量添加。


*语法

HINCRBY key field increment

*参数说明

参数 类型 必填 说明
key String Hash 的键名
field String 字段名
increment Integer 增量值,可为负数

*返回值

条件 返回值
递增成功 返回递增后的新值(Integer)
field 不存在 先设为 0 再递增

*时间复杂度

O(1)

*

*示例

> HSET product:1001 stock 100
(integer) 1

> HINCRBY product:1001 stock -1
(integer) 99

> HINCRBY product:1001 views 1
(integer) 1

# 负数递减
> HINCRBY product:1001 stock -5
(integer) 94

*常见错误

  1. field 值非整数:返回错误。
  2. 溢出 64 位整数范围:返回错误。

*最佳实践

  1. 原子库存扣减:HINCRBY 实现 Hash 内的原子计数器,适合存储多 SKU 库存。
  2. 统计聚合:用户维度统计(如每日点赞数、阅读数)用 Hash 聚合,HINCRBY 原子更新。

*FAQ

Q: HINCRBY 和 HINCRBYFLOAT 有什么区别? A: HINCRBY 操作整数;HINCRBYFLOAT 操作浮点数。

Q: HINCRBY 的 field 不存在怎么办? A: 自动创建 field 并设为 0,再递增。若 key 不存在则创建新 Hash。