Redis
장점
- 메모리 기반의 저장소로 데이터에 접근하는 속도가 빠름
- 다양한 type의 아키텍처를 지원함
- String, Hash, List, Set, Sorted Set, Map 등의 구조 활용 가능
- 데이터를 분할하여 여러 서버에 분산 저장, 처리할 수 있음
단점
- 데이터가 휘발성이라 서버 재시작이나 장애 상황 발생 시 데이터 보존 어려움
- 복잡한 쿼리 지원하지 않음
- 단일 스레드 환경에서 동작
- 다중 처리나 동시성이 요구되는 작업에는 적합하지 않을 수 있음
- 용량이 큰 데이터에 적합하지 않음
- 유지 보수가 어려움
결론
- Map 형식으로 채팅방과 채팅 내용을 저장하기 위해 채팅 관련 데이터는 Redis에 저장하려 했으나 휘발성 메모리이기 때문에 데이터 유실 가능성 있음
- 채팅 중에는 redis pub/sub 사용, 처음 데이터 불러올 때만 MySQL에서 가져오도록 변경