개발/Redis

Redis Cluster 란?

소금집사 2024. 1. 8. 10:57
반응형

Redis는 인메모리 데이터 저장과 캐시에 Redis를 사용합니다.

Redis Cluster는 여러 Redis 서버에 데이터를 자동으로 sharding 해주는 기술입니다. Cluster 운영중에 노드중 일부가 장애를 겪고 있더라도 작업을 계속할 수 있습니다.


 

Redis Clustering

  • Redis Cluster는 Master-Slave 노드 구성을 사용하여, 분산환경을 제어한다.
  • 클러스터에 필요한 최소 노드수 는 6개이고, Redis 3버전 이상에서 구성 가능하다.
  • 일부 노드가 실패하거나 통신 할 수 없을 때 작업을 계속할 수 있지만 대다수의 Master 노드가 사용할 수없는 경우 클러스터가 중지된다.

 

구성도

Redis Cluster 구성도

  • 위 구성도는 4개의 서버에 대한 각 노드들의 Master-Slave 관계를 의미한다.
  • Master 노드의 포트는 1001이며, Slave노드의 포트는 1002로 구성되어있다.
  • Server #1에 문제가 생겨 더 이상 통신 할 수 없다면, 자동으로 Server #2의 node-1002가 Master 노드가 되며, 작업을 계속 진행 할 수 있다.

 

Redis Clustering Client

Redis cluster client

  • Master 1,2,3,4 이 있다면 데이터는 4개중에 하나의 Master노드에 저장된다.
  • Client가 데이터 읽기 요청 시 저장된 곳이 아닌 다른 Mater 노드에 요청 했다면 저장된 Master 노드 정보를 알려주며, Client는 전달받은 Master 노드 정보에 다시 요청해서 데이터를 받아와야 한다.
  • Redis-cluster를 지원하는 라이브러리에서는 Master 노드 정보를 통해 자동으로 데이터를 읽어 오는 기능을 제공한다.

 

반응형