찾다
데이터 베이스RedisCentOS7에서 Redis 클러스터를 구축하는 방법

1. 수동 구성

1. 노드 준비

CentOS7 및 Redis 설치

완전하고 가용성이 높은 클러스터를 보장하려면 노드 수가 6 이상이어야 합니다.

(1) 디렉터리 구조

cluster
├── 9001
│   ├── data
│   │   ├── appendonly.aof
│   │   └── nodes-9001.conf
│   ├── redis-9001.conf
│   └── redis-9001.log
├── 9002
│   ├── data
│   │   ├── appendonly.aof
│   │   └── nodes-9002.conf
│   ├── redis-9002.conf
│   └── redis-9002.log
...

(2 ) 구성 파일 준비

cd cluster
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
cp ../redis-6.0.9/redis.conf 9001/redis-9001.conf
vi 9001/redis-9001.conf
    port 9001
    daemonize yes
    bind 192.168.11.40
    dir /root/cluster/9001/data/
    pidfile /var/run/redis_9001.pid
    cluster-enabled yes  # 集群模式运行
    cluster-config-file nodes-9001.conf
    cluster-node-timeout 15000
    # appendonly yes
    logfile "/root/cluster/9001/redis-9001.log"

복사 및 바꾸기: :%s/9001/9002/g:%s/9001/9002/g

(3) 启动服务

/usr/local/redis/bin/redis-server /root/cluster/9001/redis-9001.conf
...
tail 9001/redis-9001.log
kill `cat /var/run/redis_9001.pid`

启动后会自动在 data 目录创建集群配置文件nodes-9001.conf

(3) 서비스 시작

$ cat 9001/data/nodes-9001.conf
8ccdb0963411ebd05ce21952bdd4b7597825afdc :0@0 myself,master - 0 0 0 connected
vars currentEpoch 0 lastVoteEpoch 0
$ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001
192.168.11.40:9001> cluster nodes
8ccdb0963411ebd05ce21952bdd4b7597825afdc :9001@19001 myself,master - 0 0 0 connected
시작 후 자동으로 클러스터 구성 파일이 생성됩니다.

데이터 디렉터리 -9001.conf의 노드. 클러스터의 노드 정보가 변경되면 노드는 자동으로 클러스터 상태를 이 구성 파일에 저장합니다. 수동으로 수정하지 않는 것이 가장 좋습니다. 시작 시 클러스터 구성 파일이 있는 경우 노드는 구성 파일 콘텐츠를 사용하여 클러스터 정보

$ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001
192.168.11.40:9001> cluster meet 192.168.11.40 9002
OK
192.168.11.40:9001> cluster nodes
8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 0 0 connected
5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620703357871 1 connected

노드 ID

를 초기화합니다. 노드 ID

: 클러스터의 노드를 고유하게 식별하는 데 사용되는 40자리 16진수 문자열입니다. 노드 ID는 한 번만 생성되며 다시 시작할 때마다 실행 ID가 변경됩니다2. 노드 핸드쉐이크

    노드 핸드쉐이크 클러스터 모드에서 실행되는 노드들은 서로를 인식하기 위해 Gossip 프로토콜을 통해 서로 통신합니다
  • 192.168.11.40:9001> set hello world
    (error) CLUSTERDOWN Hash slot not served
    192.168.11.40:9001> cluster info
    cluster_state:fail
    cluster_slots_assigned:0
    cluster_slots_ok:0
    cluster_slots_pfail:0
    cluster_slots_fail:0
    cluster_known_nodes:6
    cluster_size:0
    ...

    cluster Meet는

    Asynchronous
  • 명령으로, 노드끼리 상태 데이터 정보를 교환하고, 실행 후 즉시 반환하며, 내부적으로 대상 노드와 핸드셰이크 통신을 수행하는 기능입니다.
  • Node 9001은 9002 노드 정보를 생성합니다. 로컬로 객체를 전송하고 Meet 메시지를 보냅니다
  • Node 9002 Meet 메시지를 받은 후 9001 노드 정보를 저장하고 pong 메시지에 응답합니다

이후 노드 9001과 9002는 ping/pong을 통해 정기적으로 서로 통신합니다. 메시지

클러스터에서

Any

노드는 클러스터 미팅 명령을 실행할 수 있습니다. 새 노드에 참여하기 위해 핸드셰이크 상태는 메시지를 통해 클러스터 내에 전파됩니다. 다른 노드는 자동으로 새 노드를 검색하고 핸드셰이크 프로세스를 시작합니다

노드가 핸드셰이크를 설정한 후에는 클러스터가 정상적으로 작동할 수 없습니다. 이때 클러스터는 오프라인 상태이며 모든 데이터 읽기 및 쓰기가 금지됩니다. 슬롯이 노드에 할당되지 않았기 때문에 클러스터는 슬롯을 노드에 매핑을 완료할 수 없습니다

/usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 cluster addslots {0..5461}
/usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9002 cluster addslots {5462..10922}
/usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9003 cluster addslots {10923..16383}
3. 슬롯 할당

Redis 클러스터는 모든 데이터를

16384

슬롯에 매핑합니다. 모든 슬롯

