DBAtlas · データベース運用アトラス

ERR Number of keys can't be greater than number of args: EVAL/EVALSHA: numkeys exceeds argument count(numkeys が引数の数を超えている)

Redis

意味

Lua スクリプト (EVAL/EVALSHA/FCALL) の実行時に、指定されたキー数 (numkeys) がコマンドに実際に渡された引数の数より大きい。KEYS と ARGV の配列を分割できないため、Redis はコマンドを拒否する。

原因

EVAL の構文は 'EVAL script numkeys key [key ...] arg [arg ...]' である。numkeys の値が誤って計算された (大きすぎる値に設定された)、または想定されたキーがコマンドに追加されていない。よくあるプログラミングの誤り。

対処方法

numkeys をコマンドに実際に渡すキーの数と正確に一致させる。numkeys が自動計算されるよう、クライアントライブラリの EVAL ラッパー (通常 KEYS と ARGV を別々のリストとして受け取る) を使用する。スクリプトを呼び出す際は、キーを KEYS に、その他のパラメータを ARGV に正しく分ける。

DBAtlas で開く →

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