>  기사  >  데이터 베이스  >  Redis의 Sentinel 메커니즘에 대해 이야기하고 사용법을 소개하겠습니다!

Redis의 Sentinel 메커니즘에 대해 이야기하고 사용법을 소개하겠습니다!

青灯夜游
青灯夜游앞으로
2021-12-15 10:14:032000검색

이 글에서는 Redis의 Sentinel 메커니즘을 이해하고 Sentinel을 실행하는 두 가지 방법을 소개하겠습니다. 도움이 되길 바랍니다.

Redis의 Sentinel 메커니즘에 대해 이야기하고 사용법을 소개하겠습니다!

1. Overview

Redis-Sentinel은 Redis에서 공식적으로 권장하는 고가용성(HA) 솔루션입니다. Master-Slave용 고가용성 솔루션으로 Redis를 사용할 때, Master가 Down되면 Redis는 Redis-sentinel 자체는(많은 클라이언트 포함) 자동 마스터-슬레이브 전환을 구현하지 않으며 Redis-sentinel 자체도 독립적으로 실행되는 프로세스입니다. 여러 마스터-슬레이브 클러스터를 모니터링하고 마스터가 발견된 후 자체 이해 전환을 수행할 수 있습니다. 다운되었습니다. [관련 권장 사항: Redis 동영상 튜토리얼]

주요 기능은 다음과 같습니다.

  • redis가 예상대로 잘 실행되는지 수시로 모니터링합니다.
  • 특정 Redis 노드가 원활하게 실행되는 것을 확인하는 경우; , 다른 프로세스(예: 클라이언트)에 알릴 수 있습니다.
  • 자동 전환을 활성화합니다. 마스터 노드를 사용할 수 없는 경우 마스터의 여러 슬레이브 중 하나(슬레이브가 두 개 이상인 경우)가 새 마스터로 선출될 수 있으며, 다른 슬레이브 노드는 자신이 따르는 마스터의 주소를 변경하여 새 주소로 승격됩니다. 주인의 노예.

2. Sentinel은 클러스터를 지원합니다

분명히 단일 sentinel 프로세스만 사용하여 redis 클러스터를 모니터링하는 것은 신뢰할 수 없습니다. sentinel 프로세스가 다운되면 (sentinel 자체에도 단일 지점 문제가 있습니다. -of -failure) 전체 클러스터 시스템이 예상대로 작동하지 않습니다. 따라서 Sentinel을 클러스터링하는 것이 필요하며 이는 여러 가지 장점이 있습니다.

  • 일부 Sentinel 프로세스가 다운되더라도 Redis 클러스터의 활성/대기 전환은 계속 수행될 수 있습니다.
  • Sentinel 프로세스가 하나만 있는 경우; 이 프로세스가 잘못 실행되거나 네트워크가 차단되면 Redis 클러스터의 활성/대기 전환이 불가능합니다(단일 지점 문제).
  • 센티넬이 여러 개 있는 경우 Redis 클라이언트는 원하는 센티널에 연결할 수 있습니다. Redis 클러스터에 대한 정보를 얻으려면

3. Sentinel 버전

Sentinel의 현재 최신 안정 버전은 Sentinel 2라고 합니다(이전 Sentinel 1과 구별하기 위해). redis2.8 설치 패키지와 함께 출시되었습니다. Redis2.8을 설치한 후 redis2.8/src/에서 Redis-sentinel 시작 프로그램을 찾을 수 있습니다.

강력히 권장: redis2.6(sentinel 버전은 sentinel 1)을 사용하는 경우, sentinel 2의 redis2.8 버전을 사용하는 것이 좋습니다. 왜냐하면 sentinel 1에는 버그가 많고 공식적으로 더 이상 사용되지 않기 때문입니다. redis2.8 및 sentinel 2를 사용하는 것이 좋습니다.

4. Sentinel 실행

sentinel을 실행하는 방법에는 두 가지가 있습니다:

첫 번째

redis-sentinel /path/to/sentinel.confredis-sentinel /path/to/sentinel.conf

第二种

redis-server /path/to/sentinel.conf --sentinel

