windows Redis安装及其一主二从三哨兵模式的实现

1.资源

首先去redis的github上查找对应的windows安装包

github地址 https://github.com/MicrosoftArchive/redis/tags

2.安装

双击,选择安装文件夹,并勾选配置path

端口默认

设置最大内存,结合自己电脑的内存考虑

安装

3.启动

安装完成后 进入Redis安装目录进行命令行输入,将Redis服务启动

执行服务启动命令

redis-server --service-start

一般情况下是第一次安装好后服务就已经启动了,当你在去执行服务启动命令的时候会命令行报错

出现这种情况可以先执行服务中断指令redis-server --service-stop后再执行服务启动命令,则可看到服务成功启动的返回

这个是本地的默认的Redis服务的启动

判断是否本地服务已启动可以打开管理后台查看进程

下面开启redis

一主二从三哨兵的模式

在redis安装目录下新增6个配置文件

redis服务的配置文件是将原配置文件拷贝后进行修改

原配置文件名redis.windows.conf

复制后重命名为以下三个文件

redis6379.conf

redis6479.conf

redis6579.conf

同时新建三个哨兵服务文件,分别是

sentinel26379.conf

sentinel26479.conf

sentinel26579.conf

下面来说说配置

redis服务配置

redis6379.conf (主节点)

        port 6379 //端口号

        bind 127.0.0.1 //地址

        requirepass 123456 //密码

redis6479.conf (从节点1)

        port 6479 //端口号

        bind 127.0.0.1 //地址

        requirepass 123456 //密码(需要和主节点一致)

        masterauth 123456 //主节点密码(只有从节点需要设置这个)

        slaveof 127.0.0.1 6379 //主节点地址和端口号(注意这里没有:)

redis6579.conf (从节点2)

        port 6579 //端口号

        bind 127.0.0.1 //地址

        requirepass 123456 //密码(需要和主节点一致)

        masterauth 123456 //主节点密码(只有从节点需要设置这个)

        slaveof 127.0.0.1 6379 //主节点地址和端口号(注意这里没有:)

哨兵配置信息

sentinel26379.conf

        #端口号

        port 26379

        #配置监听的主服务器,这里 sentinel monitor 代表监控

        #mymaster代表服务器名称,可以自定义

        #127.0.0.1代表监控的主服务器

        #6379代表端口

        #2代表只有两个或者两个以上的哨兵认为主服务器不可用的时候,才会做故障切换操作

        sentinel monitor mymaster 127.0.0.1 6379 2

        #sentinel auth-pass 定义服务的密码

        #mymaster服务名称

        #123456 Redis服务器密码

        sentinel auth-pass mymaster 123456

        #修改心跳检测 5000毫秒

        #这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒

        sentinel down-after-milliseconds mymaster 5000

        #这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 #多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。

        sentinel parallel-syncs mymaster 1

        #failover-timeout 可以用在以下这些方面:

        #1. 同一个sentinel对同一个master两次failover之间的间隔时间。

        #2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。

        #3.当想要取消一个正在进行的failover所需要的时间。

        #4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了。

        sentinel failover-timeout mymaster 15000

sentinel26479.conf

        port 26479

        sentinel monitor mymaster 127.0.0.1 6379 2

        sentinel auth-pass mymaster 123456

        sentinel down-after-milliseconds mymaster 5000

        sentinel parallel-syncs mymaster 1

        sentinel failover-timeout mymaster 15000

sentinel26579.conf

        port 26579

        sentinel monitor mymaster 127.0.0.1 6379 2

        sentinel auth-pass mymaster 123456

        sentinel down-after-milliseconds mymaster 5000

        sentinel parallel-syncs mymaster 1

        sentinel failover-timeout mymaster 15000

下面是指令运行顺序(需要用管理员的权限开启命令行窗口,切换到Redis安装目录

redis-server.exe redis6379.conf //运行主redis节点

redis-server.exe redis6479.conf //运行从redis节点

redis-server.exe redis6579.conf //运行从redis节点

redis-server.exe sentinel26379.conf --sentinel //运行哨兵一服务

redis-server.exe sentinel26479.conf --sentinel //运行哨兵二服务

redis-server.exe sentinel26579.conf --sentinel //运行哨兵三服务

redis-cli.exe -h 127.0.0.1 -p 6379 //连接到 127.0.0.0:6379的端口服务

auth 123456//输入redis服务的连接密码

info replication //查看redis服务的基础属性

下面展示指令运行后的结果(注意运行后的命令行窗口不能关闭,否则服务会中断

redis-server.exe redis6379.conf //运行主redis节点

 

redis-server.exe redis6479.conf //运行从redis节点

 

redis-server.exe redis6579.conf //运行从redis节点

 

redis-server.exe sentinel26379.conf --sentinel //运行哨兵一服务

 

redis-server.exe sentinel26479.conf --sentinel //运行哨兵二服务

 

redis-server.exe sentinel26579.conf --sentinel //运行哨兵三服务

 

新起一个命令行窗口,切换到Redis安装目录,执行以下命令

redis-cli.exe -h 127.0.0.1 -p 6379 //连接到 127.0.0.0:6379的端口服务

auth 123456//输入redis服务的连接密码

info replication //查看redis服务的基础属性

 

Ctrl+C后继续输入如下命令

redis-cli.exe -h 127.0.0.1 -p 6479 //连接到 127.0.0.0:6479的端口服务

auth 123456//输入redis服务的连接密码

info replication //查看redis服务的基础属性

 

另一个从节点也是一样的,这里就不做展示了

最后展示下Java中使用一主二从三哨兵的效果

这里我是通过redis存储我的登录token的,效果如下

 

 

 

通过上面可以看到我登录成功后主从redis服务都存储了一份token,那么这个时候要是我的主redis服务宕机了,还能不能继续成功执行登录呢,执行如下操作将主redis服务关闭

 

然后通过redis可视化工具也可看到redis主服务已经宕机了

 

这个时候我们去执行登录看看系统是出错了还是正常登录

 

可以看到还是正常登录的,然后看下存储的键值有没有改变

 

 

可以看到还存活的redis服务键值还是改变了,这说明程序并没有报错,依然能正常运行,这个时候我们看看6479服务和6579服务详情,执行前面的查看端口详情命令

 

 

我们可以看见原来的6479服务从原来的从服务变为了主服务,6579还是从服务,这就是一主二从三哨兵的效果

 

这个时候我们再启动6379服务,然后查看其详情,发现重新启动的6379服务变为了从服务,同时redis里存储的键值也同步成了主服务上的键值

 

 

初学者,有不对的地方欢迎指出,此贴是防止自己遗忘而记录的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值