Self-Study/기타

[Redis] Redis의 기본 개념

Raadian 2022. 9. 13. 14:43

References

https://redis.io/docs/about/

https://devlog-wjdrbs96.tistory.com/374

https://www.psjco.com/26

https://mozi.tistory.com/371

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 기능으로 파일 데이터를 다시 쓴다.