MOVED: MOVED slot ip:port (클러스터 리다이렉트)
Redis의미
Redis Cluster에서 요청한 키를 담는 hash slot이 다른 노드에 속한다. 서버가 클라이언트를 올바른 노드로 영구 리다이렉트한다. 오류라기보다 리다이렉트이다.
원인
cluster-aware가 아닌 클라이언트가 잘못된 노드에 요청을 보냄, 노드 간 slot 재분배(resharding), 또는 클라이언트가 캐시한 slot 맵이 오래됨.
해결 방법
cluster-aware 클라이언트 라이브러리를 사용한다. 이러한 라이브러리는 MOVED 응답을 자동으로 따라가 올바른 노드로 리다이렉트하고 slot 맵을 갱신한다. redis-cli로 접속할 때는 -c 플래그를 사용한다. 클라이언트가 slot 토폴로지를 주기적으로 갱신하는지 확인한다(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
- 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 (명령 실행 또는 키 접근 권한 없음)