1.redis 主 端口 6300
redis 从 端口 6301
redis 从 端口 6302
主服务器修改
port 6300
pidfile /zyc/redis_sentry/zhucong/pid/redis_zhu.pid
logfile "/zyc/redis_sentry/zhucong/log/redis_zhu.log"
dir /zyc/redis_sentry/zhucong/dir/zhu
从服务器修改
port 6301
pidfile /zyc/redis_sentry/zhucong/pid/redis_cong_1.pid
logfile "/zyc/redis_sentry/zhucong/log/redis_cong_1.log"
dir /zyc/redis_sentry/zhucong/dir/cong_1
slaveof 127.0.0.1 6300
port 6302
pidfile /zyc/redis_sentry/zhucong/pid/redis_cong_2.pid
logfile "/zyc/redis_sentry/zhucong/log/redis_cong_2.log"
dir /zyc/redis_sentry/zhucong/dir/cong_2
slaveof 127.0.0.1 6300
启动
/www/server/redis/src/redis-server /zyc/redis_sentry/zhucong/conf/redis_zhu.conf &
/www/server/redis/src/redis-server /zyc/redis_sentry/zhucong/conf/redis_cong_1.conf &
/www/server/redis/src/redis-server /zyc/redis_sentry/zhucong/conf/redis_cong_2.conf &
2.哨兵的作用的主服务器down 掉以后 ,从服务器变为主服务器 很大程度保证可用性
哨兵服务器
pidfile /zyc/redis_sentry/shaobing/pid/shaobing1.pid
后面的1 代码一个哨兵 mymaster 随便命名 127.0.0.1 6300 主服务器名称和端口
sentinel monitor mymaster 127.0.0.1 6300 1
先启动哨兵再起动主从 才生效
/www/server/redis/src/redis-sentinel /zyc/redis_sentry/shaobing/conf/sentinel_1.conf &
<?php
//初始化redis对象
$redis = new Redis();
//连接sentinel服务 host为ip,port为端口,哨兵的ip和端口号 随便一个哨兵
$redis->connect( "127.0.0.1", "26379");
//獲取主庫列表及其狀態資訊 不好使用不知道为什么
$result = $redis->rawCommand('SENTINEL', 'masters');
//master_name应该由运维告知(也可以由上一步的信息中获取 配置文件)
$master_name="mymaster"; //哨兵的配置文件
$result = $redis->rawCommand('SENTINEL', 'master', $master_name); //获取主服务器信息
$zhu= ['ip'=>$result[3], 'port'=>$result[5]];
//根据所配置的主库redis名称获取其对应从库列表及其信息
$result = $redis->rawCommand('SENTINEL', 'slaves', $master_name); //获取多个从服务器信息
$slaves = [];
foreach ($result as $val)
{
$slaves[] = ['ip'=>$val[3], 'port'=>$val[5]];
}
$data['zhu']=$zhu;
$data['cong']=$slaves;
//echo "<pre>";print_r($data);
//获取特定名称的redis主库地址
$result = $redis->rawCommand('SENTINEL', 'get-master-addr-by-name', $master_name);
//以上部分可以获取到主库的ip和对应端口,程序可以直接像链接单台redis一样链接操作使用
echo "<pre>";print_r($result);