이 글에서는 Redis의 감시 모드를 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
마스터-슬레이브 전환 기술의 방법은 다음과 같습니다.
- 마스터 서버가 다운되면 슬레이브 서버에서 마스터-슬레이브 서버로 수동으로 전환(
slaveof no one
)해야 하며, 이는 수동 개입이 필요합니다. . - 이 작업은 시간이 많이 걸리고 힘들지만 일정 기간 동안 서비스를 사용할 수 없게 됩니다. 이는 권장되는 접근 방식이 아닙니다.
- 더 많은 시간을 투자해 현재 엔터프라이즈 애플리케이션의 주류 모드인 Sentinel 모드를 우선순위로 지정합니다. Redis Sentinel은 Redis의 고가용성 구현입니다.
- Sentinel은 여러 Redis 인스턴스를 관리하기 위한 도구입니다. 모니터링하고, Redis에 알리고, 장애 조치를 자동화할 수 있습니다. Redis Sentinel 기능의 기본 개념 Sentinel의 주요 기능은 다음과 같습니다.
마스터 노드 생존 감지, 마스터-슬레이브 작업 감지, 자동 장애 조치 및 마스터-슬레이브 전환.
Redis의 최소 태그 구성은 하나의 마스터와 하나의 슬레이브입니다.
Redis의 Sentinel 시스템을 사용하여 여러 Redis 서버를 관리할 수 있습니다.:
1. 모니터링: Sentinel은 마스터 서버와 슬레이브 서버가 정상적으로 실행되고 있는지 지속적으로 확인합니다.
3. 자동 장애 조치: 마스터 노드가 제대로 작동하지 않으면 Sentinel이 자동 장애 조치 작업을 시작합니다. 실패한 마스터 노드와 마스터-슬레이브 관계에 있는 슬레이브 노드 중 하나를 새 마스터 노드로 업그레이드하고 다른 슬레이브 노드를 새 마스터 노드로 지정합니다.
4, 구성 공급자: Redis Sentinel 모드에서, 클라이언트 애플리케이션을 초기화하면 Sentinel 노드 컬렉션에 연결하여 마스터 노드의 정보를 얻습니다.
- Redis Sentinel 작동 방식
- Sentinel 노드가 Redis 인스턴스에 연결되면 두 개가 생성됩니다. 연결: cmd 및 pub/sub. Sentinel은 cmd 연결을 통해 Redis에 명령을 보내고, pub/sub 연결을 통해 Redis 인스턴스의 다른 Sentinel 인스턴스에 명령을 보냅니다. Sentinel이 Redis 마스터 및 슬레이브 노드와 상호 작용하는 명령
각 Sentinel은 알려진 마스터 인스턴스, 슬레이브 인스턴스 및 기타 Sentinel 인스턴스에 매초 PING 명령을 보냅니다.
PING 명령에 대한 마지막 유효한 응답(밀리초 단위) 이후 인스턴스가 down에서 지정한 시간보다 오래 걸리는 경우 Sentinel은 해당 인스턴스를 주관적으로 오프라인으로 표시합니다.
마스터 서버가 주관적 로그아웃으로 표시되면 마스터 서버의 모든 Sentinel 노드를 모니터링하여 마스터 서버가 실제로 주관적 로그아웃 상태에 진입했는지 확인합니다.
- 마스터 서버가 주관적으로 로그오프된 것으로 표시되고, 이 판단과 일치하는 지정된 시간 범위 내 센트리(최소 구성 파일에 지정된 수)가 충분할 경우 마스터 서버는 다음과 같이 표시됩니다. 객관적으로 오프라인.
- 일반적으로 각 Sentinel은 10초마다 알려진 모든 마스터와 슬레이브에 INFO 명령을 보냅니다. Sentinel이 마스터 서버를 오프라인으로 표시하면 Sentinel이 오프라인 마스터 서버의 모든 슬레이브 서버에 INFO 명령을 보내는 빈도가 10초에 한 번에서 1초에 한 번으로 변경됩니다.
Sentinel은 다른 Sentinel과 마스터 노드의 상태를 협상합니다. 마스터 노드가 SDOWN 상태인 경우 투표를 통해 자동으로 새 마스터 노드가 선택됩니다. 데이터 복제
- 로 지정합니다.
- 마스터가 로그아웃할 수 있는 센트리가 충분하지 않은 경우 마스터의 객관적인 로그아웃 상태가 제거됩니다. 마스터가 Sentinel의 PING 명령에 대해 유효한 응답을 반환하면 마스터의 주관적인 오프라인 상태가 제거됩니다.
- note
강력한 Redis Sentinel 클러스터는 3개 이상의 Sentinel 인스턴스를 사용해야 하며 이러한 인스턴스를 다른 시스템이나 다른 물리적 영역에 배치해야 합니다.
Sentinel은 강력한 일관성을 보장할 수 없습니다. . Sentinel은 일반 클라이언트 애플리케이션 라이브러리에서 지원됩니다.
Sentinel은 고가용성을 보장하기 위해 지속적인 테스트와 관찰이 필요합니다
Testing
- 구성 파일 만들기
콘텐츠는 다음과 같이 간단하게 구성됩니다.
port 16379 # 哨兵端口号 daemonize yes sentinel monitor master 127.0.0.1 6379 1 # 监视master protected-mode no logfile "/usr/local/bin/sentinel-1/sentinel-1.log" # 日志文件
- 먼저 Redis 설정 클러스터를 시작합니다. redis- cli를 시작하고 6379를 master
- 로 설정한 다음 sentinel
sudo redis-sentinel sentinel-1/sentinel.conf
- 을 시작합니다. 6379
- 다른 두 역할 보기 redis-cli
- 6379 다시 시작
- sentinel 로그 보기
sentinel.conf 설명
# Example sentinel.conf # *** IMPORTANT *** # 绑定IP地址 # bind 127.0.0.1 192.168.1.1 # 保护模式(是否禁止外部链接,除绑定的ip地址外) # protected-mode no # port <sentinel-port> # 此Sentinel实例运行的端口 port 26379 # 默认情况下,Redis Sentinel不作为守护程序运行。 如果需要,可以设置为 yes。 daemonize no # 启用守护进程运行后,Redis将在/var/run/redis-sentinel.pid中写入一个pid文件 pidfile /var/run/redis-sentinel.pid # 指定日志文件名。 如果值为空,将强制Sentinel日志标准输出。守护进程下,如果使用标准输出进行日志记录,则日志将发送到/dev/null logfile "" # sentinel announce-ip <ip> # sentinel announce-port <port> # # 上述两个配置指令在环境中非常有用,因为NAT可以通过非本地地址从外部访问Sentinel。 # # 当提供announce-ip时,Sentinel将在通信中声明指定的IP地址,而不是像通常那样自动检测本地地址。 # # 类似地,当提供announce-port 有效且非零时,Sentinel将宣布指定的TCP端口。 # # 这两个选项不需要一起使用,如果只提供announce-ip,Sentinel将宣告指定的IP和“port”选项指定的服务器端口。 # 如果仅提供announce-port,Sentinel将通告自动检测到的本地IP和指定端口。 # # Example: # # sentinel announce-ip 1.2.3.4 # dir <working-directory> # 每个长时间运行的进程都应该有一个明确定义的工作目录。对于Redis Sentinel来说,/tmp就是自己的工作目录。 dir /tmp # sentinel monitor <master-name> <ip> <redis-port> <quorum> # # 告诉Sentinel监听指定主节点,并且只有在至少<quorum>哨兵达成一致的情况下才会判断它 O_DOWN 状态。 # # # 副本是自动发现的,因此您无需指定副本。 # Sentinel本身将重写此配置文件,使用其他配置选项添加副本。另请注意,当副本升级为主副本时,将重写配置文件。 # # 注意:主节点(master)名称不能包含特殊字符或空格。 # 有效字符可以是 A-z 0-9 和这三个字符 ".-_". sentinel monitor mymaster 127.0.0.1 6379 2 # 如果redis配置了密码,那这里必须配置认证,否则不能自动切换 # Example: # # sentinel auth-pass mymaster MySUPER--secret-0123passw0rd # sentinel down-after-milliseconds <master-name> <milliseconds> # # 主节点或副本在指定时间内没有回复PING,便认为该节点为主观下线 S_DOWN 状态。 # # 默认是30秒 sentinel down-after-milliseconds mymaster 30000 # sentinel parallel-syncs <master-name> <numreplicas> # # 在故障转移期间,多少个副本节点进行数据同步 sentinel parallel-syncs mymaster 1 # sentinel failover-timeout <master-name> <milliseconds> # # 指定故障转移超时(以毫秒为单位)。 它以多种方式使用: # # - 在先前的故障转移之后重新启动故障转移所需的时间已由给定的Sentinel针对同一主服务器尝试,是故障转移超时的两倍。 # # - 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。 # # - 取消已在进行但未生成任何配置更改的故障转移所需的时间 # # - 当进行failover时,配置所有slaves指向新的master所需的最大时间。 # 即使过了这个超时,slaves依然会被正确配置为指向master。 # # 默认3分钟 sentinel failover-timeout mymaster 180000 # 脚本执行 # # sentinel notification-script和sentinel reconfig-script用于配置调用的脚本,以通知系统管理员或在故障转移后重新配置客户端。 # 脚本使用以下规则执行以进行错误处理: # # 如果脚本以“1”退出,则稍后重试执行(最多重试次数为当前设置的10次)。 # # 如果脚本以“2”(或更高的值)退出,则不会重试执行。 # # 如果脚本因为收到信号而终止,则行为与退出代码1相同。 # # 脚本的最长运行时间为60秒。 达到此限制后,脚本将以SIGKILL终止,并重试执行。 # 通知脚本 # # sentinel notification-script <master-name> <script-path> # # 为警告级别生成的任何Sentinel事件调用指定的通知脚本(例如-sdown,-odown等)。 # 此脚本应通过电子邮件,SMS或任何其他消息传递系统通知系统管理员 监控的Redis系统出了问题。 # # 使用两个参数调用脚本:第一个是事件类型,第二个是事件描述。 # # 该脚本必须存在且可执行,以便在提供此选项时启动sentinel。 # # 举例: # # sentinel notification-script mymaster /var/redis/notify.sh # 客户重新配置脚本 # # sentinel client-reconfig-script <master-name> <script-path> # # 当主服务器因故障转移而变更时,可以调用脚本执行特定于应用程序的任务,以通知客户端,配置已更改且主服务器地址已经变更。 # # 以下参数将传递给脚本: # # <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port> # # <state> 目前始终是故障转移 "failover" # <role> 是 "leader" 或 "observer" # # 参数 from-ip, from-port, to-ip, to-port 用于传递主服务器的旧地址和所选副本的新地址。 # # 举例: # # sentinel client-reconfig-script mymaster /var/redis/reconfig.sh # 安全 # 避免脚本重置,默认值yes # 默认情况下,SENTINEL SET将无法在运行时更改notification-script和client-reconfig-script。 # 这避免了一个简单的安全问题,客户端可以将脚本设置为任何内容并触发故障转移以便执行程序。 sentinel deny-scripts-reconfig yes # REDIS命令重命名 # # # 在这种情况下,可以告诉Sentinel使用不同的命令名称而不是正常的命令名称。 # 例如,如果主“mymaster”和相关副本的“CONFIG”全部重命名为“GUESSME”,我可以使用: # # SENTINEL rename-command mymaster CONFIG GUESSME # # 设置此类配置后,每次Sentinel使用CONFIG时,它将使用GUESSME。 请注意,实际上不需要尊重命令案例,因此在上面的示例中写“config guessme”是相同的。 # # SENTINEL SET也可用于在运行时执行此配置。 # # 为了将命令设置回其原始名称(撤消重命名),可以将命令重命名为它自身: # # SENTINEL rename-command mymaster CONFIG CONFIG
을 방문하여 더 많은 프로그래밍 관련 지식을 확인하세요. 프로그래밍 교육! !
위 내용은 Redis의 감시 모드에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

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

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

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

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

