INCRBYFLOAT

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

语法

INCRBYFLOAT key increment

引入版本:2.6.0

复杂度摘要:O(1)

将表示存储在 key 中的浮点数的字符串增加指定的 increment。通过使用负 increment 值,结果是存储在键中的值会递减(通过加法的明显属性)。如果该键不存在,则在执行操作之前将其设置为 0。如果发生以下情况之一,则返回错误:

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

如果命令成功,则新增加的值将存储为键的新值(替换旧值),并作为字符串返回给调用者。

字符串键中已包含的值和增量参数都可以选择以指数表示法提供,但是增量后计算的值以相同的格式一致存储,即一个整数后面(如果需要)加一个点,以及表示该数字的小数部分的可变位数。尾随零始终被删除。

无论计算的实际内部精度如何,输出的精度固定为小数点后 17 位。

必需参数

key

键名称。

increment

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

示例

redis> SET mykey 10.50
OK
redis> INCRBYFLOAT mykey 0.1
"10.6"
redis> INCRBYFLOAT mykey -5
"5.6"
redis> SET mykey 5.0e3
OK
redis> INCRBYFLOAT mykey 2.0e2
"5200"

详细说明

实施

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

Redis Software 与 Redis Cloud 兼容性

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

返回值

RESP2

批量字符串回复:递增后key的值。

RESP3

批量字符串回复:递增后key的值。

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