计数:增量 和 减量

2020-12-08  本文已影响0人  闲云野鹤_23dd

INCRBY

INCR key 增量数字

为键 key 储存的数字值加上增量 数字 。

如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 INCRBY 命令。
如果键 key 储存的值不能被解释为数字, 那么 INCRBY 命令将返回一个错误。

例子:
键存在,并且值为数字:

redis> SET rank 50
OK

redis> INCRBY rank 20
70

redis> GET rank
"70"

键不存在:

redis> EXISTS counter
0

redis> INCRBY counter 30
30

redis> GET counter
"30"

键存在,但值无法被解释为数字:

redis> SET book "long long ago..."
OK
redis> INCRBY book 200
(error) ERR value is not an integer or out of range

INCRBYFLOAT

INCRBYFLOAT key 增量小数

为键 key 储存的值加上浮点数增量小数。

如果键 key 不存在, 那么 INCRBYFLOAT 会先将键 key 的值设为 0 , 然后再执行加法操作。
如果命令执行成功, 那么键 key 的值会被更新为执行加法计算之后的新值, 并且新值会以字符串的形式返回给调用者。
无论加法计算所得的浮点数的实际精度有多长, INCRBYFLOAT 命令的计算结果最多只保留小数点的后十七位。

当以下任意一个条件发生时, 命令返回一个错误:
键 key 的值不是字符串类型(因为 Redis 中的数字和浮点数都以字符串的形式保存,所以它们都属于字符串类型);
键 key 当前的值或者给定的增量小数 不能被解释(parse)为双精度浮点数。

例子:

redis> GET counter
"30"

redis> INCRBYFLOAT counter 2.56
"32.56"

redis> GET counter
"32.56"

DECRBY

DECRBY key 减量

将键 key 储存的整数值减去减量 decrement 。

如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 DECRBY 命令。
如果键 key 储存的值不能被解释为数字, 那么 DECRBY 命令将返回一个错误。
DECRBY 命令会返回键在执行减法操作之后的值。

例子:
对已经存在的键执行 DECRBY 命令:

redis> SET count 100
OK
redis> DECRBY count 20
80

对不存在的键执行 DECRBY 命令:

redis> EXISTS pages
0

redis> DECRBY pages 10
-10
上一篇下一篇

猜你喜欢

热点阅读