redis数据同步

redis数据主从同步,仅仅是为了做一个测试(在本地部署两个redis的服务)

redis的数据同步源于对mysql的数据库读写分离理解

一:mysql的数据同步的流程如下如所示,Master将数据修改记录存储在binary log中,Slave通过I/O将二进制文件拷贝到中继日志(relay log),Slave读取中继日志并对其数据库进行对应的操作。


redis数据同步_第1张图片
(以上的步骤只是用于简单的理解,深一步了解请自行查询)

二:在单机模式模拟数据同步

 1:在我的资源中下载redis的安装包(也可以使用其他),复制两份来模拟Master和Slave,分别取名为redisMasterSevice和redisSlaveService

    2:修改Master和Slave的配置 

        Master中找到配置文件redis.windows.conf(windows中的名称,linux找到对应的配置文件),中找到绑定的IP地址,本文中是在本地进行测试所以绑定的地址为127.0.0.1,在服务器绑定为对应的IP地址,配置如下图所示

redis数据同步_第2张图片

        Slave中找到配置文件redis.windows.conf(windows中的名称,linux找到对应的配置文件),将默认的端口号更改为非6379和其他未占用端口(我修改为6380);

redis数据同步_第3张图片

        同理绑定的地址为127.0.0.1,如果是服务器更改绑定地址为对应的地址;

redis数据同步_第4张图片

      修改Master和Slave的对应关系,在Slave中的配置文件中搜索# slaveof ,我们在下面按照格式添加Master的配置类似 slaveof  MasterIP地址  Master端口,如下图

redis数据同步_第5张图片


三:分别启动Master和Slave服务

    启动Master服务。通过cmd跳转到redisMasterService文件夹下,输入redis-server.exe redis.conf启动Master服务redis数据同步_第6张图片

    启动Slave服务,方法如启动Master服务

redis数据同步_第7张图片

slave服务启动后出现如下,修改配置之后slave服务会在启动之后主动连接Master服务(SYNC),然后通过flush、load来将Master数据同步到slave

redis数据同步_第8张图片


四:进行测试是否数据同步

     同样打开两个窗口来操作reids(之前运行得服务端不可关闭),对应到Master的文件夹下,输入redis-cli.exe -p 6379 进入客户端,输入flushdb命令清空缓存数据,然后数据一个简单的命令set key1 value1 来存入Master中


   新打开cmd窗口, 对应到Slave的文件夹下 ,输入redis-cli.exe -p 6380进入客户端,输入get key1看是否获取到数据value1

这样看来Slave获取到了Master中的数据,完成了同步

你可能感兴趣的:(redis)