장점
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 |