Redis下载目录:Releases · tporadowski/redis · GitHub
下载完按照端口命名目录如下
Redis主从
其中redis6381是主服务器,redis6382、redis6383是从服务器
1.修改配置
修改redis6381目录下的windows.redis.conf文件port为6381
修改redis6382、redis6383目录下的windows.redis.conf
#redis6382目录下的redis.windows.conf
port 6382
slaveof 127.0.0.1 6381
#redis6383目录下的redis.windows.conf
port 6383
slaveof 127.0.0.1 6381
2.启动服务
#win+R打开cmd,进入reids6381、redis6382、redis6383目录
#输入如下命令
redis-server.exe redis.windows.conf
tips:启动完slave服务器后记得在主服务器的dos窗口按一下回车,不然会链接不上master
3.查看主从
进入redis目录查看主从信息
#进入redis6381目录
redis-cli.exe -p 6381
info Replication 查看主从信息
#进入redis6382目录
redis-cli.exe -p 6382
info Replication 查看主从信息
4.开始测试
tips:slave服务器只读,这个可以进行设置,按照业务需要,默认是只读
一主二从三台服务器 都没有这个键值
现在对master服务器进行设置,再在slave服务器进行获取
可以看到在master服务器进行设置,slave服务器就可以直接get了
主从增量同步原理
Redis增量复制是指Slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。
增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。
主从复制策略
主从刚刚连接的时候,进行全量同步;全同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。
特别注意:
如果多个Slave断线了,需重启时,因为只要Slave启动,就会发送sync请求和主机全量同步,当多个同时出现的时候,可能会导致Master IO剧增宕机。
5.验证从服务器掉线并恢复
关掉6382slave服务器
可以看到主服务器有日志输出
在master服务器的客户端输入info replication也可以看到只剩下一个从服务器,这时我们在启动6382slave从服务器
可以看到启动完成之后进行了一次增量主从同步(只有第一次会进行全量同步)
6.验证主服务器掉线并恢复
关掉master6381服务器
在6382slave和6383slave服务器上输入info replication
可以看到两个的role还是slave,并没有变成master,这时我们再启动6381服务器
可以看到master服务器的状态有了变更。从down变成了up,role并没有改变。