配置redis的主从复制比较简单,确定master后,其他的只要配置好从哪里复制数据,即就做为了master的slave。
机器有限,在同一台机器上完成1主2从的配置。
1 将之前安装的redis目录及文件复制2份(1主2从,redis(master),redis1(slave1),redis2(slave2));
2 分别修改slave1和slave2的redis.conf配置文件;
port 由于是在同一台机器上,不同服务不能使用相同的端口,所以需求修改(如果是在不同的机器上,可不修改端口);
replicaof <masterip> <masterport> 说明slave要从哪里复制数据,即指定master,
如:replicaof 192.168.1.110 6379
masterauth <master-password> master认证密码,如果master没有配置requirepass,可不设置
master与slave之间的数据同步,如果slave是新加入的,则要同步整个master的数据,如果是在最初就已经存在的,则在同步数据时,只需要同步master的增量数据。
方式有两种:
1 Disk-backed 磁盘形式:master创建子进程,子进程写入磁盘 RDB 文件,再由父进程立即传给从库
2 Diskless 无磁盘形式:master创建子进程,子进程把 RDB 文件直接写入从库的 SOCKET 连接
repl-diskless-sync no
配置完成后,分别启动3个redis服务,在master上进行set操作,然后再slave上进行get。
在如上的master-slave配置中,如果slave数量比较多,也会增加master的压力。优化方法就是新的slave从之前的slave复制数据
如上机构中,只需要将配置文件中的slave3的配置文件的replicaof 的ip 端口改为slave2的即可。