*Redis HINCRBYFLOAT 命令

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


*语法

HINCRBYFLOAT key field increment

*参数说明

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

*返回值

条件 返回值
递增成功 返回新的 value(String,浮点数字符串)
field 不存在 先设为 0.0 再递增

*时间复杂度

O(1)

*

*示例

> HSET product:1001 price 19.99
(integer) 1

> HINCRBYFLOAT product:1001 price 5.00
"24.99"

> HINCRBYFLOAT product:1001 price -2.50
"22.49"

# field 不存在
> HINCRBYFLOAT product:1001 discount 0.1
"0.1"

*常见错误

  1. field 值非数字:返回错误。

*最佳实践

  1. 价格/金额计算:存储商品金额、用户余额等浮点数值,原子增减。
  2. 精度问题:浮点数有精度限制,金额计算建议用整数分(如 1999 代表 19.99 元),用 HINCRBY

*FAQ

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

Q: 浮点数精度问题怎么解决? A: 金额等精确计算建议用整数存储(如分),避免浮点误差。