Self-Study/기타
[Redis] Redis의 기본 개념
Raadian
2022. 9. 13. 14:43
References
https://devlog-wjdrbs96.tistory.com/374
https://hoooon-s.tistory.com/25
Redis의 정의
Redis(Remote Dictionary Server)는 의 키-값(Key-Value) 형태의 데이터를 저장 / 관리하기 위한 비 관계형 DBMS이다.
Redis의 특징
Redis의 특징은 다음과 같다.
장점 | 단점 |
다양한 데이터 구조를 지원한다. (String, List, Set, Hash 등) | 메모리 사용량이 많다. |
메모리 + 디스크 활용으로 영속적인 데이터 보관이 가능하다. | 대규모 트래픽시 응답속도가 불안정하다. |
서버 측에서 데이터 복제 / 샤딩을 지원한다. | |
데이터 특성 상 호환되는 API가 많다. |
Redis의 데이터 기록 방식
Redis의 경우 영속적인 특성 상 데이터를 디스크에 저장할 수 있는데 이는 나중에 서버가 다운되더라도 디스크에 저장된 데이터를 읽어서(Read) 메모리에 로딩을 할 수 있다.
그러한 이유로 Redis는 데이터를 디스크에 저장하는 두 방식이 있는데 다음과 같다.
RDB(Redis Database) 방식
특정 시점의 메모리에 있는 데이터 전체를 바이너리 파일로 저장한다.
바이너리 특성 상 로우 레벨 언어이기 때문에 원인 분석이 어렵지만 파일 사이즈가 작아 로딩 속도가 빠르다.
AOF(Append On File) 방식
Redis의 기본 옵션으로, 모든 쓰기(Write) 및 변경(Update) 연산 자체를 별도의 log 파일에 기록한다.
하이 레벨 언어 그대로 log 파일에 저장되기 때문에 원인 분석이 쉽지만 그만큼 내용이 쌓일 수록 파일 사이즈가 커지기 때문에 rewrite 기능으로 파일 데이터를 다시 쓴다.