본문 바로가기
Database

Redis의 Node와 Shard

by BTC_톰캣 2024. 1. 5.

베하 비티시보이즈 입니다.

오늘은 Redis의 노드와 샤드에 대해 알아 보겠습니다!

 

Redis 노드와 샤드

Redis는 메모리 기반 키-값 데이터베이스입니다. Redis는 단일 노드로 구성할 수도 있지만, 여러 노드로 구성하여 클러스터링할 수도 있습니다. 클러스터링을 통해 Redis는 성능과 확장성을 향상시킬 수 있습니다.

 

Redis 클러스터의 기본 구성 요소는 노드와 샤드입니다.

 

Node

Node는 Redis 클러스터의 개별 구성 요소입니다. 노드는 Redis 데이터를 저장하고 처리합니다. 노드는 읽기/쓰기 Primary Node와 Replication Node로 구분됩니다.

  • 읽기/쓰기 노드는 데이터를 읽고 쓸 수 있는 노드입니다. 읽기/쓰기 노드는 클라이언트의 요청을 처리합니다.
  • 복제 노드는 읽기 전용으로 데이터를 복제하는 노드입니다. 복제 노드는 읽기 부하를 분산하고, 읽기/쓰기 노드의 장애 시 데이터 손실을 방지하는 데 사용됩니다.

Shard

Shard는 Redis 클러스터의 데이터를 논리적으로 분할한 영역입니다. Shard 는 하나 이상의 노드로 구성됩니다. Shard 에 있는 모든 노드는 동일한 데이터를 저장합니다.

Redis 클러스터는 여러 개의 Shard 로 구성될 수 있습니다. Shard 는 데이터를 논리적으로 분할함으로써 성능과 확장성을 향상시킬 수 있습니다.

 

 

예시

예를 들어, 다음과 같이 Redis 클러스터를 구성할 수 있습니다.

  • 3개의 노드로 구성된 2개의 샤드

이 경우 각 샤드는 3개의 노드로 구성됩니다. 각 노드는 샤드의 데이터를 읽고 쓸 수 있습니다.

또는 다음과 같이 Redis 클러스터를 구성할 수 있습니다.

  • 1개의 노드로 구성된 1개의 샤드

이 경우 샤드에 있는 모든 데이터는 단일 노드에 저장됩니다.

 

샤드 분할

샤드는 데이터를 논리적으로 분할하는 방법에 따라 다음과 같이 분류할 수 있습니다.

  • 키 기반 샤딩은 데이터를 키의 해시값에 따라 분할하는 방법입니다. 키 기반 샤딩은 데이터를 균등하게 분할할 수 있다는 장점이 있습니다.
  • 값 기반 샤딩은 데이터를 값의 특성에 따라 분할하는 방법입니다. 값 기반 샤딩은 특정 값으로 요청되는 데이터에 대한 성능을 향상시킬 수 있습니다.
  • 사용자 기반 샤딩은 데이터를 사용자의 특성에 따라 분할하는 방법입니다. 사용자 기반 샤딩은 특정 사용자의 데이터에 대한 성능을 향상시킬 수 있습니다.

 

Redis 클러스터의 장점

Redis 클러스터링은 다음과 같은 장점을 제공합니다.

  • 성능 향상

Redis 클러스터는 데이터를 논리적으로 분할함으로써 읽기 성능을 향상시킬 수 있습니다. 또한, 읽기/쓰기 노드를 복제함으로써 쓰기 성능을 향상시킬 수 있습니다.

  • 확장성 향상

Redis 클러스터는 노드를 추가하여 확장할 수 있습니다. 따라서, 데이터 양이나 트래픽 증가에 대응할 수 있습니다.

  • 장애 복구

Redis 클러스터는 복제 노드를 통해 장애 복구를 지원합니다. 읽기/쓰기 노드가 장애가 발생하더라도 복제 노드가 데이터를 제공할 수 있습니다.

 

Redis 클러스터의 단점

Redis 클러스터는 다음과 같은 단점이 있습니다.

  • 복잡성

Redis 클러스터는 단일 노드로 구성된 Redis보다 설정 및 관리가 복잡합니다.

  • 비용

Redis 클러스터를 구성하기 위해서는 여러 노드가 필요합니다. 따라서, 단일 노드로 구성된 Redis보다 비용이 더 들 수 있습니다.

 

 

이번 글로 노드와 샤드를 이해함으로써 Redis 클러스터를 더 효율적으로 관리하는데 도움이 되셨으면 좋겠습니다!

 

자료참고 :

https://docs.redis.com/latest/rdi/

 

Redis Data Integration | Redis Documentation Center

Redis Data Integration (RDI) is a product that helps Redis Enterprise users ingest data in near real-time, so that Redis becomes part of their data fabric without additional integration efforts. RDI currently supports these scenarios: Ingest scenario. RDI

docs.redis.com

https://cla9.tistory.com/102

 

2. Redis 샤딩

서론 이전 포스팅에서 Redis의 기본적인 구조와 복제(Replication)에 대해서 살펴봤습니다. 잠시 복기해보자면, 복제는 Master의 데이터를 Replica에 모두 저장하여 가용성과 읽기 작업의 성능을 높일 수

cla9.tistory.com

 

댓글