MOVED: MOVED slot ip:port (クラスタリダイレクト)
Redis意味
Redis Cluster で、要求されたキーを保持するハッシュスロットが別のノードに属している。サーバーはクライアントを正しいノードへ恒久的にリダイレクトする。これはエラーというよりリダイレクトである。
原因
クラスタ非対応のクライアントが誤ったノードに要求を送っている、ノード間でスロットが再配置された (リシャーディング)、またはクライアントがキャッシュしているスロットマップが古い。
対処方法
クラスタ対応のクライアントライブラリを使う。これらは MOVED 応答に自動で従い、正しいノードへリダイレクトし、スロットマップを更新する。redis-cli で接続するときは -c フラグを使う。クライアントがスロットトポロジーを定期的に更新することを確認する (CLUSTER SLOTS/SHARDS)。
同じデータベースの他の項目
- BUSYBUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE(スクリプト実行中でビジー)
- MISCONFMISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk(RDB スナップショットをディスクに保存できない)
- CROSSSLOTCROSSSLOT Keys in request don't hash to the same slot(キーが同じスロットにハッシュされない)
- ASKASK slot ip:port (クラスタリダイレクト)
- NOSCRIPTNOSCRIPT No matching script. Please use EVAL(一致するスクリプトがない)
- EXECABORTEXECABORT Transaction discarded because of previous errors(以前のエラーによりトランザクションを破棄)
- NOPERMNOPERM this user has no permissions to run the command or access one of the keys(コマンド実行またはキーアクセスの権限がない)