以上两种方式,都必须指定一个sentinel的配置文件sentinel.conf,如果不指定,将无法启动sentinel。sentinel默认监听26379端口,所以运行前必须确定该端口没有被别的进程占用。

5. Sentinel的配置

Redis源码包中包含了一个sentinel.conf文件作为sentinel的配置文件,配置文件自带了关于各个配置项的解释。典型的配置项如下所示:

sentinel monitor mymaster 127.0.0.1 6379 2

sentinel down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 180000 sentinel parallel-syncs resque 5

上面的配置项配置了两个名字分别为mymaster和resque的master,配置文件只需要配置master的信息就好啦,不用配置slave的信息,因为slave能够被自动检测到(master节点会有关于slave的消息)。需要注意的是,配置文件在sentinel运行期间是会被动态修改的,例如当发生主备切换时候,配置文件中的master会被修改为另外一个slave。这样,之后sentinel如果重启时,就可以根据这个配置来恢复其之前所监控的redis集群的状态。

接下来我们将一行一行地解释上面的配置项:

sentinel monitor mymaster 127.0.0.1 6379 2

Second 🎜🎜🎜redis-server /path/to/sentinel.conf --sentinel🎜🎜위의 두 가지 방법을 모두 지정해야 합니다 A sentinel 구성 파일 sentinel.conf를 지정하지 않으면 sentinel이 시작되지 않습니다. Sentinel은 기본적으로 포트 26379를 수신하므로 이를 실행하기 전에 다른 프로세스가 해당 포트를 점유하고 있지 않은지 확인해야 합니다. 🎜

🎜5.🎜 🎜Sentinel 구성🎜🎜🎜🎜Redis 소스 패키지에는 sentinel 구성 파일로 sentinel.conf 파일이 포함되어 있습니다. 구성 파일에는 각 구성에 대한 정보가 포함되어 있습니다. 항목 설명. 일반적인 구성 항목은 다음과 같습니다. 🎜🎜
🎜sentinel monitor mymaster 127.0.0.1 6379 2🎜
🎜sentinel down-after-milliseconds mymaster 60000 sentinel 장애 조치 시간 초과 mymaster 180000 sentinel 병렬-동기화 mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failure-timeout resque 180000 sentinel parallel-syncs resque 5🎜
🎜위 구성 항목은 mymaster와 resque라는 두 가지 이름을 구성합니다. 파일에는 마스터 정보만 구성하면 되고, 슬레이브는 자동으로 감지할 수 있기 때문에 슬레이브 정보를 구성할 필요가 없습니다(마스터 노드는 슬레이브에 대한 메시지를 갖습니다). Sentinel이 실행되는 동안 구성 파일이 동적으로 수정된다는 점에 유의해야 합니다. 예를 들어, 마스터-슬레이브 전환이 발생하면 구성 파일의 마스터가 다른 슬레이브로 수정됩니다. 이렇게 하면 나중에 Sentinel을 다시 시작하면 이 구성을 기반으로 이전에 모니터링했던 Redis 클러스터의 상태를 복원할 수 있습니다. 🎜🎜다음으로 위 구성 항목을 한 줄씩 설명하겠습니다. 🎜🎜sentinel monitor mymaster 127.0.0.1 6379 2🎜

이 줄은 센티넬이 모니터링하는 마스터의 이름이 mymaster이고 주소가 127.0.0.1:6379임을 나타냅니다. 줄 끝의 마지막 2는 무엇을 의미하나요? 우리는 네트워크가 신뢰할 수 없다는 것을 알고 있습니다. 때로는 센티널이 네트워크 정체로 인해 마스터 Redis가 작동하지 않는다고 잘못 생각할 수도 있습니다. 센티널이 클러스터링되면 이 문제에 대한 해결책은 매우 간단해집니다. . 마스터가 실제로 죽었는지 확인하기 위해 통신합니다. 이는 클러스터에 마스터가 죽었다고 생각하는 두 개의 센티널이 있는 경우 마스터를 실제로 사용할 수 없는 것으로 간주할 수 있음을 의미합니다. (센티넬 클러스터의 각 센티널도 가십 프로토콜을 통해 서로 통신합니다.)

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 Redis의 Sentinel 메커니즘에 대해 이야기하고 사용법을 소개하겠습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제