Redis Sentry 모드 원리
Sentinel 모드는 우선 Sentinel 명령을 제공하며, 프로세스로서 독립적으로 실행됩니다. Sentinel은 실행 중인 여러 Redis 인스턴스를 모니터링하기 위해 Redis 서버 응답을 기다리는 명령을 보냅니다.
Linux - redis sentinel 클러스터 인스턴스
명령 배열
공식 웹사이트 주소: http://redisdoc.com/
redis-cli info #查看redis数据库信息 redis-cli info replication #查看redis的复制授权信息 redis-cli info sentinel #查看redis的哨兵信息
구성 프로세스
아이디어:
redis 메인에서
마스터 1개와 슬레이브 2개 솔루션
1. 환경 준비, 마스터 1개와 슬레이브 2개의 Redis 아키텍처 준비
redis-6379.conf
port 6379 daemonize yes logfile "6379.log" dbfilename "dump-6379.rdb" dir "/opt/redis/6379/" redis-6380.conf port 6380 daemonize yes logfile "6380.log" dbfilename "dump-6380.rdb" dir "/opt/redis/6380/" slaveof 127.0.0.1 6379 redis-6381.conf port 6381 daemonize yes logfile "6381.log" dbfilename "dump-6381.rdb" dir "/opt/redis/6381/" slaveof 127.0.0.1 6379
2. 데이터 폴더 3개를 준비합니다
mkdir -p /opt/redis/{6379,6380,6381}
3. 세 개의 데이터베이스를 각각 시작합니다
[root@master sbredis]# redis-server redis-6379.conf [root@master sbredis]# redis-server redis-6380.conf [root@master sbredis]# redis-server redis-6381.conf
4. 마스터-슬레이브 상태를 감지합니다
redis-cli -p 6379 info replication redis-cli -p 6380 info replication redis-cli -p 6381 info replication
5. 마스터-슬레이브 상태를 감지하기 위해 세 개의 Redis 센티널을 준비합니다
세 개의 센티널의 구성 파일을 준비합니다
redis-26379.conf
// Sentinel节点的端口 port 26379 dir /var/redis/data/ logfile "26379.log" // 当前Sentinel节点监控 192.168.119.10:6379 这个主节点 // 2代表判断主节点失败至少需要2个Sentinel节点节点同意 // mymaster是主节点的别名 sentinel monitor mymaster 192.168.119.10 6379 2 //每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达 sentinel down-after-milliseconds mymaster 30000 //当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点, 原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1 sentinel parallel-syncs mymaster 1 //故障转移超时时间为180000毫秒 sentinel failover-timeout mymaster 180000 redis-26380.conf port 7000 daemonize yes dir "/opt/data" logfile "7000.log" dbfilename "dump-7000.rdb" cluster-enabled yes cluster-config-file nodes-7000.conf cluster-require-full-coverage no redis-26381.conf
세 개의 구성 파일은 포트만 다릅니다.
[root@master sbredis]# sed "s/26379/26380/g" redis-26379.conf > redis-26380.conf [root@master sbredis]# sed "s/26379/26381/g" redis-26379.conf > redis-26381.conf
6. 세 개의 센티널을 각각 시작합니다.
[root@master sbredis]# redis-sentinel redis-26379.conf [root@master sbredis]# redis-sentinel redis-26380.conf [root@master sbredis]# redis-sentinel redis-26381.conf
7. 센티넬을 감지하고 마스터-슬레이브 상태
redis-cli -p 26379 info sentinel
[root@master sbredis]# redis-cli -p 26379 info sentinel Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=s17ms,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
8. 테스트하고 마스터 Redis를 종료하면 자동으로 전환되나요?
ps -ef|grep redis kill 进程 ..
9. redis 6379를 다시 시작하여 마스터-슬레이브 클러스터에 합류하는지 확인하세요. "
Redis 튜토리얼위 내용은 Redis 감시 모드 원칙의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!