复制Redis到同级目录下,分别命名为Redis-6380,Redis-6381。
分别修改Redis-6380,Redis-6381文件目录下的redis.windows.conf,如下图所示。
该步骤为定义端口,设置主从。
在Redis目录下cmd进入,开启主服务,输入redis-server.exe
开启从服务,分别在6380目录下cmd输入
redis-server --service-install redis.windows.conf --maxmemory 200m --service-name redis6380
redis-server.exe redis.winows.conf
打开6381文件夹cmd输入
redis-server --service-install redis.windows.conf --maxmemory 200m --service-name redis6381
redis-server.exe redis.winows.conf
此时,在主服务上会出现以下信息。
连接客户端,指定端口号 。
在主服务6379端口处,输入info replication可以显示两台从机信息 。
6381从机也是显示一样的信息
在主机中写入信息,从机可以成功读到。
从机中不能写,否则会报错READONLY You can't write against a read only replica.主机中的所有信息和数据,都会自动被从机保存,所以如果主机崩了,从机中还存在这些信息。
主机断开连接,从机依旧连到主机,但是没有写操作,如果主机此时恢复正常,从机依旧可以直接获取到主机的写信息。
6379主服务重新连接时,依然显示有2个从机。 如果是从机断开,查看主服务的信息(info replication),显示只剩一台从机了,如果那台断掉的从机恢复成从机了,依旧能读到主机的数据(下图的k1)。
复制原理:
从机启动成功连接到主机后会发送一个同步命令,主机接收到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕之后,主机将传送整个数据文件到从机,并完成一次完全同步。
全量复制:从服务在接收到数据库文件数据后,将其存盘并加载到内存中;
增量复制:主机将继续收集新的修改命令一次传给从机,完成同步,但只要重新连接主机,全量复制将被执行,数据在从机中一定可以看到。