본문 바로가기
NoSQL/redis

[Redis 3편] Redis 상세 정리 (key, 클러스터, 센티넬)

by 무대포 개발자 2022. 1. 13.
728x90
반응형

목차는 redis 목차 에 있습니다.

source 는 Github 에 있습니다.

[Redis 3편] Redis 상세 정리 (key, 클러스터, 센티넬)

Redis Key

  • 레디스의 키는 문자열을 사용합니다. 허용되는 최대 키 크기는 512MB 입니다.
  • object:id 의 형태 권장합니다.
    • member:1
    • member:2

센티넬

  • 센티넬이란 master/slave 가 정상 동작하는지 모니터링 하며, 문제가 생겼을 경우 조치해주는 모듈
    • 마스터가 문제가 있으면 slave 를 master 로 설정
  • ping 을 통해 노드들의 장애를 판단하며, 여러 대의 Sentinel 에 의해 판단을 합니다.

Redis 클러스터

  • 클러스터란 여러 개 서버를 묶어서 하나의 시스템처럼 동작하게 하는 방식입니다.

Redis 클러스터 특징

  • 데이터 셋을 여러 노드로 자동 분할하는 기능을 제공합니다.
    • Hash slot 을 통해 여러 노드에 데이터를 분배 가능합니다.
    • 노드가 추가되거나 노드가 삭제 되도 다운타임 없이 가능합니다.
    • 고가용성을 제공합니다.
      • 전체 노드 중 일부에 장애가 발생했을 때, 그에 대한 방안이 있습니다. (Master/Slave 교체 등)

Redis 클러스터 성능 측정

  • redis-benchmark 사용해서 성능 측정 가능합니다.
  • redis-benchmark 를 사용할 수 없을 경우 ngrinder, application, server (redis 실행중) 를 두고 ngrinder 에서 호출해서 임계점 파악을 할 수 있습니다.

Redis 를 메인 스토리지로 사용할 수 있을까?

  • 데이터가 적다면 사용할 수 있으나 트래픽이 점점 늘어난다면 서버를 늘려야하고, 샤딩에 대한 문제도 처리해야합니다.
  • 서버를 늘릴 때, 용량을 늘리는 것과 memory 를 늘리는 것은 비용차이가 많이 납니다. 그렇기에 데이터가 많이 늘어나는 상황에서 Redis 메인 스토리지는 사용하기 힘듭니다.

reference

댓글