목차
환경 배포
Redis 환경 배포
redis 다중 인스턴스 구성
Redis 클러스터 클러스터 구축
클러스터 프로덕션 클러스터 배포
클러스터 클러스터 장애 조치
환경 배포
1. 방화벽을 끄세요
2. 두 가상 머신의 구성 내용을 다음과 같이 준비합니다.
redis -마스터 |
192.168.108.67 |
7000 |
redis-master01 |
7001 |
redis-master02 |
||
7002 |
redis-master03 |
||
redis -슬레이브 |
192.168.108.189 |
8000 |
redis-slave01 |
8001 |
redis-slave02 |
||
8002 |
redis-slave03 |
3. 각 호스트 이름 redis-master 및 redis-slave를 수정합니다.
【192.168.108.67】【redis-마스터】
【192.168.108.189】【redis-slave】
4. 모든 원본 파일을 표면에 배치하도록 yum 창고를 구성합니다.
Redis 환경 배포
redis 컴파일, 배포 및 기본 최적화
먼저 준비된 소스코드 패키지를 가상머신에 드래그해 주시고, rz 명령어를 이용하시거나 직접 드래그하시면 됩니다.
그런 다음 다음 명령을 실행하십시오.
[root@redis-master ~]# yum -y install wget gcc gcc-c++ make tar openssl openssl-devel cmake
[root@redis-master ~]# tar xf redis-4.0.10.tar.gz -C /usr/src/
redis-4.0.10.tar.gz 파일의 압축을 /usr/src/ 디렉터리에 푼다
[root@redis-master ~]# cd /usr/src/redis-4.0.10/
redis-4.0.10 디렉터리로 전환합니다.
[root@redis-master redis-4.0.10]# make
Redis 컴파일
[root@redis-master redis-4.0.10]#make MALLOC=jemalloc #조각화 방지 및 확장 가능한 동시성 지원
Redis의 메모리 할당자로 jemalloc 사용
[root@redis-master redis-4.0.10]# make PREFIX=/usr/local/redis install
컴파일된 Redis를 /usr/local/redis 디렉터리에 설치합니다.
[root@redis-master redis-4.0.10]# mkdir -p /usr/local/redis/conf
`/usr/local/redis` 디렉토리 아래 `conf`라는 하위 디렉토리를 생성하고, `/usr/local/redis` 디렉토리가 존재하지 않으면 해당 디렉토리도 생성됩니다.
Redis 프로그램 명령 최적화
[root@redis-master redis-4.0.10]# cp sentinel.conf /usr/local/redis/conf/ #redis sentinel 구성 파일
`sentinel.conf` 파일을 `/usr/local/redis/conf/` 디렉터리에 복사합니다.
[root@redis-master redis-4.0.10]# cp src/redis-trib.rb /usr/local/redis/bin/ #redis-cluster
`redis-trib.rb` 파일을 `/usr/local/redis/bin/` 디렉터리에 복사합니다.
/usr/local/redis/bin/ 디렉터리의 모든 파일을 /usr/local/bin/ 디렉터리의 소프트 링크로 생성합니다. 이렇게 하면 redis 관련 명령어를 /usr/local/bin/ 디렉터리에서 직접 사용할 수 있습니다.
[root@redis-master redis-4.0.10]# ln -s /usr/local/redis/bin/* /usr/local/bin/
[redis-slave도 redis를 설치해야 하며, 단계는 위와 동일합니다.]
간소화된 Redis 구성 파일
[root@redis-master redis-4.0.10]# cp redis.conf /usr/local/redis/conf/
현재 디렉터리의 `redis.conf` 파일을 `/usr/local/redis/conf/` 디렉터리에 복사합니다.
[root@redis-master redis-4.0.10]# cd /usr/local/redis/
`/usr/local/redis/` 디렉토리를 입력하세요
[root@redis-master redis]# cp conf/redis.conf{,.bak}
`conf/redis.conf` 파일을 복사하고 이름을 `conf/redis.conf.bak`로 바꿉니다.
[root@redis-master redis]# egrep -v "^$|^#" conf/redis.conf.bak > conf/redis.conf
`egrep` 명령을 사용하여 `conf/redis.conf.bak` 파일에서 `#`으로 시작하는 빈 줄과 주석 줄을 필터링하고 결과를 `conf/redis.conf` 파일에 출력합니다. 빈 줄, 줄, 주석을 제거합니다.
시스템 튜닝 구성
에코 절대 > /sys/kernel/mm/transparent_hugepage/enabled
투명 거대 페이지의 활성화 상태를 "never"로 설정하여 투명 거대 페이지를 비활성화합니다.
에코 절대 > /sys/kernel/mm/transparent_hugepage/defrag
투명 hugepages의 조각 모음 상태를 "never"로 설정하고 투명 hugepages도 비활성화합니다.
echo '에코 절대 > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
시스템이 다시 시작된 후에도 투명 거대 페이지가 여전히 비활성화되어 있는지 확인하기 위해 시스템이 시작될 때 실행되는 스크립트 파일 `/etc/rc.local`에 위의 두 명령을 추가합니다.
echo "* - nofile 10240" >> /etc/security/limits.conf -- 동시 파일 수
echo "net.core.somaxconn = 10240" >> /etc/sysctl.conf --수신 대기열
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf -- 0 메모리가 부족하면 애플리케이션이 거부됩니다.
1. 물리적인 메모리를 할당받을 수 있으며, 메모리가 있는 한 계속 사용하므로 메모리 신청 실패 문제를 피할 수 있습니다.
sysctl -p
redis 다중 인스턴스 구성
redis-master에서 작업
[root@redis-master ~]# mkdir -p /data/redis-cluster
`/data/redis-cluster` 경로를 사용하여 `redis-cluster`라는 디렉터리를 만듭니다. `-p` 옵션은 상위 디렉토리가 존재하지 않으면 자동으로 생성된다는 의미입니다.
[root@redis-master ~]# cd /data/redis-cluster
`/data/redis-cluster` 디렉터리로 전환하세요.
[root@redis-master redis-cluster]# mkdir 7000 7001 7002
현재 디렉터리에 '7000', '7001', '7002'라는 세 개의 하위 디렉터리를 만듭니다.
[root@redis-master redis-cluster]# cp /usr/local/redis/conf/redis.conf /data/redis-cluster/7000/
`/usr/local/redis/conf/redis.conf` 파일을 `/data/redis-cluster/7000/` 디렉터리에 복사합니다.
[root@redis-master redis-cluster]# cp /usr/local/redis/conf/redis.conf /data/redis-cluster/7001/
`/usr/local/redis/conf/redis.conf` 파일을 `/data/redis-cluster/7001/` 디렉터리에 복사합니다.
[root@redis-master redis-cluster]# cp /usr/local/redis/conf/redis.conf /data/redis-cluster/7002/
`/usr/local/redis/conf/redis.conf` 파일을 `/data/redis-cluster/7002/` 디렉터리에 복사합니다.
[root@redis-master redis-cluster]# 트리 /data/
`/data/` 디렉토리의 파일과 하위 디렉토리를 트리 구조로 표시합니다.
redis-slave에서 작동
[root@redis-slave ~]# mkdir -p /data/redis-cluster
/data/redis-cluster 경로를 사용하여 redis-cluster라는 폴더를 생성합니다. 이 경로에 폴더가 없으면 자동으로 생성됩니다.
[root@redis-slave ~]# cd /data/redis-cluster
redis-cluster 폴더를 입력하세요.
[root@redis-slave ~]# mkdir 8000 8001 8002
redis-cluster 폴더 아래에 세 개의 폴더를 만들고 이름을 각각 8000, 8001 및 8002로 지정합니다.
redis-master 구성 파일을 redis-slave 호스트에 복사합니다.
[root@redis-master ~]에서 작업#
[root@redis-master ~]#
scp /data/redis-cluster/7000/redis.conf 192.168.108.189:/data/redis-cluster/8000/
로컬 `/data/redis-cluster/7000/redis.conf` 파일을 원격 호스트 `192.168.108.189`의 `/data/redis-cluster/8000/` 디렉터리에 복사합니다.
[root@redis-master ~]#
scp /data/redis-cluster/7000/redis.conf 192.168.108.189:/data/redis-cluster/8001/
로컬 `/data/redis-cluster/7000/redis.conf` 파일을 원격 호스트 `192.168.108.189`의 `/data/redis-cluster/8001/` 디렉터리에 복사합니다.
[root@redis-master ~]#
scp /data/redis-cluster/7000/redis.conf 192.168.108.189:/data/redis-cluster/8002/
로컬 `/data/redis-cluster/7000/redis.conf` 파일을 원격 호스트 `192.168.108.189`의 `/data/redis-cluster/8002/` 디렉터리에 복사합니다.
redis-slave에서 보기 [트리가 없으면 yum -yinstall tree 명령으로 설치하면 됩니다.]
[root@redis-slave ~]# tree /data는 `/data` 디렉토리 아래의 디렉토리 구조를 표시합니다.
redis-master 및 redis-slave의 redis.conf 구성 파일 수정
참조 템플릿을 구성하고 구성 파일에서 해당 포트를 수정합니다.
[빨간색 부분이 수정된 내용입니다]
[root@redis-master redis-cluster]# vim 7000/redis.conf Open [7001 및 7002를 구성해야 합니다. 다음 구성에서 올바른 포트를 수정하면 됩니다.]
클러스터 지원 예
바인드 0.0.0.0
포트 7000
pidfile /data/redis-cluster/7000/redis.pid
로그 파일 "/data/redis-cluster/7000/redis.log"
디렉토리 /data/redis-cluster/7000/
tcp-백로그 1024
시간 초과 0
TCP-킵얼라이브 0
악마화하다 예
로그 수준 알림
데이터베이스 16
stop-writes-on-bgsave-error 예
RDB압축 예
rdbchecksum 예
db파일명 "dump.rdb"
슬레이브 서비스 오래된 데이터 예
슬레이브 읽기 전용 예
repl-디스크 없는 동기화 아니요
repl-디스크 없는 동기화-지연 5
repl-disable-tcp-nodelay 아니오
슬레이브 우선순위 100
게으른-게으른 퇴거 아니오
게으른 자유 게으른 만료 아니오
게으른 자유-게으른-서버-델 아니오
노예 게으른 플러시 아니요
부록으로 아니요
추가 파일 이름 "appendonly.aof"
매초마다 Appendfsync
no-appendfsync-on-rewrite 예
자동 재작성 비율 100
자동-Aof-다시 쓰기-최소 크기 64MB
aof-load-truncated 예
루아 시간 제한 5000
느린 로그-로그-느린-10000보다
느린 로그-최대-렌 128
대기 시간-모니터-임계값 0
알림-키스페이스-이벤트 ""
해시-최대-ziplist-항목 512
해시-최대-ziplist-값 64
목록-최대-ziplist-항목 512
목록-최대-ziplist-값 64
set-max-intset-항목 512
zset-max-ziplist-항목 128
zset-max-ziplist-값 64
hll-스파스-최대-바이트 3000
활성해싱 예
클라이언트 출력 버퍼 제한 정상 0 0 0
클라이언트 출력 버퍼 제한 슬레이브 256mb 64mb 60
클라이언트 출력 버퍼 제한 pubsub 32mb 8mb 60
10헤르츠
aof-rewrite-incremental-fsync 예
redis-master의 여러 인스턴스 시작
[root@redis-master ~]# redis-server /data/redis-cluster/7001/redis.conf
[root@redis-master ~]# redis-server /data/redis-cluster/7002/redis.conf
[root@redis-master ~]# redis-server /data/redis-cluster/7000/redis.conf
Redis 클러스터를 시작하는 명령으로 포트 번호 7000, 7001, 7002에 해당하는 3개의 Redis 노드가 각각 시작됩니다. 각 노드는 서로 다른 구성 파일(redis.conf)을 사용하여 Redis 관련 매개변수를 구성합니다. 이러한 방식으로 Redis 클러스터를 구축하면 분산 스토리지와 데이터의 고가용성을 달성할 수 있습니다.
구성 파일이 시작되도록 구성되지 않은 경우 다음 효과가 발생하며 Ctrl+C를 눌러 중단해야 합니다.
구성이 성공하면 구성 파일이 원활하게 시작됩니다.
Redis 관련 네트워크 연결 및 프로세스 정보를 모두 찾아보세요.
[root@redis-master ~]# netstat -antup | 그렙 레디스
Redis 클러스터 클러스터 구축
먼저 준비된 Ruby 소스 코드 패키지를 가상 머신으로 드래그합니다.
[root@redis-master ~]# tar xf ruby-2.5.1.tar.gz -C /usr/src/
ruby-2.5.1.tar.gz 파일의 압축을 풀고 파일 내용을 /usr/src/ 디렉터리에 추출합니다.
[root@redis-master ~]# cd /usr/src/ruby-2.5.1/
/usr/src/ruby-2.5.1/ 디렉토리를 입력하세요.
[root@redis-master ruby-2.5.1]# ./configure && make && make install
컴파일 환경을 구성하기 위해 `configure` 명령 실행 Ruby 소스 코드를 컴파일하기 위해 make 명령 실행 `make install` 명령을 실행하여 컴파일된 Ruby를 시스템에 설치하기
[root@redis-master ruby-2.5.1]# ruby --version
설치된 Ruby 버전을 보려면 ruby --version 명령을 실행하십시오.
Ruby의 Redis 확장 프로그램을 온라인으로 설치하세요.
[root@redis-master ruby-2.5.1]# /usr/local/bin/gem install redis
이는 Redis 데이터베이스용 Ruby 클라이언트 라이브러리를 설치하는 데 사용되는 명령줄 지침입니다. Ruby 프로젝트에서 Redis 데이터베이스를 사용할 수 있도록 Redis 클라이언트 라이브러리를 컴퓨터에 설치합니다.
redis-master에서 작업
[root@redis-master~]#redis-trib.rb 생성 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002
세 개의 노드, 즉 127.0.0.1:7000, 127.0.0.1:7001 및 127.0.0.1:7002를 포함하는 Redis 클러스터를 생성하는 데 사용됩니다. 이 세 개의 노드는 분산된 스토리지와 데이터의 고가용성을 달성하기 위해 Redis 클러스터를 형성합니다.
클러스터 클러스터의 빌드 노드 정보 보기
[root@redis-master ~]# redis-cli -p 7000 클러스터 노드
이 명령을 실행하면 Redis 서버는 노드의 ID, IP 주소, 포트 번호, 역할(마스터 노드 또는 슬레이브 노드), 상태 등을 포함한 모든 노드 정보가 포함된 목록을 반환합니다. 이 정보는 관리자가 Redis 클러스터의 토폴로지 및 노드 상태를 이해하고 클러스터 관리 및 문제 해결을 수행하는 데 도움이 될 수 있습니다.
ls /데이터/redis-cluster/7000/
이 명령은 해당 경로 아래에 있는 파일과 폴더를 나열합니다.
고양이 /data/redis-cluster/7000/nodes.conf
node.conf 파일을 보면 클러스터 관리 및 문제 해결을 위해 Redis 클러스터에 있는 각 노드의 구성 및 상태 정보를 이해할 수 있습니다.
redis-cli를 사용하여 클러스터를 작동하려면 -c 매개변수를 추가해야 합니다.
redis-cli -c: 클러스터 모드를 활성화합니다(-ASK 및 -MOVED 리디렉션을 따릅니다).
이는 Redis 명령줄 도구 redis-cli에 대한 옵션입니다. -c 옵션은 클러스터에서 노드 리디렉션(-ASK 및 -MOVED) 작업을 자동으로 처리하는 Redis 클러스터 모드를 활성화하는 데 사용됩니다. 클러스터 모드에서 Redis는 여러 노드에 데이터를 분산하고 자동 리디렉션을 통해 데이터 읽기 및 쓰기 작업을 처리합니다. -c 옵션을 사용하여 redis-cli가 클러스터 모드에서 제대로 작동하는지 확인하세요.
redis-master에서 작업
[root@redis-master ~]# redis-cli -c -p 7000
127.0.0.1:7000> 이름 설정 crushlinux
키 이름 "name"의 값을 "crushlinux"로 설정합니다.
127.0.0.1:7001> 연령을 18로 설정
"age" 키의 값을 "18"로 설정합니다. 이 명령은 Redis 데이터베이스에서 키-값 쌍을 설정하는 데 사용됩니다.
탈중앙화(탈중앙화는 중앙점의 힘을 말한다), 어떤 출입구든
[root@redis-master ~]# redis-cli -c -p 7000 이름 가져오기
[root@redis-master ~]# redis-cli -c -p 7001 이름 가져오기
[root@redis-master ~]# redis-cli -c -p 7002 이름 가져오기
이는 Redis 명령줄 도구 redis-cli를 사용하는 명령입니다. 여기서 -c는 클러스터 모드 연결을 사용한다는 의미이고, -p 7000은 포트 번호 7000을 사용하여 Redis 인스턴스에 연결한다는 의미입니다. get name은 name이라는 키에 해당하는 값을 가져오는 것을 의미합니다.
redis-slave에서 작동
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7000 이름 가져오기
Redis 명령줄 도구(redis-cli)를 사용하여 IP 주소 192.168.108.67, 포트 번호 7000으로 Redis 서버에 연결하고 "name"이라는 키에 해당하는 값을 가져오는 명령입니다.
127.0.0.1:7001에서 Redis에 연결할 수 없습니다: 연결이 거부되었습니다. #rejected
127.0.0.1:7001에서 Redis에 연결할 수 없습니다: 연결이 거부되었습니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7001 이름 가져오기
"crushlinux" #7001명만 성공
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7002 이름 가져오기
127.0.0.1:7001에서 Redis에 연결할 수 없습니다: 연결이 거부되었습니다. #rejected
127.0.0.1:7001에서 Redis에 연결할 수 없습니다: 연결이 거부되었습니다.
redis-cluster에 원격으로 접근할 때 거부되었습니다. 클러스터를 생성할 때 로컬 IP 127.0.0.1로 생성했기 때문에 클러스터 클러스터는 로컬로 접근할 때만 작동할 수 있기 때문입니다.
원격으로 포트 7001에 접근할 때 성공할 수 있는 이유는 원래 포트 7001을 수신하는 Redis에 데이터가 존재하기 때문에 -c를 추가하지 않고도 성공적으로 접근할 수 있기 때문입니다.
클러스터 프로덕션 클러스터 배포
redis-master에서 작업
[root@redis-master ~]# ls /data/redis-cluster/7000
지정된 디렉터리의 파일과 폴더를 나열하는 데 사용됩니다. 이 예에서 `ls /data/redis-cluster/7000`은 `/data/redis-cluster/7000` 디렉터리에 있는 파일과 폴더를 나열한다는 의미입니다.
[root@redis-master ~]# ls /data/redis-cluster/7001
[root@redis-master ~]# ls /data/redis-cluster/7002
클러스터 구성 파일 삭제
[root@redis-master ~]# rm -rf /data/redis-cluster/7000/nodes.conf
[root@redis-master ~]# rm -rf /data/redis-cluster/7001/nodes.conf
[root@redis-master ~]# rm -rf /data/redis-cluster/7002/nodes.conf
지정된 경로 아래의 파일이나 디렉터리를 삭제하는 데 사용됩니다. 특히 이 명령은 "/data/redis-cluster/7000/nodes.conf" 경로의 파일을 삭제합니다.
[root@redis-master ~]# redis-cli -p 7000 종료
[root@redis-master ~]# redis-cli -p 7001 종료
[root@redis-master ~]# redis-cli -p 7002 종료
Redis 서버에서 지정된 포트 번호의 인스턴스를 닫는 데 사용됩니다.
Redis 서버 시작
[root@redis-master ~]# redis-server /data/redis-cluster/7000/redis.conf
[root@redis-master ~]# redis-server /data/redis-cluster/7001/redis.conf
[root@redis-master ~]# redis-server /data/redis-cluster/7002/redis.conf
redis-cluster 클러스터 다시 만들기
[root@redis-master ~]# redis-trib.rb 생성 192.168.108.67:7000 192.168.108.67:7001 192.168.108.67:7002
[root@redis-master ~]# ps -ef | 그렙 클러스터 | grep -v grep
grep 명령 자체를 제외하고 "cluster" 키워드를 포함하는 실행 중인 모든 프로세스를 찾아 표시합니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7000 이름 설정 crushlinux
Redis 명령줄 도구(redis-cli)를 사용하여 IP 주소 192.168.200.111 및 포트 번호 7000을 사용하여 Redis 서버에 연결하고 set 명령을 실행합니다. set 명령은 키-값 쌍을 Redis 데이터베이스에 저장하는 데 사용됩니다. 여기서 "name"이라는 키 값은 "crushlinux"로 설정됩니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7001 이름 가져오기
Redis 명령줄 도구(redis-cli) 명령을 사용하여 IP 주소 192.168.200.111 및 포트 번호 7001을 사용하여 Redis 서버에 연결하고 "name"이라는 키에 해당하는 값을 가져옵니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7002 이름 가져오기
Redis 명령줄 도구(redis-cli)를 사용하여 IP 주소 192.168.200.111 및 포트 번호 7002를 사용하여 Redis 서버에 연결하고 get 명령을 실행하여 "name" 키 값을 가져옵니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7001
192.168.200.111:7001> 이름 가져오기
"name"이라는 키에 해당하는 값을 가져오는 것을 나타냅니다.
192.168.200.111:7001> 18세로 설정
"age"라는 키 값을 18로 설정했음을 나타냅니다.
192.168.200.111:7000> 나이 가져오기
"age"라는 키에 해당하는 값을 가져오는 것을 나타냅니다.
192.168.200.111:7000> 종료
키의 클러스터 분포를 관찰하기 위한 데이터 일괄 가져오기
[root@redis-slave ~]# for line in `seq -w 10000`;do redis-cli -h 192.168.108.67 -p 7000 -c set key3_${line} value_${line};done
이 코드는 일련의 키-값 쌍을 Redis 데이터베이스에 설정하는 루프입니다. 그 중 '192.168.108.67'은 Redis 서버의 IP 주소이고, '7000'은 Redis 서버의 포트 번호입니다. 1부터 10000까지 반복하면서 매번 키-값 쌍을 설정합니다. 키 형식은 'key3_number'이고 값 형식은 'value_number'입니다. 이 코드의 기능은 일련의 키-값 쌍을 Redis 데이터베이스에 저장하는 것입니다.
클러스터 키의 노드 분포 분석
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -p 7000 정보 키스페이스
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -p 7001 정보 키스페이스
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -p 7002 정보 키스페이스
Redis 명령줄 도구(redis-cli)를 사용하여 지정된 Redis 서버(192.168.108.67) 및 포트 번호(7000)의 키스페이스 정보를 쿼리합니다.
클러스터 클러스터 장애 조치
redis-slave에서 모든 슬레이브 라이브러리 시작
[root@redis-slave ~]# redis-server /data/redis-cluster/8000/redis.conf
[root@redis-slave ~]# redis-server /data/redis-cluster/8001/redis.conf
[root@redis-slave ~]# redis-server /data/redis-cluster/8002/redis.conf
[root@redis-slave ~]# netstat -lnpt | 그렙 레디스
redis-cluster 클러스터 슬레이브 라이브러리 추가, redis-master에서 작동
첫 번째 슬레이브 서버 세트 추가
[root@redis-master ~]# redis-trib.rb add-node --slave 192.168.108.189:8000 192.168.108.67:7000
Redis 클러스터에 192.168.108.189:8000을 슬레이브 노드인 192.168.108.67:7000으로 추가하면 슬레이브 노드가 마스터 노드의 데이터를 복사하게 됩니다.
두 번째 슬레이브 서버 세트 추가
[root@redis-master ~]# redis-trib.rb add-node --slave 192.168.108.189:8001 192.168.108.67:7001
세 번째 슬레이브 서버 그룹 추가
[root@redis-master ~]# redis-trib.rb add-node --slave 192.168.108.189:8002 192.168.108.67:7002
클러스터의 모든 노드에 대한 정보 보기
[root@redis-master ~]# redis-cli -p 7000 클러스터 노드
라이브러리에서 슬레이브 읽기 및 쓰기 테스트
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -c -p 8000
192.168.200.112:8000> 주소 베이징 설정
주소를 베이징으로 설정한다는 의미입니다. 이 문장은 특정 장소의 주소 정보를 베이징으로 설정하거나 논의하고 있을 수 있습니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -c -p 8000 주소 가져오기
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -c -p 8001 주소 가져오기
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -c -p 8002 주소 가져오기
Redis 명령줄 도구(redis-cli) 명령을 사용하여 IP 주소 192.168.108.189 및 포트 번호 8000을 사용하여 Redis 서버에 연결하고 "address"라는 키에 해당하는 값을 가져옵니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7000 주소 가져오기
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7001 주소 가져오기
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7002 주소 가져오기
Redis 명령줄 도구(redis-cli)를 사용하여 IP 주소 192.168.108.67 및 포트 번호 7000을 사용하여 Redis 클러스터에 연결하고 get 명령을 실행하여 "address" 키 값을 가져옵니다.
테스트를 통해 redis 클러스터 클러스터는 메인 라이브러리나 슬레이브 라이브러리에 관계없이 set과 get을 수행할 수 있음을 확인했습니다. 따라서 이용 중에 메인 도서관에 갈 필요가 없습니다.
마스터-슬레이브 클러스터 키 분포 확인
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -c -p 8000 정보 키스페이스
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -c -p 8001 정보 키스페이스
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -c -p 8002 정보 키스페이스
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7000 정보 키스페이스
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7001 정보 키스페이스
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7002 정보 키스페이스
각 키스페이스의 키-값 쌍 수, 만료된 키-값 쌍 수 등을 포함하여 Redis 인스턴스의 모든 키스페이스에 대한 정보를 얻으려면 "info Keyspace" 명령을 사용합니다.
Redis 클러스터의 마스터-슬레이브는 자동으로 전환되며, 메인 데이터베이스가 중단된 후 슬레이브가 자동으로 마스터가 됩니다.
마스터-슬레이브 명령 클러스터 장애 조치를 수동으로 전환
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -p 7000 종료
지정된 호스트 및 포트에서 Redis 서버를 종료하는 데 사용됩니다. 이 명령에서 '-h' 매개변수는 연결할 호스트 주소를 지정하고, '-p' 매개변수는 연결할 포트 번호를 지정하며, 'shutdown'은 Redis 서버를 종료한다는 의미입니다. 따라서 `redis-cli -h 192.168.108.67 -p 7000 shutdown`은 192.168.108.67 호스트의 포트 7000에서 Redis 서버를 종료한다는 의미입니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -p 8000 클러스터 노드
Redis 클러스터에 있는 각 노드의 상태 및 정보를 봅니다.
포트 7000에서 redis-server를 수동으로 종료합니다. 7000이 다운되고 8000이 마스터로 전환되었다는 정보를 통해 알게 되었습니다.
포트 7000에서 서버를 다시 시작하고 다시 확인하십시오.
[root@redis-master ~]# redis-server /data/redis-cluster/7000/redis.conf
Redis 서버를 시작하고 구성 파일의 경로를 `/data/redis-cluster/7000/redis.conf`로 지정합니다. Redis는 데이터를 저장하고 검색하는 데 사용되는 오픈 소스 인메모리 데이터베이스입니다. 구성 파일 경로를 지정하면 특정 구성 옵션을 로드하여 다양한 요구 사항과 구성 요구 사항을 충족할 수 있습니다. 이 예에서 명령은 Redis 서버를 시작하고 지정된 경로의 구성 파일을 사용하여 이를 구성합니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -p 8000 클러스터 노드
Redis 클러스터에 있는 각 노드의 상태 및 정보를 봅니다.
정보를 통해 7000의 Redis가 시작된 후 슬레이브가 되었음을 알게 되었습니다.
redis-server 포트 7000을 기본 데이터베이스로 수동 전환
[root@redis-slave ~]# redis-cli -h 192.168.108.67 -c -p 7000 클러스터 장애 조치
장애 조치(Failover)는 Redis 클러스터에서 마스터 노드 오류가 발생할 때 슬레이브 노드를 새 마스터 노드로 승격시키는 프로세스입니다. 이 명령의 목적은 장애 조치 작업을 수동으로 트리거하고 지정된 노드의 마스터 노드를 슬레이브 노드로 전환하는 것입니다.
[root@redis-slave ~]# redis-cli -h 192.168.108.189 -p 8000 클러스터 노드
노드 삭제
[root@redis-master ~]# redis-cli -h 192.168.108.189 -p 8000 클러스터 노드
[root@redis-master ~]# redis-trib.rb del-node 192.168.108.189:8001 d6af56ec537be64e646212e1739705653e979643
Redis 클러스터 관리 도구 redis-trib.rb의 명령은 Redis 클러스터에서 지정된 노드를 삭제하는 데 사용됩니다. 명령의 구체적인 의미는 다음과 같습니다.
- `redis-trib.rb`: Redis 클러스터 관리 도구의 이름입니다.
- `del-node` : 노드 삭제를 의미하는 명령어의 동작.
- `192.168.108.189:8001` : 삭제할 노드의 IP 주소와 포트번호.
- `d6af56ec537be64e646212e1739705653e979643` : 삭제할 노드의 ID
마지막에 나오는 것은 노드의 ID이며, redis-cli 터미널에서 클러스터 노드를 사용하여 볼 수 있습니다.
수리 노드
[root@redis-master ~]# redis-trib.rb add-node --slave 192.168.108.189:8001 192.168.108.67:7001
이 명령의 기능은 '192.168.108.67:7001' 마스터 노드의 슬레이브 노드 목록에 '192.168.108.189:8001'을 추가하는 것입니다. 슬레이브 노드는 마스터 노드의 데이터를 복제하고 마스터 노드를 사용할 수 없을 때 읽기 서비스를 제공합니다.
오류 발견(먼저 다음을 수행하십시오)
노드 8001의 기존 데이터 지우기
[root@redis-slave ~]#kill -9 67708
프로세스를 종료하는 데 사용됨
[root@redis-slave ~]# rm -rf /data/redis-cluster/8001/dump.rdb
지정된 경로 아래의 파일이나 디렉터리를 삭제하는 데 사용되는 Linux 명령입니다. 특히 이 명령은 "/data/redis-cluster/8001/dump.rdb" 경로의 파일을 삭제합니다.
[root@redis - slave ~]# rm -rf /data/redis-cluster/8001/nodes.conf
지정된 경로 아래의 파일이나 디렉터리를 삭제하는 데 사용됩니다. 특히 이 명령은 "/data/redis-cluster/8001/nodes.conf" 경로의 파일을 삭제합니다.
[root@redis-slave ~]# rm -rf /data/redis-cluster/8001/ redis.pid
지정된 경로 아래의 파일이나 디렉터리를 삭제하는 데 사용됩니다. 구체적으로 'rm'은 삭제 명령이고 '-rf'는 옵션입니다. 이는 확인 메시지를 표시하지 않고 디렉터리와 그 내용을 반복적으로 삭제한다는 의미입니다.
[root@redis-slave ~]# redis-server /data/redis-cluster/8001/redis.conf
redis-server라는 프로세스가 시작되고 지정된 구성 파일(/data/redis-cluster/8001/redis.conf)을 사용하여 서버 동작을 구성합니다. 이 명령을 사용하면 Redis 서버 인스턴스를 시작하고 필요에 따라 구성할 수 있습니다.
[root@redis-master ~]# redis-trib.rb add-node --slave 192.168.200.112:8001 192.168.200.111:7001
프로세스 보기 netstat -anputl | grep redis
위의 단계를 완료하면 다시 인증에 성공합니다.