INCRBYFLOAT

语法
INCRBYFLOAT key increment
可用版本
Redis 开源版 2.6.0
时间复杂度
O(1)
ACL 类别
@write, @string, @fast,

将存储在 key 处的表示浮点数的字符串值按指定的 increment 值进行递增。如果使用负数的 increment 值,则结果是存储在键上的值会被递减(根据加法的显而易见的性质)。如果键不存在,则在执行操作之前将其设置为 0。如果发生以下任一情况,将返回错误:

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

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

字符串键中已包含的值和递增参数都可以可选地以指数记法提供,然而递增后计算出的值将始终以相同的格式存储,即一个整数,后跟(如果需要)一个点,以及表示数字小数部分的变长数字序列。末尾的零总是被移除。

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

示例

SET mykey 10.50 INCRBYFLOAT mykey 0.1 INCRBYFLOAT mykey -5 SET mykey 5.0e3 INCRBYFLOAT mykey 2.0e2

实现细节

该命令总是作为 SET 操作传播到复制链接和 AOF(Append Only File)文件,这样底层浮点数学实现的差异就不会导致不一致。

RESP2/RESP3 回复

批量字符串回复:递增后键的值。
评价本页
返回顶部 ↑