해당 내용은 인프런 JSCODE 박재성의 비전공자도 이해할 수 있는 Redis 입문/실전(조회 성능 최적화편)의 강의를 기반으로 작성했습니다.
강사님의 공부법에 따라 제 해석대로 작성해봅니다.
- Remote Dictionary Server의 약자
- "Key-Value" 구조의 비정형 데이터를 저장하고 관리
- 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)
✅ Redis
데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스
"Key-Value" 형태로 저장 (Map같이. 하지만 다른 경우도 존재...)
✅ NoSQL
SQL을 사용하지 않는 비관계형 데이터베이스(Not only SQL)
대량의 데이터를 빠르게 처리하는 데 적합
✅ 비관계형 데이터베이스
관계형 데이터베이스는 데이터를 행과 열이 있는 테이블 형식으로 저장하는 반면에,
비관계형 데이터베이스는 다양한 모델(Key-Value(Redis), 문서(MongoDB), 열 지향(Cassandra), 그래프(Neo4j))을 사용하여 데이터에 엑세스하고 데이터를 관리
즉, 일반적으로 NoSQL 자체를 의미하기도 한다.
✅ 비정형 데이터
정의된 구조가 없는 정형화되지 않은 데이터
ex) 동영상 파일, 오디오 파일, 사진, 텍스트, 포스트 등
즉, Redis는 데이터 처리 속도가 엄청 빠른, Key-Value형태로 저장하는 데이터베이스
Redis는 인메모리(in-memory)에 모든 데이터를 저장
그래서 데이터의 처리 성능이 빠름
RDBMS(Relational Database Management System)는 대부분 디스크(Disk)에 데이터를 저장하지만, Redis는 메모리(RAM)에 데이터를 저장
→ 디스크(Disk)보다 메모리(RAM)에서의 데이터 처리 속도가 월등하게 빠름
즉, 저장 방식의 차이로 인하여 Redis의 데이터 처리 속도가 RDBMS에 비해 훨씬 빠름
- 캐싱 (Caching)
- 세션 관리 (Session Management)
- 실시간 분석 및 통계 (Real-time Analystics)
- 메시지 큐 (Message Queue)
- 지리공간 인덱싱 (Geospatial Indexing)
- 속도 제한 (Rate Limiting)
- 실시간 채팅 및 메시징 (Real-time Chat And Messaging)
일단, 캐싱(데이터 조회 성능 향상)만 집중적으로 공부!
최근 채용 트렌드도 그렇고, 서비스를 제공하는 회사 입장에서 서비스를 고도화할수록
'대용량 트래픽 관리'와 'NoSQL'이 필수이기 때문
→ 이 역량을 기르기 위한 방법 중 하나가 Redis
또한, 대용량 트래픽을 처리하기 위해 필수적으로 사용되는 기능이 Redis의 캐싱(Caching)
즉, '대용량 트래픽 관리', 'NoSQL', 'Redis의 캐싱(Caching)' 은 필수이면서도 전부 연관되어 있으므로 집중 학습 필요