본 포스팅은 인프런 강의
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
섹션 5를 수강 후 해당 내용을 정리하여 작성하였습니다.
In-memory란 메모리에 데이터를 저장한다는 뜻이다.
그럼 메모리가 뭐냐....🤔
컴퓨터가 프로그램을 실행하기 위해서는 CPU가 바로바로 가져다 쓸 수 있도록 데이터를 임시적으로 저장하는 공간이 필요하다.
이 임시저장소가 바로 메모리다!
메모리에 저장된 데이터들은 컴퓨터를 끄는 순간 모두 날라간다. ( 임시저장소니까! )
모든 프로그램 및 사진, 동영상, 문서들은 디스크에 저장되어 있다.
다행히도 디스크에 저장된 데이터들은 컴퓨터를 꺼도 날라가지 않는다. ( 그러려고 만든거다 )
memory에 데이터를 저장하게 되면 얻는 장점과 단점이 있다.
속도가 매우 빠르다는 것과 서버가 꺼지면 모든 데이터가 사라진다는 것
단점이 너무 치명적인데...!
이러한 단점을 보안하기 위해 레디스는 AOF, RDB와 같은 백업 방식을 지원한다.
RDB 방식은 특정 시점마다 디스크에 데이터를 저장하는 방식이다.
AOF 방식은 쓰기작업을 할 때 로그 파일에 기록한 후 백업이 필요할 때 로그파일에 적힌 작업들을 다시 실행하는 방식이다.
NoSQL이란 관계형 데이터베이스가 아닌 데이터베이스 시스템이다.
NoSQL은 높은 확장성과 유연성, 성능으로 대규모 데이터 처리에 유용하다.
하지만 데이터 일관성 보장 및 복잡한 조인 연산이 어렵다는 단점이 있다.
NoSQL의 유형에는 Key-Value형, 문서형, 컬럼 기반형, 그래프형 등이 있다.
그중 레디스는 Key-Value형 데이터베이스에 속한다.
Key-Value형 데이터베이스는 매우 단순한 구조로 빠른 읽기/쓰기가 가능하고
다양한 자료구조를 지원한다.
레디스의 핵심 작업은 단일 스레드에서 실행되기 때문에
동시성 문제에 안전하다.
In-memory로 동작하기 때문에 싱글스레드임에도 매우 높은 성능을 보인다.
TTL(Time To Live) 기능을 사용해 데이터의 만료시간을 설정할 수 있고,
Pub/Sub 메시징을 지원해 실시간 메시징 시스템을 구현할 수 있다.
In-memory DB이기 때문에 저장가능한 데이터의 양이 RAM에 제한된다.
장애 발생시 데이터 손실 가능성이 있다.
RAM 비용이 높을 수 있다.
내가 만든 백엔드 서버를 숫자로 자랑하는 법 | 신뢰성, 성능, 가용성 지표 (0) | 2025.06.23 |
---|---|
[인프런 수강후기] 스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판 (1) | 2025.04.30 |
[Kafka] MSA에서 Kafka가 필요한 이유 | 구조, 동작방식, 장단점 (0) | 2025.04.17 |
인덱스 만들었다고 안심하면 안되는 이유 | 페이징 쿼리 성능 개선 (0) | 2025.04.02 |
[시스템 아키텍처] Monolithic Architecture vs MSA(Microservice Architecture) (0) | 2025.03.25 |