>  기사  >  PHP 프레임워크  >  Laravel의 Redis Sentinel 사용 및 구성

Laravel의 Redis Sentinel 사용 및 구성

步履不停
步履不停원래의
2019-06-28 17:39:003954검색

Laravel의 Redis Sentinel 사용 및 구성

마스터-슬레이브 구성(master-slave)

  • redis 구성 파일을 복사하여 여러 슬레이브를 활성화하세요.
sudo cp /etc/redis.conf /etc/redis-6381.conf

sudo cp /etc/ redis .conf /etc/redis-6382.conf

  • 슬레이브 구성 파일을 편집하고 주로 매개변수를 수정합니다
port 6381

pidfile "/var/run/redis-6381.pid"

logfile "/var/log/redis/redis-6381.log"

slaveof 11.11.11.11 6381

masterauth "123456" # 主从都保持一样的密码,且 master 的配置也需要这一行,在执行切换 master 的时候好像不会去添加这一行
  • /usr/bin/redis-server /etc/redis.conf 구성을 통해 Redis를 시작합니다

Sentinel 구성(sentinel)

  • 여기에서 sentinel 구성을 복사하고 3개의 sentinel을 활성화합니다.
sudo cp /etc/redis-sentinel.conf /etc/redis-sentinel-26381.conf

sudo cp /etc/redis-sentinel .conf / etc/redis-sentinel-26382.conf

  • sentinel 구성 파일을 편집합니다. 주요 수정 매개변수는 다음과 같습니다. 특정 상황에 따라 구성합니다
port 26381

pidfile "/var/run/redis-sentinel-26381.pid"

logfile "/var/log/redis/redis-sentinel-26381.log"

sentinel monitor mymaster 11.11.11.11 6379 2 #主节点别名为mymaster,后面是ip和端口,2代表判断主节点失败至少需要2个sentinel节点同意

sentinel auth-pass mymaster 123456

sentinel down-after-milliseconds mymaster 30000 #主节点故障30秒后启用新的主节点

sentinel parallel-syncs mymaster 1 #故障转移时最多可以有1个从节点同时对主节点进行数据同步,数字越大,用时越短,存在网络和 IO 开销

sentinel failover-timeout mymaster 180000 #故障转移超时时间180s:a 如果转移超时失败,下次转移时时间为之前的2倍;b 从节点变主节点时,从节点执行 slaveof no one 命令一直失败的话,当时间超过180S时,则故障转移失败;c 从节点复制新主节点时间超过180S转移失败
  • /usr/bin/redis-sentinel / etc/redis-sentinel.conf 구성을 통해 Sentinel 시작

laravel Sentinel Configuration

'default' => [
            'tcp://11.11.11.11:26379',
            'tcp://11.11.11.11:26381',
            'tcp://11.11.11.11:26382',    //这3个都是sentinel节点的地址
            'options' => [
                'replication' => 'sentinel',
                'service'     => env('REDIS_SENTINEL_SERVICE', 'mymaster'),    //sentinel
                'parameters'  => [
                    'host'     => env('REDIS_HOST', '127.0.0.1'),
                    'port'     => env('REDIS_PORT', 6379),
                    'password' => env('REDIS_PASSWORD', null),    //redis的密码,没有时写null
                    'database' => 0,
                ],
            ],
        ]

더 많은 Laravel 관련 기술 기사를 보려면 Laravel Tutorial 칼럼을 방문하여 알아보세요!

위 내용은 Laravel의 Redis Sentinel 사용 및 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.