Replies: 4 comments
1. Redis란 무엇이며, 어떤 상황에서 사용하나요?→ NoSQL데이터 베이스중 하나이고 오픈소스 소프트웨로써 키-값의 다양한 형태로 데이터를 저장하고 인메모리 데이터 저장소에 저장하는 형태를 가지는 데이터 베이스입니다
NoSQL 특징
인메모리 데이터 저장소 특징
2. Redis와 RDB(MySQL 등)의 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 적절한가요?→ RDB 데이터의 무결성, 영속성, 복잡한 데이터를 구조화하고 관리하는데에 쓰여지고 Redis는 자주 조회되는 데이터를 빠르게 제공하기에 명확한 차이를 가지고 있습니다.
RDB 특징
3. Redis는 메모리 기반인데, 서버 장애가 발생하면 데이터가 유실될 수 있지 않나요? Redis에서는 데이터의 영속성을 어떻게 보장하나요?→
2)AOF(Append Only File)
|
1. Redis란 무엇이며, 어떤 상황에서 사용하나요?Redis(REmote DIctionary Server)는 메모리에 데이터를 올려두고 쓰는 key-value 저장소이다. 디스크가 아니라 RAM 에 두기 때문에 읽기/쓰기가 압도적으로 빠르다. 특징을 몇 가지 보면
어디에 쓰나
2. Redis와 RDB(MySQL 등)의 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 적절한가요?
Redis 가 맞는 경우
RDB 가 맞는 경우
결국 둘 중에 고르는 게 아니라 같이 쓰는 것이다. 원본은 RDB 에 두고, 그중 자주 읽히는 것만 Redis 에 올려두는 구조가 일반적이다. #22 벡터 db 발제 때 rdb 랑 벡터 db 를 같이 쓰는 얘기를 했었는데 구도가 비슷한 것 같다. 여기서 생기는 게 캐시 일관성 문제이다. RDB 의 원본이 바뀌었는데 Redis 에 옛날 값이 남아있으면 잘못된 값을 주게 된다. 이걸 처리하는 방식이 몇 가지 있다고 한다.
캐시 스탬피드(TTL 이 한꺼번에 만료돼서 db 로 요청이 몰리는 것) 같은 것도 있다는데 이 부분은 이름만 알고 넘어갔다. 3. Redis는 메모리 기반인데, 서버 장애가 발생하면 데이터가 유실될 수 있지 않나요? Redis에서는 데이터의 영속성을 어떻게 보장하나요?맞다. 메모리는 전원이 나가면 날아가므로, Redis 는 별도로 디스크에 백업하는 수단을 두 가지 제공한다. RDB (Snapshot) 특정 시점의 메모리 전체를 통째로 덤프해서
AOF (Append Only File) 들어온 쓰기 명령을 순서대로 로그 파일에 계속 덧붙이는 방식. 복구할 때는 이 명령들을 처음부터 다시 재생한다.
실무에서는 둘 다 켠다고 한다. 평소 복구는 빠른 AOF 로 하고, RDB 는 백업/전송용으로 둔다. Redis 4.0 부터는 두 개를 섞은 하이브리드 방식(RDB 스냅샷 + 그 이후 변경분은 AOF)도 지원한다고 함. 그리고 애초에 디스크 저장만으로 장애를 다 막을 수는 없다. 서버 자체가 죽으면 그동안 서비스가 멈추는 거니까, 결국
같은 걸 같이 쓰게 된다. 정리하면서 든 생각인데, 캐시로만 쓸 거면 사실 영속성 설정을 꺼두는 게 나을 수도 있겠다 싶다. 어차피 날아가도 db 에서 다시 채우면 되고, 디스크 쓰기 오버헤드만 없어지니까. 근데 캐시가 통째로 비어있는 상태로 재시작하면 db 로 요청이 몰릴 테니 그것도 그것대로 문제일 듯. 실제로 어떻게들 하는지 궁금하다. |
기본 질문1. Redis란 무엇이며, 어떤 상황에서 사용하나요?Redis는 메모리에 데이터를 저장하는 인메모리 데이터베이스입니다. 주요 특징으로는 메모리 기반 작업이라 연산 처리 속도가 우수하며 다양한 자료구조를 지원하고 메모리 데이터베이스이지만 디스크 백업 기능이 존재하기에 영속성 또한 제공합니다. 연산 처리 속도가 우수하다는 장점으로 주로 캐시 서버, 세션 관리, 실시간 정보 제공 등에 사용됩니다. 한줄로 표현하자면 ‘자주 쓰거나 실시간 처리가 필요한 속도 중심의 데이터를 다룬다’라고 할 수 있습니다. 2. Redis와 RDB (MySQL 등)의 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 적절한가요?Redis와 RDB의 큰 차이점은 데이터를 어디에 저장하느냐입니다. Redis는 메모리에 저장하고 RDB는 주로 HDD, SSD의 디스크에 저장합니다. 그래서 연산 처리 속도에서 차이가 존재하고 그 이유 때문에 Redis는 빠른 작업이 요구되는 곳, RDB는 데이터의 정확성, 안정성이 요구되고 복잡한 관계형 조회가 요구될 때 사용합니다. Redis와 RDB는 서로 경쟁 관계의 데이터베이스가 아닌 보완관계이기 때문에 실무에서는 사용자 요청-Redis조회-RDB조회의 순으로 사용하며 만약 Redis 조회 시 데이터가 존재하면 RDB 조회까진 가지 않고 존재하지 않는다면 RDB 조회까지 하는 캐시의 용도로 Redis를 사용해 서로의 장점을 살리고 단점을 보완합니다. 3. Redis는 메모리 기반인데, 서버 장애가 발생하면 데이터가 유실될 수 있지 않나요? Redis에서는 데이터의 영속성을 어떻게 보장하나요?Redis는 기본적으로 디스크 백업 기능이 존재합니다. 두 방식이 있는데 주기적으로 스냅샷을 찍고 디스크에 저장하고 모든 명령을 로그로 남기는 방식입니다. 그래서 만약 Redis가 재시작 될 때 가장 최근의 스냅샷을 복구해서 데이터를 빠르게 복구하고 스냅샷 이후의 데이터는 로그를 바탕으로 되돌립니다. |

Uh oh!
There was an error while loading. Please reload this page.
🗓️ 2026년 8월 19일 수요일
All reactions