상세 컨텐츠

본문 제목

RAM을 내주고 성능을 얻는 Redis에 대하여.. | 레디스의 특징 및 단점

Development Study/대용량 트래픽 처리

by yooputer 2025. 4. 15. 11:15

본문

본 포스팅은 인프런 강의

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

섹션 5를 수강 후 해당 내용을 정리하여 작성하였습니다. 


레디스의 특징

1. In-memory

In-memory란 메모리에 데이터를 저장한다는 뜻이다. 

 

그럼 메모리가 뭐냐....🤔

컴퓨터가 프로그램을 실행하기 위해서는 CPU가 바로바로 가져다 쓸 수 있도록 데이터를 임시적으로 저장하는 공간이 필요하다. 

이 임시저장소가 바로 메모리다! 

메모리에 저장된 데이터들은 컴퓨터를 끄는 순간 모두 날라간다. ( 임시저장소니까! )

모든 프로그램 및 사진, 동영상, 문서들은 디스크에 저장되어 있다. 

다행히도 디스크에 저장된 데이터들은 컴퓨터를 꺼도 날라가지 않는다. ( 그러려고 만든거다 )

 

memory에 데이터를 저장하게 되면 얻는 장점과 단점이 있다. 

속도가 매우 빠르다는 것과 서버가 꺼지면 모든 데이터가 사라진다는 것

단점이 너무 치명적인데...! 

이러한 단점을 보안하기 위해 레디스는 AOF, RDB와 같은 백업 방식을 지원한다. 

 

RDB 방식은 특정 시점마다 디스크에 데이터를 저장하는 방식이다. 

AOF 방식은 쓰기작업을 할 때 로그 파일에 기록한 후 백업이 필요할 때 로그파일에 적힌 작업들을 다시 실행하는 방식이다. 

 

2. NoSQL

NoSQL이란 관계형 데이터베이스가 아닌 데이터베이스 시스템이다. 

 

NoSQL은 높은 확장성과 유연성, 성능으로 대규모 데이터 처리에 유용하다. 

하지만 데이터 일관성 보장 및 복잡한 조인 연산이 어렵다는 단점이 있다. 

 

NoSQL의 유형에는 Key-Value형, 문서형, 컬럼 기반형, 그래프형 등이 있다. 

그중 레디스는 Key-Value형 데이터베이스에 속한다. 

Key-Value형 데이터베이스는 매우 단순한 구조로 빠른 읽기/쓰기가 가능하고 

다양한 자료구조를 지원한다. 

 

3. 싱글스레드

레디스의 핵심 작업은 단일 스레드에서 실행되기 때문에 

동시성 문제에 안전하다. 

 

In-memory로 동작하기 때문에 싱글스레드임에도 매우 높은 성능을 보인다. 


그외 특징

TTL(Time To Live) 기능을 사용해 데이터의 만료시간을 설정할 수 있고, 

Pub/Sub 메시징을 지원해 실시간 메시징 시스템을 구현할 수 있다. 


Redis의 단점

In-memory DB이기 때문에 저장가능한 데이터의 양이 RAM에 제한된다. 

장애 발생시 데이터 손실 가능성이 있다. 

RAM 비용이 높을 수 있다. 

 

 

 

관련글 더보기