일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링
- 알고리즘공부
- Axon framework
- nestjs스터디
- 스프링부트공부
- 스프링부트
- 자료구조공부
- JPA 공부
- 코테공부
- nestjs
- JPA공부
- 자바공부
- JPA예제
- 코테준비
- querydsl
- Flutter
- JPA
- K8S
- 스프링 공부
- 플러터 공부
- 플러터 개발
- 카프카
- nestjs공부
- 기술공부
- 프로그래머스
- 기술면접공부
- 스프링공부
- DDD
- JPA스터디
- Kafka
- Today
- Total
DevBoi
[Redis] Redis 장 단점 본문
장점
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 |