Windows下 redis 操练---1主2从3哨兵 篇(8)
一、下载redis,以下版本为:Redis-x64-5.0.10
二、服务器6台,如下:
1.本机1台-----------放1个丛slave(机器有限,暂时只做1主1从)
2.阿里云1台--------放1个主master
3.本机中的vmware虚拟机装3台-------分别放3个哨兵sentinel
4.第6台服务器-------放1个丛slave(机器有限,暂时只做1主1从)
三、直接复制6份redis,放在不同文件夹,如下:
四、配置master
修改配置文件:redis.windows.conf
1.设置密码:requirepass 123456
2.配置内存,持久化,淘汰策略等暂时全部采用默认
3.配置redis日志文件,默认是没有的,
找到 logfile “ ” ,设置成路径 :logfile “ ./redis_log”,则在当前redis目录下会生成redis_log日志文件,
如果带有路径文件夹层级,先手动新建文件夹(发现自动生成不了,找不到路径),最后一级为日志文件,如:D:\redis-windows\abc\gd,可带上后缀名,如:D:\redis-windows\abc\gd.log
如果设置了日志文件,控制台看不到日志输出,为了方便查看先还原默认空值。
五、把master放到阿里云服务器
0、cmd对应redis文件路径
1.安装服务: redis-server --service-install redis.windows.conf --loglevel verbose
2.启动服务: redis-server --service-start
3.登录阿里云控制台把6379端口开放。
4.本机测试连接:redis-cli.exe -h XX.XX.XXX.XXX -p 6379 -a 123456 或者使用RedisDesktopManager工具连接,发现“由于目标计算机积极拒绝,无法连接”。
5.修改配置文件bing 127.0.0.1 注释掉 或者改成:bing 0.0.0.0 ,这里直接改成4个0,这样外网才能够访问。
6.停止服务: redis-server --service-stop 后再开启服务。
7.如果还是访问不通,可能是防火墙限制,直接登录服务器,新建6379端口号入站规则。或关闭防火墙。
8.连接成功
六、配置丛redis ----slave6377
1.设置密码:requirepass 123456
2.配置内存,持久化,淘汰策略等暂时全部采用默认
3.配置redis日志文件,默认是没有的,这里默认空值
4. bind 0.0.0.0
5.slaveof 88.99.66.11 6379
6.masterauth 123456
7.slave-read-only yes
8.安装服务: redis-server --service-install redis.windows.conf --loglevel verbose
9.启动服务: redis-server --service-start
10.本机测试连接:redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
11.查看信息(前提是要查看的redis先连上redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456):info replication
12.连上阿里主master查看:info replication
13.使用RedisDesktopManager工具分别连接主从,添加key value
七、配置哨兵sentinel
0、虚拟机开启1台服务器,并网络设置为桥接模式,以免彼此ping不通,如下:
1.cmd查看虚拟机中服务器IP地址,如:192.168.1.8(虚拟机IP)
2.虚拟机中ping下本机是否连通,如:ping 192.168.1.2(本机IP) ,发现ping不通,再Ping下默认网关:ping 192.168.1.1,发现能ping通。
3.本机ping虚拟机:ping 192.168.1.8 ,发现能ping通。
4.把主机防火墙关掉,彼此都能ping通了
---------------------------------------------------------------
5.在哨兵sentinel63790文件夹内新建一个哨兵专用的配置文件(名字可以随便取):sentinel.conf ,配置如下:
port 63790
sentinel monitor mymaster 127.0.0.1 6379 2 --------(127.0.0.1更改为部署主redis的真实IP,阿里云IP)
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster 123456
6.启动哨兵服务:redis-server.exe sentinel.conf --sentinel
7.启动成功后,会出现主从各对应IP地址
8.查看:info replication redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456 ,断掉主redis,发现切换不了,如下:丛机宕机
9.检查从bing为:bind 0.0.0.0 ,没问题。
10.本机防火墙已关,没问题。
11.跑去虚拟机连·:redis-cli.exe -h 192.168.1.2 -p 6379 -a 123456,没问题。
12.跑去阿里连:redis-cli.exe -h (本机公网IP) -p 6379 -a 123456,被拒绝访问。------------经测阿里必须能连上我这边本机,否则故障转移不了。
13.最后怎么整都连不了我的电脑,无论开放端口号还是关防火墙什么的,最后发现是我的IP地址不是公网的,我没有公网IP地址,外界访问不了。
14.最后全部切回本机,故障转移切换成功。