Redis is Not What You Think It Is.
- Redis는 단순한 인메모리 키-값 저장소를 넘어, 전통적인 데이터베이스를 대체할 수 있는 다재다능한 데이터 플랫폼입니다. 🚀
- 메모리 기반으로 초고속 성능을 제공하며, 문서 저장, 객체 인덱싱, 실시간 디스크 영속성 등 다양한 기능을 지원합니다. ⚡
- 캐시의 '빠름'과 데이터베이스의 '안전함'을 동시에 제공하여, 일반적인 인식과 달리 두 가지 장점을 모두 가집니다. 🛡️
- 최근 문서 및 벡터 쿼리 기능을 추가하며 AI 시대에 발맞춰 진화하고 있음을 보여줍니다. 🧠
- 기본적인
SET, GET, DEL 외에도 user:ID:email과 같은 콜론 패턴을 사용하여 데이터를 구조화할 수 있습니다. 🏷️
EX 명령으로 데이터 만료 시간을 설정하여 단기 정보를 효율적으로 관리할 수 있습니다. ⏳
- 기본적으로 RDB(Redis Database) 스냅샷 파일을 통해 데이터 영속성을 제공하지만, 이는 특정 시점의 백업이며 비정상 종료 시 데이터 손실 위험이 있습니다. 📸
- 컨테이너 환경(Docker, Kubernetes)에서는 볼륨 마운트 없이는 데이터가 영속되지 않으므로 주의해야 합니다. 🐳
HSET 명령을 사용하는 해시(Hash)는 완전한 문서 데이터베이스처럼 작동하여 복잡한 객체를 저장하고 관리할 수 있습니다. 📚
SADD 명령의 세트(Set)는 고유한 멤버들의 비정렬 집합으로, 사용자 이름 중복 확인 등에 유용합니다. 🧩
ZADD 명령의 정렬된 세트(Sorted Set)는 순위표, 리더보드, 시계열 데이터 등 순서가 중요한 데이터 관리에 최적화되어 있습니다. 🏆
- 진정한 데이터베이스 수준의 영속성을 위해 AOF(Append Only File)를 활성화할 수 있으며, 이는 모든 쓰기 작업을 로그로 기록하여 서버 충돌 시에도 데이터 손실 없이 복구 가능하게 합니다. ✍️
- AOF는
appendfsync everysec 또는 always 설정을 통해 로그를 디스크에 플러시하는 빈도를 조절하여 신뢰성과 성능 사이의 균형을 맞출 수 있습니다. 💾
- Redis는 직접적인 보조 인덱스 시스템은 없지만,
SET user:email:a@b.com 1과 같은 패턴으로 O(1) 시간 복잡도의 빠른 조회를 위한 인덱싱을 구현할 수 있습니다. 🔍
WATCH, MULTI, EXEC 명령을 통해 트랜잭션과 유사한 원자적(Atomic) 작업을 수행하고 경쟁 조건(Race Condition)을 효과적으로 처리할 수 있습니다. 🤝
- Redis는 사용자 등록 및 로그인 흐름과 같은 실제 시나리오에서 데이터베이스로 활용될 수 있음을 데모를 통해 입증했습니다. 🧑💻
- Redis가 잠시 클로즈 소스로 전환된 후 AWS가 포크하여 Valkey를 만들었으나, Redis는 다시 오픈 소스로 돌아왔으며 두 시스템 모두 유사한 기능을 제공합니다. 🔄
데브허브 | DEVHUB | Redis is Not What You Think It Is.