HINCRBYFLOAT

将字段的浮点值增加一个数字。如果该字段不存在,则使用 0 作为初始值。

语法

HINCRBYFLOAT key field increment

引入版本:2.6.0

复杂度摘要:O(1)

将 key 中存储的哈希的指定 field 增加指定的 increment,该哈希表示浮点数。如果增量值为负,则结果是哈希字段值递减而不是增量。如果该字段不存在,则在执行操作之前将其设置为0。如果发生以下情况之一,则返回错误:

  • 键包含错误类型的值(不是哈希值)。
  • 当前字段内容或指定增量无法解析为双精度浮点数。

该命令的具体行为与 INCRBYFLOAT 命令的行为相同,请参阅 INCRBYFLOAT 的文档以获取更多信息。

必需参数

key

保存哈希值的键的名称。

field

其值要增加的字段。

increment

添加到字段值的浮点金额。相反,负值会减少该字段。

示例

redis> HSET mykey field 10.50
(integer) 1
redis> HINCRBYFLOAT mykey field 0.1
"10.6"
redis> HINCRBYFLOAT mykey field -5
"5.6"
redis> HSET mykey field 5.0e3
(integer) 0
redis> HINCRBYFLOAT mykey field 2.0e2
"5200"

实施细节

该命令始终作为 HSET 操作在复制链接和仅附加文件中传播,因此底层浮点数学实现中的差异不会成为不一致的根源。

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

批量字符串回复:自增操作后该字段的值。

RESP3

批量字符串回复:自增操作后该字段的值。

资料来源:Redis 官方 HINCRBYFLOAT 文档;中文内容参考 Redis 文档许可。