【发布时间】:2019-03-29 10:37:45
【问题描述】:
Redis incr 函数行为异常。尝试增加尚未设置的任何正整数键时,会导致以下错误。但是,当首先通过set 设置它然后使用incr 递增相同的键时,问题不再存在。它有这种行为的任何理由?有什么解决方法吗?
127.0.0.1:6379[5]> incr 100
(error) ERR value is not an integer or out of range
127.0.0.1:6379[5]> incr '100'
(error) ERR value is not an integer or out of range
127.0.0.1:6379[5]> incr "100"
(error) ERR value is not an integer or out of range
127.0.0.1:6379[5]> set 100 1
OK
127.0.0.1:6379[5]> incr 100
(integer) 2
此行为仅在递增不存在的整数键时才有效:
127.0.0.1:6379> get "ahmedov"
(nil)
127.0.0.1:6379> incr "ahmedov"
(integer) 1
127.0.0.1:6379> incr "ahmedov"
(integer) 2
127.0.0.1:6379> get 12.1
(nil)
127.0.0.1:6379> incr 12.1
(integer) 1
127.0.0.1:6379> get -1
(nil)
127.0.0.1:6379> incr -1
(integer) 1
【问题讨论】: