首页 > 技术文章 > redis哨兵模式个人虚拟机搭建

forward22222 2018-09-06 21:01 原文

注:本文参考了其他博主的文章,所以还希望大家哨兵模式各类文章都看看,看得多了之后再自己理解下一般就能融会贯通,这样在看到一些错误的时候能识别,避免学到错误的知识~

我装在了自己个人的虚拟机上,(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

先搞明白-后熟悉-最后精湛

 

推荐阅读