이 노드에 할당된 경우에만 클러스터가 온라인 상태로 들어갑니다.

슬롯 할당:

192.168.11.40:9001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
...
192.168.11.40:9001> cluster nodes
cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 master - 0 1620704406746 0 connected
1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 master - 0 1620704406000 4 connected
8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704404000 2 connected 0-5461
9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 master - 0 1620704407753 5 connected
85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704407000 3 connected 10923-16383
5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704408763 1 connected 5462-10922

클러스터 정보 보기:

192.168.11.40:9004> cluster replicate 8ccdb0963411ebd05ce21952bdd4b7597825afdc
OK
192.168.11.40:9005> cluster replicate 5786e3237c7fa413ed22465d15be721f95e72cfa
OK
192.168.11.40:9006> cluster replicate 85ceb9826e8aa003169c46fb4ba115c72002d4f9
OK

슬롯 처리를 담당하는 각 노드에는 슬레이브 노드가 있어야 나중에 복원할 수 있습니다. 자동 장애 조치가 실패합니다

처음 시작한 노드와 슬롯에 할당된 노드가 모두 마스터 노드입니다. 슬레이브 노드는 마스터 노드 슬롯 정보 및 관련 데이터를 복사하는 역할을 담당합니다

192.168.11.40:9001> cluster nodes
cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 slave 85ceb9826e8aa003169c46fb4ba115c72002d4f9 0 1620704825926 3 connected
1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 slave 5786e3237c7fa413ed22465d15be721f95e72cfa 0 1620704825000 1 connected
8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704824000 2 connected 0-5461
9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 slave 8ccdb0963411ebd05ce21952bdd4b7597825afdc 0 1620704824921 2 connected
85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704824000 3 connected 10923-16383
5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704823914 1 connected 5462-10922
wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz
tar -zxvf ruby-2.7.3.tar.gz
cd ruby-2.7.3
./configure --prefix=/usr/local/ruby
make
make install
cd /usr/local/ruby
cp bin/ruby /usr/local/bin
cp bin/gem /usr/local/bin

2. redis-trib.rb를 사용합니다. 클러스터 구축(구식)

【Redis5.0 이후 클러스터 구축을 위해 redis-cli 사용】

redis-trib.rb는 Ruby로 구현된 Redis

클러스터 관리 도구

입니다. 클러스터 관련 명령은 클러스터 생성, 검사, 슬롯 마이그레이션 및 밸런싱과 같은 일반적인 운영 및 유지 관리 작업을 단순화하는 데 도움이 되도록 내부적으로 사용됩니다.
wget http://rubygems.org/downloads/redis-4.2.5.gem
gem install -l redis-4.2.5.gem
gem list

해결하세요(openssl(openssl과 유사)

$ gem install -l redis-4.2.5.gem
ERROR:  Loading command: install (LoadError)
	cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

redis-trib.rb

yum -y install zlib-devel
cd ruby-2.7.3/ext/zlib
ruby ./extconf.rb
make
make install

2 설치. 클러스터 만들기

cp /{redis_home}/src/redis-trib.rb /usr/local/bin
redis-trib.rb

가 자동으로 노드 핸드셰이크 및 슬롯 할당 프로세스를 완료합니다.

  • 이 마스터 노드와 슬레이브 노드가 동일한 시스템에 할당되지 않도록 하는 것이 가장 좋습니다. 아래 노드 목록의 순서는 마스터-슬레이브 역할을 결정하는 데 사용되며 그 다음은 슬레이브 노드여야 합니다. 슬롯/데이터가 포함되지 않은 노드. 그렇지 않으면 클러스터 생성이 거부됩니다. 3. redis-cli를 사용하여 클러스터를 구축하세요

    # --replicas 1:指定集群中每个主节点配备几个从节点
    redis-trib.rb create --replicas 1 192.168.11.40:9001 192.168.11.40:9002 192.168.11.40:9003 192.168.11.40:9004 192.168.11.40:9005 192.168.11.40:9006
    # 集群完整性检查
    redis-trib.rb check 192.168.11.40:9001

위 내용은 CentOS7에서 Redis 클러스터를 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Apr 18, 2025 am 12:11 AM

redisisclassifiedasanoSqldatabaseBecauseItuseSakey-valuedatamodelinsteadofThraditionalRelationalDatabasemodel.Itoffersspeedandflexibility, makingIdealforreal-timeApplicationsandcaching, butitmaynotbesuitableforscenariosrequiringstrictaintetaintetaintetaintetaintetaintetaintegry

REDIS : 응용 프로그램 성능 및 확장 성 향상REDIS : 응용 프로그램 성능 및 확장 성 향상Apr 17, 2025 am 12:16 AM

Redis는 데이터를 캐싱하여 분산 잠금 및 데이터 지속성을 구현하여 응용 프로그램 성능 및 확장 성을 향상시킵니다. 1) 캐시 데이터 : Redis를 사용하여 데이터 액세스 속도를 향상시키기 위해 자주 액세스하는 데이터를 캐시합니다. 2) 분산 잠금 : Redis를 사용하여 분산 된 잠금 장치를 구현하여 분산 환경에서 작동의 보안을 보장합니다. 3) 데이터 지속성 : 데이터 손실을 방지하기위한 RDB 및 AOF 메커니즘을 통한 데이터 보안을 보장합니다.

