기존의 관계형 데이터베이스를 사용하는 주된 이유는 영속성 데이터, 즉 파일시스템에 데이터를 저장함으로서 서비스가 종료되어도 유지되는 데이터를 위해서이다.
하지만, 많은 서비스가 일시적인 데이터를 저장해야 하는 상황을 필요로 한다. (ex> 로그인 정보, 장바구니 등등)
이런 상황에서 파일시스템을 통해 변화가 빈번한 데이터를 저장하고 변경하는 것은 그 특성상 속도가 느릴 수 밖에 없다. 그렇기에 특정 기능 구현에서 인메모리DB 를 도입해 사용한다.
아래는 많이 사용되는 대표적인 NoSql 의 특징을 표와 그림으로 나타낸 것이다.
DB | 특징 | 사용 사례 |
---|---|---|
Redis | 인메모리 데이터 저장소, 빠른 속도 | 캐시, 세션 관리, 실시간 분석 |
MongoDB | 문서 지향(Document) 데이터베이스, 유연한 스키마 | 비정형 데이터 저장, 웹 애플리케이션 |
Cassandra | 분산형 데이터베이스, 높은 가용성 | 대규모 데이터 처리, IoT 애플리케이션 |
Redis는 NoSQL 중에서도 Key-Value Store로 작동하는 인메모리 데이터베이스이며, 지연이 적은 읽기 / 쓰기 성능을 가졌다. 그렇기 때문에 일시적인 데이터, 변경이 잦은 데이터를 다뤄야 되는 상황에서 많이 활용된다.
Session Clustering
: 여러 애플리케이션 인스턴스에서 같은 세션 정보를 사용Caching
: 자주 사용되는 데이터를 저장해두어, 데이터베이스 조회를 줄이고 전반적인 응답속도를 개선다양한 자료구조 지원
: 리더보드, 방문수 트래킹, 좌표 기반 검색 등의 기능을 쉽게 구현 가능
인메모리 저장소와 NoSql 에 대한 소개를 설명했다. 다음 글에서는 Redis 의 여러 명령어와 타입들에 대해 설명하겠다.