Laravel支持redis sentinel集群

在laravel中redis客户端选用Predis,修改config/database.php里面的redis配置

例如:

'default' => [
    'tcp://127.0.0.1:26379', //sentinel
    'tcp://127.0.0.1:26378',
    'options' => [
        'replication' => 'sentinel', //这个不能改
        'service' => 'my_master',	//sentinel监控的master name
        'parameters' => [
            'password' => 'redis_password', //redis的密码
            'database' => 0, //初始选中的库
        ],
    ]
]

注:

1、Predis 开启sentinel后,会自动根据请求的命令,读写分离

2、业务中对主从同步时间敏感的可以指定连接master,连接方式:$connect = Redis::connection()->getClientFor('master');

  注:Redis::connection()->getClientFor('master')->info() 能返回全部的redis info,可以根据section返回某项信息

    Redis::connection()->getConnectionById('master')->getParameters()->toArray() 可以返回master的服务器信息

    也可以Redis::connection()->getConnectionById('master')->getParameters()->host单项返回

    上面两个信息,可以方便做一些自定义的监控

3、最少两台redis实例组成互备集群,当一台下线时,读写都操作master

predis代码:

 

posted @ 2019-12-26 19:29  钻牛角尖儿  阅读(838)  评论(0)    收藏  举报