세션 관리(사용자 세션 데이터 저장)는 Redis의 가장 흔한 운영 용도 중 하나입니다 — 그 속도, TTL 지원, 서버 간 공유 접근성이 확장 가능한 다중 서버 애플리케이션에서 세션에 이상적으로 만들며, 인메모리나 sticky 세션 방식이 해결하지 못하는 문제를 해결합니다.
Redis가 해결하는 문제
다중 서버 앱(로드 밸런싱)에서 세션은 어디에 사는가?
✗ 프로세스 내 메모리(서버별) → 사용자 세션이 한 서버에 있음; 다른 서버로
라우팅된 후속 요청은 그것을 못 가짐 (깨진 세션)
✗ Sticky 세션(사용자를 한 서버에 고정) → 불균등한 부하, 서버 실패 시 깨짐
✓ 공유 세션 저장소(Redis) → 모든 서버가 한 곳에서 세션 읽기/쓰기
→ 공유되고 빠른 세션 저장소로서의 Redis가 다중 서버 세션 문제를 해결.
Redis가 세션에 완벽히 맞는 이유
✓ 모든 앱 서버 간 공유 → 어느 서버나 어느 세션 접근 (stateless 서버,
쉬운 수평 확장, 개별 서버 실패에 회복력)
✓ 빠름 (인메모리) → 모든 요청마다의 세션 조회가 최소 지연 추가
✓ TTL → 비활동 후 세션 자동 만료 (내장 만료, 정리 작업 불필요)
✓ 데이터 구조 → 세션 데이터를 해시(필드)나 직렬화 값으로 저장
✓ 선택적 persistence → 세션이 Redis 재시작에서 살아남거나 일시적일 수 있음
