有时我在尝试增加哈希字段中的值时遇到以下错误。
{ ReplyError: ERR hash value is not an integer
at parseError (/opt/node-app/node_modules/redis-parser/lib/parser.js:193:12)
at parseType (/opt/node-app/node_modules/redis-parser/lib/parser.js:303:14)
command: 'HINCRBY',
args: [ 'users:5b0598cd2f197a557e13e9d5', 'nTotalChips', 700 ],
code: 'ERR' }
我的代码如下:
redisClient.hincrby("users:5b0598cd2f197a557e13e9d5", "nTotalChips", 700, function(err, nTotalChips) {
//some other logic
});
通过读取这是由于序列化导致的错误,我得到了一些提示,但是我没有得到确切的位置,因为此错误并非一直产生。
答案 0 :(得分:2)
ERR哈希值不是整数
当您尝试增加不是整数的哈希字段时,这是一个错误。
127.0.0.1:6379> hset hash field 1
(integer) 0
127.0.0.1:6379> hincrby hash field 2 // OK
(integer) 3
127.0.0.1:6379> hset hash field string-value
(integer) 0
127.0.0.1:6379> hincrby hash field 2 // ERROR
(error) ERR hash value is not an integer
似乎其他一些客户端将哈希字段更改为字符串值。