Redis Cluster 및 Slot 를 구성해보자!

Karim·2021년 12월 22일
5

Redis 운영

목록 보기
5/7
post-thumbnail

1. Version

💬

  • OS : CentOS Linux release 7.9.2009 (Core)
  • Redis : 6.0.7

2. Redis Cluster 란

💬

  • Cluster란 각 다른 서버를 하나로 묶어 하나의 시스템 퍼럼 동작하게 함으로서 클라이언트에게 고효율성의 기능을 제공한다.
  • 데이터가 분산되어 저장되어있어 트래픽이 분산되는 효과를 얻을 수 있다.
  • 장애가 일어나도 백업 서버의 보완을 통해 데이터 유실없이 서비스를 계속 할 수 있다.

3. 구성 전 확인상황

💬 한마디

  • 저는 테스트 서버가 한정되어 있어서 한 서버에 포트 3개를 띄어서 묶었어요~

4. 구성 전 환경 구성

💬 nodes dir 생성

  • cluster nodes 정보를 넣어주는 파일을 넣어주기 위해 생성

    $ cd bin
    $ mkdir nodes

5. Redis Cluster 로 실행

💬 cluster-enabled 옵션

  • conf 파일에서 설정

    cluster-enabled yes

  • 실행 시 옵션으로 설정
    --cluster-enabled yes --cluster-config-file ./nodes/node_1111.conf

    $ ./redis-server ./conf/redis_1113.conf --bind 0.0.0.0 --port 1113 --pidfile ./pid/redis_1113.pid --dir ./data --logfile ./logs/redis_1113.log --loglevel notice --appendfilename append_1113.aof --maxmemory "0" --cluster-enabled yes --cluster-config-file ./nodes/node_1111.conf

💬 process 확인

  • ps 명령어로 cluster 모드로 띄어졌는지 확인한다.

    $ ps -ef | grep redis
    root 95021 1 0 12:28 ? 00:00:04 ./redis-server 0.0.0.0:1111 [cluster]
    root 95106 1 0 12:28 ? 00:00:04 ./redis-server 0.0.0.0:1112 [cluster]
    root 95168 1 0 12:28 ? 00:00:04 ./redis-server 0.0.0.0:1113 [cluster]

6. Redis Cluster 묶기

💬 해당 서버가 cluster 묶여있는지 확인

  • 확인 redis-cli 명령어

    $ ./redis-cli -p 1111 -c cluster nodes

  • 묶여있지 않으면

    $ ./redis-cli -p 1111 -c cluster nodes
    1a3867468ecef3511f5a8e97ba444375733c1b68 :1111@11111 myself,master - 0 0 0 connected

  • 묶여있으면

    $ ./redis-cli -p 1111 -c cluster nodes
    c495801a7be18b251ade5acfe2e30a68cd352cb7 192.168.124.xxx:1112@11112 master - 0 1640141935321 0 connected
    b054593fdd1b3183b70ed262b2525dbf0ccf333e 192.168.124.xxx:1111@11111 myself,master - 0 1640141933000 1 connected
    3ba4750956e7c9d31ae0f81e8d59eda2f4d427ea 192.168.124.xxx:1113@11113 master - 0 1640141934317 2 connected

💬 meet 옵션

  • node1를 기준으로 cluster 묶기

    $ ./redis-cli -h 192.168.124.xxx -p 1111 cluster meet 192.168.124.xxx 1112
    OK
    $ ./redis-cli -h 192.168.124.xxx -p 1111 cluster meet 192.168.124.xxx 1113
    OK

7. Redis Cluster 확인

💬 -c nodes

  • 확인

    $ ./redis-cli -p 1111 -c cluster nodes
    c495801a7be18b251ade5acfe2e30a68cd352cb7 192.168.124.xxx:1112@11112 master - 0 1640141935321 0 connected
    b054593fdd1b3183b70ed262b2525dbf0ccf333e 192.168.124.xxx:1111@11111 myself,master - 0 1640141933000 1 connected
    3ba4750956e7c9d31ae0f81e8d59eda2f4d427ea 192.168.124.xxx:1113@11113 master - 0 1640141934317 2 connected

8. Redis Cluster slot 설정

💬 slot 이란

  • cluster key를 해시함수로 적용하여 나온 값을 지정한 각 서버에 매핑하여 저정할 수 있게 해주기 위해 설정한다.
  • 한마디로 cluster에 key를 분산되서 저장하기 위해 사용

💬 add slots 옵션

  • 기본 슬롯 범위

    node1 : 0-5460
    node2 : 5461-10922
    node3 : 10923-16383

  • node slot 설정
    각 각 범위를 지정해서 해주면 된다.

    $ ./redis-cli -h 192.168.124.238 -p 1111 cluster addslots {0..5460}
    slots {0..5460}
    OK

9. Redis Cluster slot 확인

💬 -c nodes

  • 확인

    $ ./redis-cli -p 1111 cluster nodes
    b054593fdd1b3183b70ed262b2525dbf0ccf333e 192.168.124.xxx:1111@11111 myself,master - 0 1640143816000 1 connected 0-5460
    c495801a7be18b251ade5acfe2e30a68cd352cb7 192.168.124.xxx:1112@11112 master - 0 1640143819362 0 connected 5461-10922
    3ba4750956e7c9d31ae0f81e8d59eda2f4d427ea 192.168.124.xxx:1113@11113 master - 0 1640143818359 2 connected 10923-16383


📌 여담

  • redis의 꽃은 master slave 다~~

📚 참고

profile
나도 보기 위해 정리해 놓은 벨로그

0개의 댓글