Redis哨兵模式一主一备配置操作方法 ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1、将本地Redis文件拷贝出来,复制一份(默认安装路径:C:\Program Files\Redis),分别以端口命名,Redis_master_6379、Redis_slave_6380,由于原来有一个6379,所以直接在C:\Program Files\Redis\Reids_more目录下新增6380文件夹以及各种配置启动文件
2、先配置主从设置:
6379为主机,不做修改;
6380文件夹中,配置redis.windows.config文件:
#启动端口
port 6380
#属于IP为127.0.0.1端口为6379的从机
slaveof 127.0.0.1 6379
3、配置检测哨兵
两个文件夹中都需要新增一个哨兵检测文件sentinel.conf
6379文件夹中sentinel.conf:
# 当前Sentinel服务运行的端口
port 26379
# 哨兵监听的主服务器,最后的2表示投票数,1台机器认为连不上127.0.0.1:6379端口就进行切换
sentinel monitor mymaster 127.0.0.1 6379 1
#要配置上master的认证密码,否则监控不到
sentinel auth-pass mymaster Test@123
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时, 最多有3个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 3
6380文件夹中的sentinel.conf文件基本和上面一致,只需要修改对应的Sentinel服务运行的端口,6380修改为port 26380
4、在配置登录密码以及认证密码
两个文件夹中都需要配置:
在redis.windows.config文件中配置:
#登录密码
requirepass Test@123
#认证密码
masterauth Test@123
5、配置启动文件
新增Redis启动脚本:startRedisServer.bat
@echo off redis-server.exe redis.windows.conf @pause
新增Redis-Sentinel启动脚本:startRedisSentinel.bat
@echo off redis-server.exe sentinel.conf --sentinel @pause
再在C:\Program Files\Redis\Reids_more目录配置windows启动文件:
配置启动startrRedis6379.cmd,其他同理!
@echo off cd Redis6379 startRedisServer.bat
配置启动startrRedisSentinel26379.cmd,其他同理!
@echo off cd Redis6379 startRedisSentinel.bat at
6,现在就可以进行测试了,先启动tomcat,然后向缓存中存入一定量的值
然后从上到下依次启动,此时6379为主机,6380为备机。如果有多个备机,那么在启动的时候中间需要稍等一下,否则两个从机同时对主机进行缓存同步会比较卡,启动好以后会有4个控制台,两个是redis的,两个是哨兵的,端口分别为6379、6380、26379、26380
常用命令:
打开redis工作窗口: redis-cli -p 6379
密码认证:auth Test@123
查看主从详情:info replication
关闭服务:shutdown
查看缓存详情:
主机情况:
从机情况:
此时可以进行宕机测试:
a、进入6380端口,关闭服务,发现对主机没有影响,重启6380端口redis,还是从机,重启一段时间后开始同步主机缓存
b、进入6379端口,关闭服务,发现6380、6381端口均报错,稍等几秒后哨兵会发现此情况并开始切换主机,从多台从机中选出一台成为主机,然后会修改配置文件,原主机会新增一个slaveof IP port,然后所有的哨兵都会开始监测新主机的ip和port,重启6379服务后,发现6379变成从机,主机现在是6381,使用redis-cli查看缓存,发现缓存还在服务其中
7、将Redis集群部署进项目
新增redis.properties文件,集中配置redis地址端口以及哨兵的地址端口等信息。
在spring-redis.xml文件中引入配置文件,然后配置哨兵的地址端口等信息。
8、项目测试
先关闭系统自带的redis服务,再按照顺序开启主从机redis服务,再开启哨兵监测服务,打开alarm下文件,发现缓存正常,后强制关闭6379端口服务,观看哨兵控制台发现主机正常切换到6381,然后查看redis缓存,发现正常,在页面打开别的文件,发现可以正常向redis中添加,再次启动6379,发现该端口已变为从机,可以正常从6381主机更新xml文件数据,测试结果正常
注意:
1、由于配置Redis的主从关系,需要一台主机以及两台或者多台从机。本地只能使用一台电脑,所以在本地配置多个端口以实现多台服务器的测试效果
2、所有操作都在本地Redis服务关闭的时候进行。右键我的电脑-管理然后可以查看电脑的服务开启情况,否则会因为端口一致导致master启动失败
3、一定要在sentinel.conf文件中配置master的认证密码:sentinel auth-pass mymaster Test@123,否则会导致在主机宕机以后哨兵不能准确检测到情况导致自动切换主机失败
4、在哨兵模式中,除了刚配置好第一次启动的时候,其他时候并不存在绝对的主和从,当主机A宕机以后,从机B晋升成为主机B,A重启以后也只会变成从机A,如果此时停下全部redis,可以发现,各部分Redis的配置文件中,监视的端口从主机A的端口变成主机B的端口,也就是说各部分的配置文件会随着主机的改变而改变,主要改变部分就是配置的从机地址及端口(redis.windows.config中的slaveof IP port)和哨兵模式监听的主服务器地址及端口(sentinel.conf中的sentinel monitor mymaster IP port quorun)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。