Redis Counter는 Redis Key-Value Pair 스토리지를 사용하여 다음 단계를 포함하여 계산 작업을 구현하는 메커니즘입니다. 카운터 키 생성, 카운트 증가, 카운트 감소, 카운트 재설정 및 카운트 얻기. Redis 카운터의 장점에는 빠른 속도, 높은 동시성, 내구성 및 단순성 및 사용 편의성이 포함됩니다. 사용자 액세스 계산, 실시간 메트릭 추적, 게임 점수 및 순위 및 주문 처리 계산과 같은 시나리오에서 사용할 수 있습니다.

Redis Command Line 도구 (Redis-Cli)를 사용하여 다음 단계를 통해 Redis를 관리하고 작동하십시오. 서버에 연결하고 주소와 포트를 지정하십시오. 명령 이름과 매개 변수를 사용하여 서버에 명령을 보냅니다. 도움말 명령을 사용하여 특정 명령에 대한 도움말 정보를 봅니다. 종금 명령을 사용하여 명령 줄 도구를 종료하십시오.

Redis Cluster Mode는 Sharding을 통해 Redis 인스턴스를 여러 서버에 배포하여 확장 성 및 가용성을 향상시킵니다. 시공 단계는 다음과 같습니다. 포트가 다른 홀수 redis 인스턴스를 만듭니다. 3 개의 센티넬 인스턴스를 만들고, Redis 인스턴스 및 장애 조치를 모니터링합니다. Sentinel 구성 파일 구성, Redis 인스턴스 정보 및 장애 조치 설정 모니터링 추가; Redis 인스턴스 구성 파일 구성, 클러스터 모드 활성화 및 클러스터 정보 파일 경로를 지정합니다. 각 redis 인스턴스의 정보를 포함하는 Nodes.conf 파일을 작성합니다. 클러스터를 시작하고 Create 명령을 실행하여 클러스터를 작성하고 복제본 수를 지정하십시오. 클러스터에 로그인하여 클러스터 정보 명령을 실행하여 클러스터 상태를 확인하십시오. 만들다


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

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

Dreamweaver Mac版
시각적 웹 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
