Inflearn brand logo image

인프런 커뮤니티 질문&답변

김지환님의 프로필 이미지
김지환

작성한 질문수

대기업 근무하며 경험한 Redis를 야무지게 사용하는 방법 [이론편]

Redis의 Sync 과정

강의 내용 관련 이해가 잘 되지 않아 질문 남겨봅니다.

해결된 질문

작성

·

58

·

수정됨

0

 main 은 id를 가지고 있고,
이를 복제한 replica 들은 main 의 아이디로 그룹화되어 있음

그런데, main 이 어떠한 일로 인해(삭제 등) 새롭게 만들어지면
새로운 id 를 가지게 됨

이때 구 id 를 가지고 그룹화되어 있는 replica 들은
현재의 main 과 id 가 다르니 전체 동기화가 일어남

그러면,
[구 id 를 가지고 그룹화되어 있는 replica 들] 은 계속 구버전 id 를 가지게 되는건가요?
아니면, 동기화 후 새로운 id 로 다시 그룹화가 되는 걸까요?

추가로, 강의 초반에 위 내용 관련해서 '카프카와 비슷하다'라는 설명이 나왔는데,
카프카에 대해 잘 모르는 입장에서는 조금 혼란스러울 수 있을 것 같습니다.
가능하시다면 추후 강의를 개선하실 계획이 있으실 경우
이 부분을 조금 더 자세히 설명해주시면 좋을 것 같습니다.

답변 2

1

Hong님의 프로필 이미지
Hong
지식공유자

안녕하세요 지환님 질문 남겨주셔서 감사합니다. 내부적인 동기화 과정은 꽤나 복잡하고 어려운 부분입니다 ㅠㅠ 관리형 서비스를 사용하신다면 크게 고려하실 부분은 없지만 직접 구현을 하신다면 이런 부분도 알고 계시면 좋지 않을까 해서 다루어 보았습니다.

 

일단 동기화가 진행이 되게 된다면, 당연하게도 새롭게 탄생하는 master의 ID로 다시 그룹화가 진행이 됩니다. 이런 전체 동기화가 발생을 한다면 일종의 새로운 마스터 노드를 왕으로 모시는 레플리카들이 새로운 왕을 모시기 위해 새로운 ID를 기억하게 된다고 보시면 됩니다.

 

즉 예전 왕 즉 기존 ID는 더이상 유지가 되지 않는다고 이해하시면 됩니다.

 

카프카 관련에서는 사실 다루기에는 너무 난이도가 있어보여서 수강하시는 분들의 이해도를 돕기 위해 살짝만 언급을 하였는데, 이런 부분에서 혼동이 오셨군요. 추후에 시간을 내서 개선하는 방향으로 진행해보도록 하겠습니다.

이렇게 시간내주셔서 질문 남겨주셔서 너무 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 김지환님.

강의에서 언급된 복제본(replicas)과 관련된 내용을 이해하는 데에 혼란이 있으셨군요. Redis의 복제 메커니즘과 관련된 내용은 시스템 아키텍처에서 중요하게 다뤄지며, 이러한 요소들이 데이터를 어떻게 이동시키고 관리하는지 이해하는 것이 핵심입니다.

Redis 복제와 오프셋

복제본 및 그룹화: Redis에서는 마스터-슬레이브 구조를 통해 데이터 복제를 진행합니다. 복제본은 슬레이브 노드 역할을 하며, 데이터의 일관성과 가용성을 높이기 위해 마스터 노드로부터 데이터를 복제받아 그 내용을 유지합니다.

ID와 그룹화: 여기서 ‘ID’는 노드의 고유 식별자일 가능성이 높습니다. 강의에서 ID가 그룹화된다는 것은, 여러 슬레이브 노드(복제본)가 하나의 마스터 노드를 중심으로 복제본 그룹을 형성하여 데이터를 관리한다는 것을 의미할 수 있습니다. 따라서, 슬레이브 노드의 ID는 서로 같을 필요가 없습니다.

오프셋: 주로 Kafka에서 데이터의 처리 위치를 가리키기 위해 사용됩니다. Redis에서도 유사하게, 오프셋은 데이터가 정확히 어느 시점까지 복제되었는지를 표시합니다. 각 복제본이 마스터로부터 데이터를 받을 때, 어느 포인트까지 데이터를 받았는지를 가리키는 인덱스 역할을 합니다.

의문점 설명

  • ID가 다르다는 의미: 복제된 각 슬레이브 노드가 개별적인 ID를 가지는 것은 각 노드가 독립적인 복제본임을 나타내기 위함입니다. 이는 복제 시스템에서 노드를 식별하고 트래픽을 제어하며 문제를 진단하는 데 중요한 부분입니다.

  • Kafka와 비슷하다는 부분: Redis와 Kafka 사이의 비교는, 두 시스템이 데이터를 관리하고 이동시키는 방식에서 유사한 논리를 사용하기 때문에 언급되었을 것입니다. 특히 오프셋 관리나 메시지 소비 모델에서의 차이점을 들어 이해를 도울 수 있습니다.

추가 자료

이전에 관련된 질문과 답변을 참고하면 더 깊이 있는 이해에 도움이 될 수 있습니다.

이 링크에서는 Redis 복제 과정에서의 데이터 일관성과 오프셋 관리에 대해 추가 논의를 하고 있습니다.

추가적인 이해를 돕기 위해 질문자님의 입장에서 설명을 보강해주시면, 향후 강의 내용 개선에 많은 도움이 되리라 생각합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김지환님의 프로필 이미지
김지환

작성한 질문수

질문하기