메뉴 건너뛰기

MJ SOFTWARE LAB

redis 클러스터 구축

관리자 2018.10.17 23:56 조회 수 : 44

 

redis 클러스터 구축
 
요약)
- 1개 서버에서 여러개의 레디스를 인스턴스를 실행하여 클러스터 구축하기.
-마스터3대 슬레이브3대 구조.
-무정지 시스템 수준에 고가용성이 목적이 아닌 테스트 환경을 위한 간단한 클러스터링 작업.
- 레디스 설치 과정을 동일하며 클러스터 연결은 redis-trib 를 이용한다.(명령어 하나로 간단하게 구축이 가능함)
- 각 레디스 노트 별로 서버를 분리하는 것은 구축 다를 것임으로 별도로 확인 필요.
- 레디스 실행시 포트를 다르게 하여 여러 노드를 실행 시킨다.
  이때 각 프로세스 별로 conf 파일을 별도로 생성하여야 한다.
 

 
 
 
[환경]
os: ubuntu 14.04 LTS
-ruby 설치를 위한 패키지 설치 내용이외에는 os 여부에 따라서 내용이 크게 바뀌지는 않는다.
 
기본 필수 패키지 설치
 
#apt-get install -y gcc
#apt-get install -y make
 
 
루비 최신 패키지 레파지토리 추가 (클러스터 구축시 redis-trib.rb  사용하려면 루비 2.2 이상 필요)
#apt-add-repository ppa:brightbox/ruby-ng
#apt-get update
 
#apt-get install -y ruby
#apt-get install -y rubygem-*
gem install redis
 
 
 
레디스 설치(https://redis.io 참고)
 
#wget http://download.redis.io/redis-stable.tar.gz
#tar xvzf redis-stable.tar.gz
#cd redis-stable
#make
#make install
 
 
 
 
1.redis conf 세팅
-설치 경로ex. /usr/local/bin/
-포트는 7001 ~ 7006으로 가정 
 
1)conf 폴더 생성
#mkdir redis_conf
#cd redis_conf
#mkdir 7001 ~ 7007
 
2)conf 파일 복사
cp /home/redis/redis.conf /usr/loca/bin/redis_conf/7001/redis.conf
cp /home/redis/redis.conf /usr/loca/bin/redis_conf/7002/redis.conf
... 
(7001~ 7006번 폴더까지 모두 복사)
(/home/redis/redis.conf 은 각자 redis 다운로드 경로)
 
3)conf 파일 수정
 
#vim /usr/loca/bin/redis_conf/7001/redis.conf
 
다른 서버에 오픈 할것이라면 ip 지정 혹은 주석처리
bind 127.0.0.1 => #bind 127.0.0.1
protected-mode yes => protected-mode no
 
redis.conf 파일 수정
#키워드로 검색하여 포트와 경로는 자신의 설정에 맞게 변경한다.
 
port 7001 (~7006)
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 3000
appendonly yes
dir /path/to/7001/ (각 포트별로)
 
 
 
레디스 실행
#[path]/redis-server [path]/redis.conf ( & 를 마지막에 붙이면 백그라운드 실행)
 
ex) 
#cd /usr/local/bin
#./redis-server redis_conf/7001/redis.conf&
#./redis-server redis_conf/7002/redis.conf&
#./redis-server redis_conf/7003/redis.conf&
...(7006 까지 실행)
 
4)서비스 확인
#ps -ef | grep redis
 
아래 화면과 같이 [cluster] 표시가 있어야 한다.

 

 

 

Image.png

 

 

 

2.클러스터 구성
 
 
#cd [redis 설치 경로] ex) cd /home/redis-stable
#./src/redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
 
클러스터 구성이 완료되면 redis-cli 접속하여 속성 확인
 
#redis-cli -c -p 7001 => -c는 클러스터 옵션 -p 는 해당 포트로 접속
>cluster info => 상태 확인
>info => 상세 정보
 

 

redis-cli에서 각 포트 마다 role과 connected_slaves 연결 상태를 확인하여 점검한다.
 
 
Image [2].png

 

 

3.서버 실행시 자동 시작 설정(선택사항)
 
rc.local 을 이용하여 서버 시작시 redis가 자동으로 올라오도록 설정.
 
/etc/rc.local => 자동 실행 목록
 
/etc/init.d
#vim ./redis-start.sh
 
스크립트 파일 생성후 redis 실행 명령어 스크립트 작성
 
ex)
 
#!/bin/bash
/usr/local/bin/redis-server /usr/local/bin/redis_conf/7001/redis.conf&
/usr/local/bin/redis-server /usr/local/bin/redis_conf/7002/redis.conf&
/usr/local/bin/redis-server /usr/local/bin/redis_conf/7003/redis.conf&
/usr/local/bin/redis-server /usr/local/bin/redis_conf/7004/redis.conf&
/usr/local/bin/redis-server /usr/local/bin/redis_conf/7005/redis.conf&
/usr/local/bin/redis-server /usr/local/bin/redis_conf/7006/redis.conf&
 
 
#chmod 777 redis-start.sh
#cp ./redis-start.sh /etc/init.d/redis-start.sh
 
rc.local 등록
#vim /etc/rc.local
 

 

*os따라서 rc.local 에 관하여서 실행 권한 추가가 필요하다.
 
Image [3].png

 

 

서버 재부팅하여 ps -ef | grep redis 로 서비스 확인.
 
 
 
 

참고 사이트
 
레디스 공식 사이트
 
레디스 게이트: 클러스터구축 설명 

http://redisgate.kr/redis/cluster/cluster_configuration.php

클러스터 명령어 실행시 오류 리포트
 
ruby 2.4 설치 방법

 

 

번호 제목 글쓴이 날짜 조회 수
» redis 클러스터 구축 file 관리자 2018.10.17 44