공통 코드에서 Redis Pub/Sub은 최근 실무에서 쓰이진 않나요?
133
작성한 질문수 5
Redis Pub/Sub 구독을 통해 Redis 갱신 시 Sub로 구독 중인 각 서버에 캐시 무효화 및 강제 갱신 시키는 구조는 잘 안쓰이나요?
이 방법도 네트워크 순단 시 fire and forget, 구현 복잡도가 높음 등의 문제가 있긴한데 실무에서는 Pub/Sub을 잘 안쓰는지 궁금합니다.
답변 2
0
안녕하세요. kekim님
AI 인턴이 잘 답변해주었는데요. 조금 더 보충하자면
이 부분은 실무에서 겪고 있는 상황에 따라 다릅니다.
비즈니스 로직상 정확한 갱신이 너무 중요하다면 Redis Pub/Sub은 고민하신 것 처럼 리스크가 있습니다.
다만 현재 팀에서 Redis를 잘 사용하고 있고, 비즈니스 로직상 만약에 갱신에 일부 실패해도 허용 가능한 범위의 리스크라면 Redis Pub/Sub을 사용해도 괜찮습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. kekim님.
질문해주신 Redis Pub/Sub을 활용한 캐시 무효화 및 강제 갱신 구조에 대해 답변드리겠습니다. Redis Pub/Sub는 실시간으로 데이터가 변경될 때 여러 서버에 신속히 알릴 수 있는 장점이 있어 실무에서 사용되는 기술 중 하나입니다. 그러나 언급하신 것처럼 네트워크 단절 시 구독 메시지를 놓칠 위험이 있고, Pub/Sub 시스템을 구현하고 관리하는 데 있어 고려해야 할 복잡한 부분이 다수 존재합니다.
실무 활용 사례
실제로 Redis Pub/Sub을 사용할지 여부는 사용하는 시스템의 요구사항에 따라 달라질 수 있습니다. 특히, 데이터 일관성과 정합성이 중요한 시스템에서는 Pub/Sub 대신 메시지 대기열(Message Queue)과 같이 메시지 지속성을 보장할 수 있는 다른 방법을 선택하기도 합니다.
일관성이 중요한 경우: 캐시 무효화 및 데이터 갱신이 실시간으로 이루어져야 하고 데이터 정합성이 중요할 경우, Pub/Sub를 단독으로 사용하지 않거나, 보조적인 다른 시스템과 연계하여 사용하는 경우가 많습니다.
시스템 설계 고려사항: Pub/Sub는 매우 빠른 데이터 반응과 처리가 중요하지만 일정 수준의 데이터 유실 가능성을 허용할 수 있는 환경에서 유용합니다. 만약 데이터 유실이 허용되지 않는다면 다른 솔루션과의 결합이 필요합니다.
케이스별로 다른 선택: 경량 메시지 통신이 필요한 경우에는 Pub/Sub이 적합할 수 있지만, 메시지 손실 방지와 같은 기능이 필요하다면 Apache Kafka, RabbitMQ 등의 대안도 고려됩니다.
추가로 유사 질문 URLs:
많은 사용자들이 비슷한 질문을 갖고 있으며, 다음과 같은 게시글에서 유사한 고민을 해결할 수 있는 내용을 확인할 수 있습니다.
- JPA 사용 가능성에 대해 문의 드립니다. - 데이터베이스와 연결된 시스템 설계에 대한 다양한 고민과 해결책을 배울 수 있습니다.
이 외에도 추가적인 방법이나 솔루션에 대해 궁금하신 점이 있으면 이어서 질문해 주시기 바랍니다. 곧 지식공유자께서 더 나은 방향으로 답변드릴 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
실제 FK제약조건을 설정하지 않는이유
0
30
2
히스토리 관련 질문
0
57
2
통계 데이터 수정 질문
1
63
2
DELETE -> SELECT 질문 드립니다.
0
48
1
상속 관계 모델링의 적용 기준 질문
0
75
1
TTL 캐싱에 대한 질문
0
78
1
공통 코드 사용시 컬럼 타입 설정
0
83
1
history_creted_at과 valid_from
1
66
2
함수 기반 인덱스 (Function-Based Index)
0
68
1
추후 강의 질문있습니다
0
124
2
실무 통계 질문(고민) 드립니다..!
0
91
2
Json 컬럼의 객체 맵핑
0
64
1
[Deprecated] 오타 제보
0
86
1
오타 제보
0
73
2
category_path 테이블에서 idx_descendant 인덱스를 생성하는 이유가 궁금합니다
0
96
2
물리적으로 외래 키 제약 조건을 설정하지 않을 때
0
97
1
`전체 행 스냅샷 이력 테이블`의 대상 테이블 칼럼 변경
1
84
1
common_code_detail의 code 변경 가능성
1
112
1
[해결책 - 코드값 분리] 중 orders(order_status) - common_code(code) 타입 불일치 제보
0
87
1
이미 문자열 타입인 컬럼을 캐스팅하는 이유
0
106
2
계층 구조 모델링 기타 방법들
0
106
1
섹션 9의 퀴즈가 영어로 출력되요.
0
106
2
섹션 6 SOFT DELETE) UNIQUE 제약 조건 + 가상 컬럼
0
77
1
섹션2 공통 코드) 애플리케이션 ENUM을 API에 그대로 노출한다면?
0
126
1





