INCRBYFLOAT
命令可以把一个浮点数增量加到字符串键储存的数字值上面,并返回键在执行加法操作之后的数字值作为命令的返回值。
以下代码展示了如何使用 INCRBYFLOAT
命令去增加一个浮点数的值:
- redis> SET decimal 3.14 -- 一个储存着浮点数值的键
- OK
- redis> GET decimal
- "3.14"
- redis> INCRBYFLOAT decimal 2.55 -- 将键 decimal 的值加上 2.55
- "5.69"
- "5.69"
INCRBYFLOAT
命令在遇到不存在的键时,会先将键的值初始化为 0
,然后再执行相应的加法操作。
在以下展示的代码里面,INCRBYFLOAT
命令就是先把 x-point
键的值初始化为 ,然后再执行加法操作的:
以下代码展示了如何使用 INCRBYFLOAT
命令执行浮点数减法计算:
- redis> SET pi 3.14
- OK
- redis> GET pi
- "3.14"
- redis> INCRBYFLOAT pi -1.1 -- 值减去 1.1
- "2.04"
- redis> INCRBYFLOAT pi -0.7 -- 值减去 0.7
- "1.34"
- redis> INCRBYFLOAT pi -1.3 -- 值减去 1.3
INCRBYFLOAT
命令对于类型限制的要求比 命令和 INCR
命令要宽松得多,INCRBYFLOAT
命令不仅可以用于处理浮点数值,它还可以用于处理整数值:
INCRBYFLOAT
命令既可用于浮点数值,也可以用于整数值。INCRBYFLOAT
命令的增量既可以是浮点数,又可以是整数。
以下代码展示了如何使用 INCRBYFLOAT
去处理一个储存着整数值的键:
以下代码展示了如何使用整数值作为 INCRBYFLOAT
命令的增量:
- redis> SET pi 3.14
- OK
- redis> GET pi
- "3.14"
- redis> INCRBYFLOAT pi 20 -- 增量为整数值
- "23.14"
而以下代码则展示了 INCRBYFLOAT
命令是如何把计算结果储存为整数的:
虽然 Redis 并不限制字符串键储存的浮点数的小数位长度,但是在使用 命令处理浮点数的时候,命令最多只会保留计算结果小数点后的 17 位数字,超过这个范围的小数将被截断:
- redis> GET i
- "0.01234567890123456789" -- 这个数字的小数部分有 20 位长
- "0.01234567890123457" -- 执行加法操作之后,小数部分只保留了 17 位