一、架构环境
系统CentOS 6.8 64位 ip:192.168.1.16(主) ip:192.168.1.17(从)
二、配置
1、安装redis,把下载好的redis包解压安装
#tar -zxvf redis-3.2.1.tar.gz #cd redis-3.2.1/ #make #mkdir /usr/redis/ #cp redis.conf /usr/redis/ #cp sentinel.conf /usr/redis/ #cd ./src #cp redis-server /usr/redis/ #cp redis-benchmark /usr/redis/ #cp redis-sentinel /usr/redis/ #cp redis-cli /usr/redis/
2、修改redis.conf配置文件
#vi /usr/redis/redis.conf bind 0.0.0.0 //可以连接任何IP daemonize yes //后台运行 logfile "/usr/redis/logs/redis.log" //redis日志 其他的参数按需修改 从的redis.conf和主的一样,加上 slaveof 192.168.1.16 6379 //主的ip和主的端口
3、启动两边的redis
#./usr/redis/redis.server redis.conf //先启动主的,再启动从的
4、查看状态
主 #./redis-cli -h 192.168.1.16 -p 6379 info replication # Replication role:master connected_slaves:1 slave0:ip=192.168.1.17,port=6379,state=online,offset=1720,lag=1 master_repl_offset:1720 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:2 repl_backlog_histlen:1719
从 #./redis-cli -h 192.168.1.17 -p 6379 info replication # Replication role:slave master_host:192.168.1.16 master_port:6379 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_repl_offset:455 slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
5、配置sentinel
#vi /usr/redis/sentinel.conf port 26379 daemonize yes //手动添加后台运行参数 logfile "/usr/redis/logs/sentinel.log" //手动添加日志路径 sentinel myid e8ef14fe85e52010fc2537bb21c6b62373f36acd sentinel monitor mymaster 192.168.1.17 6379 1 sentinel down-after-milliseconds mymaster 15000 sentinel failover-timeout mymaster 900000 protected-mode no //手动添加mode参数,不然哨兵集群会连接不上
6、启动sentinel
./redis-sentinel sentinel.conf
7、故障演示
把主的服务宕了或者kill -9 redis的进程
#./redis-cli -h 192.168.18.136 -p 6379 shutdown
这边可以看到,sentinel监控到主的redis服务停止了,自动把从的redis切换到主了
当再次启动宕掉的redis服务,你会发现原来的主变成从了
这样主从机制的配置完成了