语法

1
INCRBY key increment

可用版本

≥ 1.0.0

时间复杂度

$O(1)$

ACL类别

@write@string@fast

key 中储存的数字加上指定的增量值。如果键不存在,则在执行操作前将其设置为 0。如果键包含一个错误类型的值或包含一个不能表示为整数的字符串,则返回错误。

该操作仅限于 64 位有符号的整数。

返回值

返回一个整数,表示加上指定的增量值之后的 key 值。

示例 1

以下例子演示了使用 INCRBY 命令对一个存储整数值的键进行加 2 操作:

1
2
3
4
5
redis> SET counter "1000"
OK
redis> INCRBY counter 2
(integer) 1002
redis>

示例 2

对一个不存在的键进行 INCRBY 操作:

1
2
3
4
5
6
7
redis> EXISTS total
(integer) 0
redis> INCRBY total 5
(integer) 5
redis> GET total
"5"
redis>

示例 3

对一个存储值不能表示为整数的字符串的键进行 INCRBY 操作:

1
2
3
4
5
redis> GET username
"Johnson"
redis> INCRBY username 20
(error) ERR value is not an integer or out of range
redis>

示例 4

对一个存储值类型为列表的键进行 INCRBY 操作:

1
2
3
4
5
6
7
redis> LPUSH list_key "Johnson"
(integer) 1
redis> TYPE list_key
list
redis> INCRBY list_key 2
(error) WRONGTYPE Operation against a key holding the wrong kind of value
redis>

示例 5

对一个存储了 64 位有符号整数最大值的键进行 INCRBY 操作:

1
2
3
4
5
redis> GET max_bigint
"9223372036854775807"
redis> INCRBY max_bigint 9
(error) ERR increment or decrement would overflow
redis>

(END)