1. Redis
Redis란?
Redis 공식 홈페이지 문서를 살펴보면 아래와 같은 설명이 적혀 있다.
Redis is an in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and message broker. Redis has built-in replication and different levels of on-disk persistence. It supports complex data types (for example, strings, hashes, lists, sets, sorted sets, and JSON), with atomic operations defined on those data types.
Redis는 Remote Dictionary Server의 약자로, cache나 vector DB, document DB 등으로 사용되는 인메모리 데이터 저장 공간이다. 쉽게 바꾸면 '데이터 처리 속도가 엄청 빠른 NoSQL DB'라고도 할 수 있다.
- NoSQL DB는 RDBMS의 DB와 다르게 데이터를 Key-Value 형식으로 저장한다.
- Redis는 strings, hashes, lists, sets 등의 복잡한 데이터 타입을 지원한다.
Redis의 장점
Redis가 갖고 있는 다양한 장점 중 확실하게 기억해야 할 특징이 있다.
Redis는 인메모리로 모든 데이터를 저장하기 때문에 데이터 처리 성능이 굉장히 빠르다.
MySQL과 같은 RDBMS의 DB는 대부분 디스크에 테이블 형식의 데이터를 저장한다. 그러나 Redis는 메모리(RAM)에 저장한다. 메모리에 저장된 데이터에 접근할 땐 디스크에 접근하지 않아도 되기 때문에 데이터 처리 속도가 훨씬 빠르다. 이 때문에 Redis의 데이터 처리 속도가 RDBMS에 비해 훨씬 빠르다는 것을 알 수 있다.
2. Redis 주요 사용 사례
Redis는 내장된 기능이 다양하고 여러 용도로 사용되기 때문에, 우선은 현업에서 많이 사용되는 '캐싱(데이터 조회 성능 향상)'을 집중적으로 살펴볼 것이다.
- Redis의 기본 기능들을 익히고 나서 다른 사례들에 대해 조금씩 학습하면서 살을 붙여나가면 된다.
사용 사례
- 캐싱 (Caching)
- 세션 관리 (Session Management)
- 실시간 분석 및 통계 (Real-time Analystics)
- 메시지 큐 (Message Queue)
- 지리 공간 인덱싱 (Geospatial Indexing)
- 속도 제한 (Rate Limiting)
- 실시간 채팅 및 메시징 (Real-time Chat And Messaging)
3. 백엔드 채용 공고에 종종 등장하는 '대용량 트래픽 처리 경험', 'Redis 사용 경험'
Redis를 학습하면 '대용량 트래픽 처리'와 'NoSQL'과 관련한 2가지 역량을 채울 수 있다.
- 대용량 트래픽을 처리하기 위해 필수로 사용되는 기능이 Redis의 캐싱 (Caching) 기능이다.