[redis] 프로덕션 수준 배포

목차

환경 배포

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

 

 

위의 단계를 완료하면 다시 인증에 성공합니다.

 

 

추천

출처blog.csdn.net/2302_77750172/article/details/131527510