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) の非負整数であることを確認する。オフセットの計算 (例: ユーザー ID から導出したもの) がオーバーフロー/負の値にならないか検証する。非常に大きなオフセットが必要な場合は、データを複数のキーに分割する設計 (シャーディング) にする。

DBAtlas で開く →

同じデータベースの他の項目