*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
*常见错误
- field 值非整数:返回错误。
- 溢出 64 位整数范围:返回错误。
*最佳实践
- 原子库存扣减:HINCRBY 实现 Hash 内的原子计数器,适合存储多 SKU 库存。
- 统计聚合:用户维度统计(如每日点赞数、阅读数)用 Hash 聚合,HINCRBY 原子更新。
*FAQ
Q: HINCRBY 和 HINCRBYFLOAT 有什么区别? A: HINCRBY 操作整数;HINCRBYFLOAT 操作浮点数。
Q: HINCRBY 的 field 不存在怎么办? A: 自动创建 field 并设为 0,再递增。若 key 不存在则创建新 Hash。