BUSYGROUP Consumer Group name already exists: Consumer group already exists
Redis의미
XGROUP CREATE로 stream에 consumer group을 생성하려 했지만 같은 이름의 그룹이 해당 stream에 이미 존재한다. Redis는 기존 그룹을 덮어쓰지 않는다.
원인
애플리케이션이 시작 시 무조건 그룹을 생성하려 하는데 그룹이 이전 실행에서 남아 있거나, 여러 인스턴스가 같은 그룹을 병렬로 생성하려 하는 경우다. 멱등하지 않은 시작 로직의 전형이다.
해결 방법
그룹 생성을 멱등하게 만든다: 오류를 잡아 무시한다(그룹이 이미 있어도 괜찮다). XGROUP CREATE stream group $ MKSTREAM을 사용하면 stream이 아직 없을 때 자동으로 생성된다. XINFO GROUPS stream으로 기존 그룹을 확인한다. 정말 초기화하려면 먼저 XGROUP DESTROY stream group으로 삭제한다.
같은 데이터베이스의 다른 항목
- ERR unknown commandUnknown command
- TRYAGAIN Multiple keys request during rehashing of slotMultiple keys request during rehashing of slot (cluster) (slot rehashing 중 다중 키 요청)
- ERR DISCARD without MULTIDISCARD without MULTI
- NOGROUP No such key or consumer groupNo such key or consumer group in stream
- NOTBUSY No scripts in execution right nowNo scripts in execution right now
- DENIED Redis is running in protected modeRedis is running in protected mode
- ERR Can't execute '<cmd>': only (P|S)SUBSCRIBE / (P|S)UNSUBSCRIBE / PING / QUIT / RESET are allowed in this contextCommand not allowed in subscribe context (subscribe 컨텍스트에서 허용되지 않는 명령)