이 튜토리얼에서는 redis-cli를 활용하여 Redis 메시지 브로커(Pub/Sub) 시스템에서 하나 이상의 패턴 구독을 해제하는 방법을 알아봅니다.
PUNSUBSCRIBE 명령어란?
PUNSUBSCRIBE 명령어는 클라이언트가 Redis 메시지 브로커에서 사전에 구독한 하나 이상의 패턴(pattern) 구독을 해제할 때 사용합니다.
주요 특징은 다음과 같습니다.
- 패턴을 지정하면 해당 패턴의 구독만 해제됩니다.
- 패턴을 아무것도 지정하지 않으면 현재 구독 중인 모든 패턴에서 일괄 해제됩니다.
- 해제된 각 패턴마다 개별적인 응답 메시지를 반환합니다.
기본 문법
redis host:post> PUNSUBSCRIBE <pattern> [ <pattern> ]
여러 개의 패턴을 인자로 전달하면 한 번의 명령 실행으로 모두 구독 해제할 수 있습니다.
반환 값
- (array) 3개의 요소를 가진 배열(array) 응답
푸시된 메시지의 구조
PUNSUBSCRIBE의 응답은 세 가지 요소로 구성된 배열입니다.
- 첫 번째 요소 – "punsubscribe": 패턴 구독이 성공적으로 해제되었음을 의미하는 메시지 타입입니다.
- 두 번째 요소 – 패턴 이름: 실제로 구독이 해제된 패턴을 나타냅니다.
- 세 번째 요소 – 남은 구독 패턴 수: 클라이언트가 현재 구독 중인 패턴의 총 개수입니다.
특히 마지막 값이 0이라면 더 이상 어떤 패턴도 구독하지 않는 상태라는 뜻입니다. 이 경우 클라이언트는 구독 상태(subscribed state)에서 벗어나므로 GET, SET 등 일반적인 Redis 명령어를 다시 사용할 수 있습니다.
예제

참고 자료
- PUNSUBSCRIBE 공식 문서 (Redis Docs)
지금까지 redis-cli를 사용해 Redis 메시지 브로커에서 하나 이상의 패턴 구독을 해제하는 방법을 살펴보았습니다. 내용이 도움이 되셨다면 아래 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!