开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第25天,点击查看活动详情
我们配置主从复制,至少需要三个,一主二从!配置三个库户端。 本文主要通过实战来演示两种如下图两种不同的主从模式:
在做Redis主从复制前,要先配置好自己的基础环境。
【准备工作】找到自己Redis目录的位置,如果使用homebrew安装的redis,可执行
brew list redis命令查询redis安装目录地址;docker安装的,exec进入容器也一样的。
执行brew list redis命令结果如下图所示:
【正式开始】进入redis目录,配置redis.conf文件。执行ls来查询自己redis目录下的文件。
【step1】先copy三份redis.conf配置文件,可通过cp redis.conf redis79.conf;cp redis.conf redis80.conf;cp redis.conf redis81.conf;实现拷贝。执行后文件目录如下:
【step2】开始对三个配置文件进行配置,配置步骤:
- 使用
vim redis79.conf去更改79的配置文件,80,81同理。 - 以redis79.conf为例,vim进入配置文件之后,使用
/por命令找下端口的配置(按n向下查询),找到port后,将port后面的端口号改为3379,当然redis80就改成3380。 - 接下来是开启守护线程,其实就是后台运行,通过
/daemonize找到daemonize这个配置,将no改为yes表示开启(三个文件都要改,这点就不再说了,后面都是)。 - 然后使用
/log找到logfile配置,我们在lofile配置后面的空字符串中设置我们的log文件路径如redis79文件我们这样设置:logfile "3379.log"。 - 同样,使用
/pid命令查询pidfile的配置,设置如➡️pidfile /var/run/redis_6379.pid。 - 使用
/dump找到dgfilename配置,配置rdb的目录,如dbfilename dump3379.rdb。 上述都配置完成后,可以通过`ps -ef|grep redis来查询redis进程状态情况,如下图.
到这里,环境就配置完成了。
一主二从配置
首先通过redis-server redis79.conf;开启服务,使用redis-cli -p 6379运行redis运行在6379端口,80、81同理。执行info replication查询该redis状态,如下图可以看到是主机(3个客户端最开始查询到的都是主机)。
接下来我们固定6379这个端口的客户端作为主机(不需要额外进行配置),对6380、6381执行
slaveof host port来设置为从机,两个从机对应的主机是这个host port地址的客户端。如下图,6380这个角色变成了从机。
我们可以设置6381跟随的主机是6379,这样就形成了我们开头图中提到的左边的那种连接模式,我们也可以设置6381跟随的主机是6380,就对应着开头图中提到的右边的那种连接形式。当主机shutdown之后,我们的可以执行slaveof no one让自己变成老大,变成主机。