DevBoi

[Redis] Redis 장 단점 본문

Develop/[Redis]

[Redis] Redis 장 단점

HiSmith 2022. 4. 12. 14:31
반응형

장점

 

1. Key-Value Store

레디스는 거대한 맵 데이터 저장소

key,value가 매핑된 단순한 맵 데이터 저장소로서 데이터를 레디스에 쉽고 편하게 읽고 쓸 수 있다.

익히기 쉽고, 직관적이다. (단점: 데이터를 레디스 자체 내 에서 처리가 어렵다)

 

2. 다양한 데이터 타입

리스트, 배열 형식의 데이터 처리에 특화됨

Value 값으로 문자열,리스트,set,sorted set,hash등 여러 데이터 형식을 지원한다.

 

3. 속도

리스트 형 데이터의 입력과 삭제가 Mysql보다 10배 빠르다

 

4. 영속성

Redis는 데이터를 디스크에 저장할 수 있다.

Redis서버가 셧다운 된 후에 재시작해도 Disk에 저장해놓은 데이터를 다시 읽어서 데이터가 유실되지 않는다.

 

Redis의 데이터를 디스크에 저장하는 방식은 스냅샷, AOF방식이 있다.

스냅샷 기능을 이용하여 메모리의 내용을 *.rdb파일로 저장하여 해당 시점의 데이터를 복구 할 수 있다.

AOF는 redis의 모든 write/update 연산자체를 모두 log파일에 기록하는 형태이다.

서버가 재시작하면, write/update를 순차적으로 재실행, 데이터를 복구한다.

- 주기적으로 스냅샷으로 백업하고,  그전까지 AOF방식으로 수행한다.

 

5. C언어로 작성되어, GC동작이나 가상머신 위에서 발생하는 이슈에 대해 자유롭다.

 

 

단점

 

In-memory 방식이기 때문에 장애 발생시 데이터 유실이 발생한다.

 

 

메모리 파편화가 발생하기 쉽다.

메모리 파편화 때문에 실제 Max memory 설정을 해도 그 메모리보다 많은 공간을 사용한다.

따라서, 적은 크기의 인스턴스를 여러개 쓰는 것이 좋다

 

메모리를 2배로 사용한다.

로깅할때, fork를 이용해 자식 프로세스를 생성, 현재 메모리 상태에서 복제된 자식 프로세스를 기반으로

데이터를 저장한다. -> 최악으로 메모리가 2배까지 사용된다.

 

싱글 스레드로 동작한다.

-트랜잭션이 긴 처리 요청이 오면, 다른 요청을 처리 못하기 때문에 하나의 Collection에 넣는 것이아니라

나눠서 처리하는 것이 좋다.

 

 

 

 

 

 

반응형

'Develop > [Redis]' 카테고리의 다른 글

[Redis] Cluster vs Sentinel  (0) 2022.04.12
[Redis] TTL이란  (0) 2022.04.12
[Redis] Eviction 정책  (0) 2022.04.12
[Redis] 지원하는 데이터 유형  (0) 2022.04.12
[Redis] Redis 란 무엇입니까?  (0) 2022.04.12