1、
安装3个linux节点
参照单机版的安装: http://blog.csdn.net/jiongyi1/article/details/78114709
分别是centos1,centos2,centos3
并且在3台机器配置/etc/hosts文件:
192.168.56.2 centos1
192.168.56.3 centos2
192.168.56.4 centos3
2、
配置读写分离
假设centos1是master,
那么只需要在centos2和centos3的6379.conf配置:
slaveof masterip masterport
开启6379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
Then remember to reload the firewall for changes to take effect.
firewall-cmd --reload
3、
配置3个sentinel,实现failover
创建目录
mkdir /etc/sentinel #sentinel.conf配置文件存储目录
mkdir -p /var/sentinel/5000 #sentinel存储数据目录
mkdir -p /var/log/redis #日志存放目录
复制sentinel.conf
cp sentinel.conf /etc/sentinel/5000.conf
编辑5000.conf
port 5000 #默认是26379
bind centos1 #配置真实ip也可以,另外2台为centos2、centos3
daemonize yes
后台运行
logfile /var/log/redis/sentinel_5000.log #日志文件
dir /var/sentinel/5000 #数据存储目录
sentinel monitor mymaster centos1 6379 2 #centos1 为redis(非sentinel)的master
sentinel down-after-milliseconds mymaster 30000 #sentinel 与redis master失联超时时间,超过即sdown(主观)
sentinel failover-timeout mymaster 60000 #slave 升级为master的超时时间,具体含义见文档(我也不清楚,包括1、slave 向新的master同步数据,2、所有slave更新master信息、3、取消slave变为 master(slave还没完全执行完slaveof no one))
sentinel parallel-syncs mymaster 1 # 执行failover(salve to master)时,同时最多有多少个slave向新的master同步数据,数量越多,failover时间越长
开启5000端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent
Then remember to reload the firewall for changes to take effect.
firewall-cmd --reload
经过以上就配置完成了
3、
启动哨兵进程
在centos1,centos2,centos3三台机器上,分别启动三个哨兵进程,组成一个集群,观察一下日志的输出
下面2种方式都可
redis-sentinel /etc/sentinel/5000.conf
redis-server /etc/sentinel/5000.conf --sentinel
日志里会显示出来,每个哨兵都能去监控到对应的redis master,并能够自动发现对应的slave
哨兵之间,互相会自动进行发现,用的就是之前说的pub/sub,消息发布和订阅channel消息系统和机制
4、检查哨兵状态
redis-cli -h centos1 -p 5000
sentinel master mymaster
SENTINEL slaves mymaster
SENTINEL sentinels mymaster
SENTINEL get-master-addr-by-name mymaster
网友评论