
데이터를 저장할 때 우리는 보통 MySQL 같은 관계형 데이터베이스(RDBMS)를 떠올립니다. 하지만 서비스의 규모가 커지고 속도가 중요해지면, '영속성'보다 '속도'가 더 중요한 순간이 옵니다. 이때 등장하는 구세주가 바로 Redis입니다.
우리가 흔히 쓰는 DB는 데이터를 파일 시스템(SSD/HDD)에 저장합니다.
하지만 로그인 정보(세션)나 장바구니처럼 데이터가 빈번하게 변하고, 잠시 사라져도 치명적이지 않은 '일시적인 데이터'라면 어떨까요? 매번 느린 디스크에 접근하는 것은 비효율적입니다.
결론: 그래서 "디스크 대신 훨씬 빠른 메모리(RAM)에 데이터를 저장하자!"라는 아이디어에서 인메모리 데이터베이스가 탄생했습니다.
Redis(REmote DIctionary Server)는 이름 그대로 외부(Remote)에 있는 딕셔너리(Dictionary) 서버입니다. Java의 Map이나 Python의 Dictionary처럼 Key-Value 형태로 데이터를 저장합니다.
Redis는 대표적인 NoSQL 데이터베이스입니다. NoSQL은 'Not Only SQL'의 약자로, 기존 RDBMS의 한계(확장성, 유연성)를 해결하기 위해 등장했습니다.
| 구분 | 관계형 DB (예: MySQL) | NoSQL (예: Redis) |
|---|---|---|
| 저장 위치 | 파일 시스템 (SSD/HDD) | 메모리 (RAM) |
| 데이터 구조 | 테이블, 스키마 고정 | Key-Value, Document 등 유연함 |
| 조회 방식 | SQL 사용 (SELECT * ...) | 명령어 사용 (GET greeting) |
| 주요 목적 | 데이터의 안전한 보관(영속성) | 빠른 성능과 유연한 확장 |
Redis는 지연 시간(Latency)이 거의 없는 읽기/쓰기가 필요할 때 빛을 발합니다.
데이터의 안전한 영속성이 중요하다면 RDBMS를, 서비스의 응답 속도와 유연성이 최우선이라면 Redis를 적재적소에 배치하는 것이 고성능 서비스를 만드는 핵심입니다!