CROSSSLOT: CROSSSLOT Keys in request don't hash to the same slot
Redis의미
Redis Cluster에서 다중 키 명령(예: MGET, MSET, SUNION)을 사용했지만 키가 서로 다른 hash slot에 속한다. 다중 키 작업은 모든 키가 같은 slot에 있어야 한다.
원인
클러스터 모드에서 여러 키에 동시에 접근하는 명령을 서로 다른 slot에 분산된 키로 호출함. hash tag를 사용하지 않아 키가 서로 다른 노드에 분산됨.
해결 방법
관련 키를 같은 slot에 두려면 hash tag를 사용한다: 키 이름의 일부를 중괄호로 고정한다(예: {user1}:profile과 {user1}:settings는 같은 slot으로 간다). 다중 키 명령은 같은 hash tag를 공유하는 키에만 사용한다. 대안으로 작업을 단일 키 명령으로 분할한다.
같은 데이터베이스의 다른 항목
- LOADINGLOADING Redis is loading the dataset in memory
- 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
- MOVEDMOVED slot ip:port (클러스터 리다이렉트)
- ASKASK slot ip:port (클러스터 리다이렉트)
- NOSCRIPTNOSCRIPT No matching script. Please use EVAL
- EXECABORTEXECABORT Transaction discarded because of previous errors