Redis 클러스터

  • 레디스를 수평 확장하기 위한 배포 토폴로지.
  • 여러 레디스 노드에 데이터를 분산해 가용성을 높이는 것이 목적.

Data Sharding

  • 레디스 클러스터는 안정 해시를 사용하는 대신 해시 슬롯을 사용한다.
  • 16384개의 해시 슬롯이 있고, 키 공간을 나누어 데이터를 샤딩한다.
  • 여러 노드에 키가 분산되어 있으면 MGET, MSET을 사용할 수 없음:
    • 따라서 단일 레디스만 사용하는 코드베이스를 클러스터로 마이그레이션할 때 수정이 필요함.
    • 해시 태그를 이용해 하나의 노드에 키를 묶어서 저장할 수 있음:
      • key:{group}:value 형태로 저장하면 {group}에 따라 키가 분산되지 않고 하나의 노드에 저장됨.
      • 이러헥 하면 해당 group에 대한 MGET, MSET을 사용할 수 있음.
      • 단, 해시 태그를 남용하면 레디스 클러스터의 장점인 가용성을 잃게 됨.

참고자료

이 문서를 인용한 문서