DBAtlas · Атлас эксплуатации баз данных

ERR bit offset is not an integer or out of range: Bit offset is not an integer or out of range

Redis

Что это значит?

Смещение бита, переданное битовой операции, такой как SETBIT/GETBIT/BITCOUNT, недопустимо: оно не целое или находится вне допустимого диапазона. Redis не может выполнить битовую операцию по этому смещению.

Почему возникает?

Передача нечислового значения в качестве смещения; использование отрицательного смещения; либо очень большое смещение, превышающее допустимую верхнюю границу (битовая строка может быть до 512 MB, т. е. около 2^32 бит). Возникает из-за ошибок расчёта в структурах счётчиков/флагов на основе битовых карт.

Как исправить

Убедитесь, что смещение — неотрицательное целое число в допустимом диапазоне (от 0 до ~2^32-1; строки не более 512 MB). Проверяйте расчёты смещений (например, получаемых из идентификаторов пользователей) на переполнение/отрицательные значения. Если нужны очень большие смещения, спроектируйте данные с разбиением на несколько ключей (шардинг).

Открыть в DBAtlas →

Ещё по этой СУБД