注:本文参考了其他博主的文章,所以还希望大家哨兵模式各类文章都看看,看得多了之后再自己理解下一般就能融会贯通,这样在看到一些错误的时候能识别,避免学到错误的知识~
我装在了自己个人的虚拟机上,(local64)192.168.200.136作为master,(charging64)192.168.200.135作为slaver
master配置(我这里并没有修改bind,也能运行,但看其他博主说需要修改这里,在生产环境中修改这里最好-一家之言):
daemonize yes //默认值是no,把值修改为yes,以后台模式运行
logfile /usr/local/redis/logs/redis.log //日志文件的位置
dir /usr/local/redis/datas/ //SNAPSHOTTING文件的路径
slaver配置:
dir /usr/local/redis/datas/
logfile "/usr/local/redis/logs/redis.log"
daemonize yes
slave-serve-stale-data no //如果slave 无法与master 同步,设置成slave不可读,方便监控脚本发现问题。
slaveof 192.168.200.136 6379
appendonly yes
appendfsync everysec
哨兵redis的配置文件(sentinel.conf):注意配置文件都需要修改,我这里在136地址上启动了一个哨兵进程,端口号没改,是26379;在135地址上启动了两个进程,分别是26379端口和26380端口(需要复制一份redis的安装目录文件,然后修改sentinel.conf的端口号,其实可以把sentinel.conf文件放到bin文件夹里,这样好启动)
哨兵程序的日志路径:
dir /usr/local/redis/sentinelLogs/
### Sentinel Monitor 设置: 哨兵监控的主master的地址:(注意这里的地址需要设置为主master的地址)
sentinel monitor mymaster 192.168.200.136 6379 2
哨兵程序每5秒钟检测一次master是否正常:
检测主服务器宕机的时间间隔:
sentinel down-after-milliseconds mymaster 5000
同步的个数
sentinel parallel-syncs mymaster 1
默认是3分钟,修改为1分钟
sentinel failover-timeout mymaster 60000
首先分别启动master和slaver的服务端:
./redis-server redis.conf(注意我是在bin目录下启动的,并且redis.conf文件也在bin目录里)
可以查看启动的后台进程:
ps aux|grep redis
启动master客户端:
./redis-cli -h 192.168.200.136 -p 6379
查看主从机的信息:
info replication
启动slaver客户端:
./redis-cli -h 192.168.200.135 -p 6379
查看主从机的信息:
info replication
master_link_status:up master主服务器的连接状态,up表示已连接
136上克隆一个窗口,135上克隆两个窗口,分别启动哨兵程序(因为我在135上装了两个哨兵程序)
在各自的bin目录下启动(注意我的sentinel.conf文件放在bin目录下):
./redis-server sentinel.conf --sentinel &
可以启动哨兵程序的客户端查看信息:
[root@szdlinux bin]# ./redis-cli -h local64 -p 26379 local64:26379> sentinel masters 1) 1) "name" 2) "mymaster" 3) "ip" 4) "192.168.200.136" 5) "port" 6) "6379" 7) "runid" 8) "b681dc0b86b51487ecaa81b403629f5e59ec61a5" 9) "flags" 10) "master" 11) "pending-commands" 12) "0" 13) "last-ping-sent" 14) "0" 15) "last-ok-ping-reply" 16) "380" 17) "last-ping-reply" 18) "380" 19) "down-after-milliseconds" 20) "5000" 21) "info-refresh" 22) "8906" 23) "role-reported" 24) "master" 25) "role-reported-time" 26) "311264" 27) "config-epoch" 28) "38" 29) "num-slaves" 30) "2" 31) "num-other-sentinels" 32) "4" 33) "quorum" 34) "1" 35) "failover-timeout" 36) "60000" 37) "parallel-syncs" 38) "1"
此时使用 ./redis-cli -h 192.168.200.136 -p 6379 shutdown关掉136,然后查看135,可以看到135已经成为了master,然后再启动136,此时136已经变成为slaver,在你每次关掉master和启动新的slaver时都可以从sentinel的前端页面显示可以看到
有问题的话可以随时@我,我会及时改正,防止误人子弟。博文仅供参考,希望大家能有自己的思考,然后共同进步~
2018-09-06
先搞明白-后熟悉-最后精湛