-
Redis 설치 및 Cluster 구성설치&설정 관련 2017. 3. 7. 10:58728x90
Redis 설치 및 Cluster 구성
1. 계정을 생성 한다.
$> adduser redis
2. open file 갯수에 대한 Limit 을 변경한다.
$> vi /etc/security/limits.conf redis soft nofile 65535 redis hard nofile 65535
3. 메모리 스와핑을 최소로 사용하도록 설정을 한다.
$> sysctl -w vm.swappiness=1 이후 재기동 이후 반영을 위해 $>vi /etc/sysctl.conf vm.swappiness=1
4. 메모리를 다 사용해도 충분한 메모리가 있는 것처럼 처리 한다.
$> sysctl -w vm.overcommit_memory=1 이후 재기동 이후 반영을 위해 $> vi /etc/sysctl.conf vm.overcommit_memory=1 추가
5. 네트워크 연결 개수를 설정 한다.
$> sysctl -w net.core.somaxconn=65535 이후 재기동 이후 반영을 위해 $> vi /etc/rc.local sysctl -w net.core.somaxconn=65535
6. System Hang 을 막기 위해 THP 사용 안하도록 설정 한다.
$> echo never > /sys/kernel/mm/transparent_hugepage/enabled 이후 재기동 이후 반영을 위해 $> vi /etc/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled
7. Redis 설치 - redis 계정으로 진행
# Source Download $> wget http://download.redis.io/releases/redis-3.2.6.tar.gz # 압축 헤제 $> tar xvzf redis-3.2.6.tar.gz # 해제된 디렉토리 이동 $> cd redis-3.2.6 # 설치 진행 $> make # 에러 발생시 다음 진행 $> yum install gcc-c++ $> make distclean $> make # /usr/local/bin에 실행 파일 복사됨, root 권한 필요 $> make install
8. Cluster 구성
8.1 Conf File 수정
$> vi redis conf #원격 서버에서 접속 가능하게 설정하려면 no로 지정 protected-mode no tcp-keepalive 60 loglevel notice logfile "/var/log/redis/redis_5543.log" daemonize yes #포트 지정 port 5543 #bind 127.0.0.1를 주석 처리 # bind 127.0.0.1 #비밀번호 지정 requirepass <password> masterauth <password> #yes로 설정시 클러스터 모드, no로 설정시 standalone 모드로 시작 cluster-enabled yes #클러스터의 상태를 기록하는 바이너리 파일 경로 cluster-config-file nodes_5543.conf #레디스 노드가 다운되었는지 판단하는 시간 단위는 millisecond. cluster-node-timeout 3000 #다운 시도 횟수 cluster-slave-validity-factor 2 #위치 지정 pidfile /var/run/redis/redis_5543.pid dbfilename dump-5543.rdb # appendonly 는 변경시 해당 명령을 저장해 두었다가, 복구시 저장된 명령을 순서대로 실행하는 옵션 appendonly yes
8.2 인스턴스 시작
$> $REDIS_BIN/redis-server $REDIS_NODE_CONF/redis-${port}.conf #7000 ~ 7002 까지 인스턴스 실행 예 $> $REDIS_BIN/redis-server $REDIS_NODE_CONF/redis-7000.conf $> $REDIS_BIN/redis-server $REDIS_NODE_CONF/redis-7001.conf $> $REDIS_BIN/redis-server $REDIS_NODE_CONF/redis-7002.conf
8.3 인스턴스별 슬롯 할당
$> redis-cli -c -h 124.66.185.75 -p 7000 -a <password> cluster addslots {0..5460} $> redis-cli -c -h 124.66.185.75 -p 7001 -a <password> cluster addslots {5461..10922} $> redis-cli -c -h 124.66.185.75 -p 7002 -a <password> cluster addslots {10923..16383}
8.4 epoch 설정
$> redis-cli -c -h 124.66.185.75 -p 7000 -a <password> cluster set-config-epoch 1 $> redis-cli -c -h 124.66.185.75 -p 7001 -a <password> cluster set-config-epoch 2 $> redis-cli -c -h 124.66.185.75 -p 7002 -a <password> cluster set-config-epoch 3
8.5 meet nodes
$> redis-cli -c -h 124.66.185.75 -p 7000 -a <password> cluster meet 124.66.185.75 7001 $> redis-cli -c -h 124.66.185.75 -p 7002 -a <password> cluster meet 124.66.185.75 7001
8.6 salve 추가
8.6.1 meet slave to master
$> redis-cli -c -h 124.66.185.75 -p 7002 -a <password> cluster meet 124.66.185.71 6000
8.6.2 regist slave to master
#node-id 는 70002의 노드 ID 이어야 한다. $> redis-cli -c -h 124.66.185.71 -p 6000 -a <password> cluster replicate <node-id>
참고 자료
http://www.redisgate.com/redis/cluster/cluster_cmd_intro.php
http://knight76.tistory.com/entry/redis-AOF-appendonlyfile
http://knight76.tistory.com/entry/redis-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%84%A4%EC%A0%95-%EA%B4%80%EB%A0%A8-%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94-%EC%BD%94%EB%93%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%98%A4%EB%B2%84%EC%BB%A4%EB%B0%8B-THP728x90'설치&설정 관련' 카테고리의 다른 글
[CentOS 6]Postgresql 소스 설치 (0) 2017.06.01 Maven-site-plugin 사용법 (0) 2017.03.17 [Jekyll]github에 개인 블로그 구축 하기 (0) 2017.02.03 [Jenkins] Maven 프로젝트 Build 하기 (0) 2016.10.31 [NGINX] proxy_pass 설정 후 상세 내용 LINK URL 패턴 자동 변경 (0) 2016.08.01