Redis : 데이터 모델과 구조 탐색Redis : 데이터 모델과 구조 탐색Apr 16, 2025 am 12:09 AM

Redis의 데이터 모델 및 구조에는 5 가지 주요 유형이 포함됩니다. 1. 문자열 : 텍스트 또는 이진 데이터를 저장하는 데 사용되며 원자 연산을 지원합니다. 2. 목록 : 정렬 된 요소 컬렉션, 대기열 및 스택에 적합합니다. 세트 : 세트 작동을 지원하는 비 순차 고유 요소 세트. 4. 순서 세트 (SortedSet) : 순위에 적합한 점수가있는 고유 한 요소 세트. 5. 해시 테이블 (HASH) : 객체를 저장하는 데 적합한 키 값 쌍 모음.

REDIS : 데이터베이스 접근 방식을 분류합니다REDIS : 데이터베이스 접근 방식을 분류합니다Apr 15, 2025 am 12:06 AM

Redis의 데이터베이스 방법에는 메모리 인 데이터베이스 및 키 값 저장소가 포함됩니다. 1) Redis는 메모리에 데이터를 저장하고 빠르게 읽고 쓰고 있습니다. 2) 키 값 쌍을 사용하여 데이터를 저장하고 캐시 및 NOSQL 데이터베이스에 적합한 목록, 컬렉션, 해시 테이블 및 주문 컬렉션과 같은 복잡한 데이터 구조를 지원합니다.

왜 Redis를 사용합니까? 혜택과 장점왜 Redis를 사용합니까? 혜택과 장점Apr 14, 2025 am 12:07 AM

Redis는 빠른 성능, 풍부한 데이터 구조, 고 가용성 및 확장 성, 지속성 기능 및 광범위한 생태계 지원을 제공하기 때문에 강력한 데이터베이스 솔루션입니다. 1) 매우 빠른 성능 : Redis의 데이터는 메모리에 저장되며 동시성이 높고 대기 시간이 낮은 응용 프로그램에 적합한 빠른 읽기 및 쓰기 속도를 가지고 있습니다. 2) 풍부한 데이터 구조 : 다양한 시나리오에 적합한 목록, 컬렉션 등과 같은 여러 데이터 유형을 지원합니다. 3) 고 가용성 및 확장 성 : 마스터 슬레이브 복제 및 클러스터 모드를 지원하여 고 가용성 및 수평 확장 성을 달성합니다. 4) 지속성 및 데이터 보안 : 데이터 지속성은 RDB 및 AOF를 통해 달성되어 데이터 무결성 및 신뢰성을 보장합니다. 5) 광범위한 생태계 및 지역 사회 지원 : 거대한 생태계와 활동적인 커뮤니티,

NOSQL 이해 : Redis의 주요 기능NOSQL 이해 : Redis의 주요 기능Apr 13, 2025 am 12:17 AM

Redis의 주요 기능에는 속도, 유연성 및 풍부한 데이터 구조 지원이 포함됩니다. 1) 속도 : Redis는 메모리 내 데이터베이스이며, 읽기 및 쓰기 작업은 거의 순간적이며 캐시 및 세션 관리에 적합합니다. 2) 유연성 : 복잡한 데이터 처리에 적합한 문자열, 목록, 컬렉션 등과 같은 여러 데이터 구조를 지원합니다. 3) 데이터 구조 지원 : 다양한 비즈니스 요구에 적합한 문자열, 목록, 컬렉션, 해시 테이블 등을 제공합니다.

REDIS : 기본 기능을 식별합니다REDIS : 기본 기능을 식별합니다Apr 12, 2025 am 12:01 AM

Redis의 핵심 기능은 고성능 인 메모리 데이터 저장 및 처리 시스템입니다. 1) 고속 데이터 액세스 : Redis는 메모리에 데이터를 저장하고 마이크로 초 수준 읽기 및 쓰기 속도를 제공합니다. 2) 풍부한 데이터 구조 : 문자열, 목록, 컬렉션 등을 지원하며 다양한 응용 프로그램 시나리오에 적응합니다. 3) 지속성 : RDB 및 AOF를 통해 디스크에 데이터를 지속하십시오. 4) 구독 게시 : 메시지 대기열 또는 실시간 통신 시스템에서 사용할 수 있습니다.

Redis : 인기있는 데이터 구조에 대한 안내서Redis : 인기있는 데이터 구조에 대한 안내서Apr 11, 2025 am 12:04 AM

Redis는 다음을 포함하여 다양한 데이터 구조를 지원합니다. 1. String, 단일 값 데이터 저장에 적합합니다. 2. 큐 및 스택에 적합한 목록; 3. 비면성 데이터 저장에 사용되는 세트; 4. 순서, 순위 목록 및 우선 순위 대기열에 적합한 순서 세트; 5. 해시 테이블, 객체 또는 구조화 된 데이터를 저장하는 데 적합합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.