哨兵模式,是redis高可用的一个解决方案
Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。把slave升级为master,等到之前的master恢复了自动变为slave了
一般的工作模式是这样的:
一对一的链接 一个master
$client = new Predis\Client();
$client->set('foo', 'bar');
$value = $client->get('foo');
使用sentinel后
// 3 个sentinel 组成一个前台
// 该前台监控着redis-slave,一个master主节点和多个slave从节点
// 客户端访问这个前台,对应的前台会返回master的操作资源
//mymaster 是自定义的,后面有说明如何定义这个名字
//对应3个不同服务器地址sentinel
$sentinels = ['tcp://10.0.0.1', 'tcp://10.0.0.2', 'tcp://10.0.0.3'];
$options = ['replication' => 'sentinel', 'service' => 'mymaster'];
$client = new Predis\Client($sentinels, $options);
$client->set('foo', 'bar');
$value = $client->get('foo');
这是配置好之后如何启动使用的
关于sentinel的理解和配置在后面的两章