Redis: значение хеша ERR не является целым числом - PullRequest
0 голосов
/ 24 сентября 2018

Иногда я получаю следующую ошибку при попытке увеличить значение в хэш-поле.

{ 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        
});

Я получил некоторую подсказку, прочитав, что этоошибка из-за сериализации, но я не получил, где именно, потому что эта ошибка не генерируется все время.

1 Ответ

0 голосов
/ 24 сентября 2018

Значение хеша 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

Этокажется, что какой-то другой клиент изменил поле хеша на строковое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...