Redis는 키를 통해 여러 종류의 자료 구조를 다루는 메모리 중심 저장소이다. 문자열 값만 저장하는 캐시로 한정되지 않으며, 해시·리스트·집합·정렬 집합 등 데이터 형태에 맞는 명령을 제공한다.
분야 | 메모리 중심 자료 구조 저장소 |
|---|
자료 구조와 명령
사용자별 설정처럼 필드가 있는 값은 해시로, 점수 순위는 정렬 집합처럼 문제에 맞는 자료 구조로 표현할 수 있다. 설계할 때는 키 수만 세기보다 값의 크기와 각 명령이 처리하는 원소 수를 함께 본다. 한 번의 명령이라고 해서 모든 연산의 실행 비용이 같지는 않다.
지속성과 장애
RDB는 특정 시점의 데이터 스냅샷을 남기고 AOF는 쓰기 연산을 기록해 재구성에 사용한다. 두 방식을 함께 사용하거나 지속성을 끌 수도 있다. 메모리를 사용한다는 사실만으로 재시작 때 항상 데이터가 사라지거나 항상 보존된다고 단정할 수 없다.
스냅샷 주기와 로그 동기화 정책은 장애 때 손실될 수 있는 범위와 자원 사용에 영향을 준다. 복제본이 있다는 것과 과거 시점으로 복원할 백업이 있다는 것도 구별한다.
캐시 예시
상품 정보를 캐시할 때 원본 데이터베이스와 캐시 사이의 만료·갱신 정책을 정한다. 상품 가격 변경 후 이전 값이 남는 시간, 캐시가 동시에 만료되었을 때 원본에 몰리는 부하, 실패 시의 응답 방식을 함께 설계한다. TTL은 캐시의 의미를 대신 정의해 주지 않는다.
운영에서 확인할 점
메모리 한도, 만료와 퇴거 정책, 큰 키와 오래 걸리는 연산, 지속성 작업의 비용을 관찰한다. 세션이나 작업 상태처럼 잃으면 안 되는 데이터는 단순한 재생성 가능한 캐시와 다른 복구 기준을 가져야 한다.
참고 자료
관련 기술 비교
데이터베이스 | |
|---|---|
관계형 | MySQL · PostgreSQL · MariaDB · SQLite |
NoSQL | |
스토리지 엔진 | |