ERR increment or decrement would overflow: ERR: инкремент или декремент вызвал бы переполнение
RedisЧто это значит?
INCR/DECR (или INCRBY/DECRBY) отклонён, поскольку результат вышел бы за пределы диапазона 64-битного знакового целого. Значение превысило бы верхнюю или нижнюю границу.
Почему возникает?
Значение ключа очень близко к пределу int64 (около 9,2 квинтиллиона), так что инкремент/декремент вызывает переполнение, очень большой аргумент INCRBY или неконтролируемо растущий счётчик.
Как исправить
Проектируйте значения счётчиков так, чтобы они оставались в пределах int64. Для больших счётчиков применяйте масштабирование или периодический сброс. Держите приращение (аргумент INCRBY) в разумном диапазоне. Если требуются очень большие значения, используйте другую стратегию подсчёта на уровне приложения.
Ещё по этой СУБД
- NOPERMNOPERM: у этого пользователя нет прав на выполнение команды или доступ к одному из ключей
- ERR value is not an integer or out of rangeERR: значение не является целым числом или вне диапазона
- ERR value is not a valid floatERR: значение не является допустимым float
- ERR max number of clients reachedERR: достигнуто максимальное число клиентов
- BUSYKEYBUSYKEY: целевое имя ключа уже существует
- ERR no such keyERR: такого ключа нет
- ERR DUMP payload version or checksum are wrongERR: неверная версия или контрольная сумма полезной нагрузки DUMP