Redis 主从配置(Windows版)
安装从库
1、复制一份 Redis 文件,当做从库。
2、修改从库文件中 redis.windows.conf 的端口号。
3、安装服务,需要重新设置名称。然后去服务中,开启“redis6380”(此时就可以连接6380的库了)
redis-server --service-install redis.windows.conf --service-name Redis6380
配置主从服务器
Redis Slaveof 命令
Redis Slaveof 命令可以将当前服务器转变为指定服务器的从属服务器(slave server)。
如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 slaveof host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。
另外,对一个从属服务器执行命令 slaveof no one 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
利用『 slaveof no one 不会丢弃同步所得数据集 』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。
在从库6380上输入命令,来开启数据同步(格式:slaveof host port)
slaveof 127.0.0.1 6379 //同步主库 6379
在从库上输入命令,关闭数据同步
slaveof no one //取消同步
1、通过 cd 命令进入解压的目录,使用 redis-cli -p 6380 命令切到6380从库
2、slaveof 127.0.0.1 6379 设置主从,6379是主库,6380是从库。(设置同步时,会将主库所有数据一起同步过来。)
3、测试
6379库 set A 123 ,6380库 get A,从库默认是不允许写入数据的。
4、永久保存主从关系
按如下所示,添加命令 slaveof 127.0.0.1 6379 ,配置好以后,每次redis服务重启时,会自动同步主库数据。
主从同步过程
下面来研究下slave服务器和master服务器间是如何建立起主从同步机制的。
1、Slave服务启动,主动连接Master,并发送SYNC命令,请求初始化同步
2、Master收到SYNC后,执行BGSAVE命令生成RDB文件,并缓存该时间段内的写命令
3、Master完成RDB文件后,将其发送给所有Slave服务器
4、Slave服务器接收到RDB文件后,删除内存中旧的缓存数据,并装载RDB文件
5、Master在发送完RDB后,即刻向所有Slave服务器发送缓存中的写命令
6、至此初始化完成,后续进行增量同步
相关文章:C# Redis 可视化工具 Redis Desktop Manager
参考文章:https://blog.csdn.net/guweiyu_thinker/article/details/78816071