十六、Redis进阶-Redis主从复制一主多从一步一步实现

作者: 温新

分类: 【Redis】

阅读: 3000

时间: 2020-09-04 16:07:22

主从复制的概念

在复制的概念中,数据库分为两类,一类是主数据库(master),另一类是从数据库(slave)。

主数据库可以进行读写操作,当主数据库写操作导致数据变化时会自动将数据同步给从数据库;从数据库一般设置为只读,并接受主数据库同步过来的数据。

一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。

什么是主从复制

主从复制是指将一台主节点(master)Redis服务器的数据复制到其他的从节点(slave)Redis服务器。主从之间的复制是单向的,只能是由主节点到从节点。

主从复制的作用

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余
  • 故障恢复:当主节点出现故障时,可以由从节点提供服务,快速实现故障恢复;实际上是一种服务冗余
  • 负载均衡:在主从复制的基础上配合读写分离,由主节点提供写服务,从节点提供读服务,分摊服务器负载;写少读多的情况下,可以通过从节点分摊读负载,提高Redis服务器并发量
  • 读写分离:用于实现读写分离,主库写,从库读
  • 高可用基石:主从复制是实现哨兵和集群的基础

两种方式实现主从复制

Redis中实现主从复制很容易,只需要在从数据库中加入slaveof 主数据库地址 主数据库端口即可,主数据库不需要进行任何配置。

Redis可以通过slaveof与配置文件两种方式实现主从复制,推荐使用配置文件方式。

方式一、通过saveof命令方式实现主从复制

实现:--slaveof 主库地址 端口

通过命令的方式与通过配置的方式一样,实现起来都很简单,命令行只需要在启动Redis服务器时加上slaveof参数,并指定端口就可以了。

下面在一台服务器上启动3个Redis实例,实现一主二从。

第一步:直接启动Redis服务。不带任何参数,Redis实例默认监听6379端口,将此作为主服务

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 启动主服务</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> /usr/local/bin/redis-server </span>

第二步:客户端连接6379主服务

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 查看配置信息</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> info replication</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Replication</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">role:master   <span style="box-sizing: border-box;color: rgb(103, 110, 149)"># master主数据库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">connected_slaves:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid:095911c74f50bb8276f869febfa0c77bcd00f016</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid2:0000000000000000000000000000000000000000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_repl_offset:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">second_repl_offset:-1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_active:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_size:1048576</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_first_byte_offset:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_histlen:0</span>

第三步:使用3680端口开启从服务

需要新开窗口进行服务器配置

 /usr/local/bin/redis-server --port 6380 --slaveof 127.0.0.1 6379

连接成功后,主数据库中的任何数据变化通过自动同步到从数据库中(6380)

第四步:客户端连接6380服务

需要新开窗口进行连接

 /usr/local/bin/redis-cli -p 6380

查看主从信息

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6380> info replication</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Replication</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">role:slave   <span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 6380为从库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_host:127.0.0.1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_port:6379</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_link_status:up</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_last_io_seconds_ago:3</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_sync_in_progress:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">slave_repl_offset:70</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">slave_priority:100</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">slave_read_only:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">connected_slaves:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid:be3661f87806ca1bb4ae0d9e71b4f07c4e32ae5e</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid2:0000000000000000000000000000000000000000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_repl_offset:70</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">second_repl_offset:-1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_active:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_size:1048576</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_first_byte_offset:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_histlen:70</span>

第五步:使用6381端口启动服务

x  /usr/local/bin/redis-server --port 6381 --slaveof 127.0.0.1 6379

第六步:客户端连接6381服务

 /usr/local/bin/redis-cli -p 6381

查看配置信息

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6381> info replication</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Replication</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">role:slave</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_host:127.0.0.1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_port:6379</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_link_status:up</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_last_io_seconds_ago:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_sync_in_progress:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">slave_repl_offset:3959</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">slave_priority:100</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">slave_read_only:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">connected_slaves:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid:be3661f87806ca1bb4ae0d9e71b4f07c4e32ae5e</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid2:0000000000000000000000000000000000000000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_repl_offset:3959</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">second_repl_offset:-1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_active:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_size:1048576</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_first_byte_offset:3834</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_histlen:126</span>

第七步:实测

主数据库,新增一个key,2个从库分别查看信息。注意端口

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 主</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">set</span> name ziruchu</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 从</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6380> <span style="box-sizing: border-box;color: rgb(255, 203, 107)">get</span> name</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(195, 232, 141)">"ziruchu"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 从</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6381> <span style="box-sizing: border-box;color: rgb(255, 203, 107)">get</span> name</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(195, 232, 141)">"ziruchu"</span></span>

这样通过命令的方式来实现主从复制就已经OK了

方式二、通过confp配置文件实现主从复制

同样还是实现一主多种。三个配置文件redis.conf、redis_6380.conf、redis_6381.conf,其中redis.conf为默认的配置文件,将其作为主服务器的启动配置文件,后面两个配置文件均为从服务器的启动配置文件。

第一步:创建6380与6381的配置文件

6379使用默认的配置文件,下面配置6380与6381两个配置文件,由于这2个配置文件只需要修改一下端口,因此只列出一个配置文件来。

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 203, 107)">vim</span> /usr/local/bin/redis_conf/redis_6380.conf</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)">#############################</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)">### 以下配置是6380的配置</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)">#############################</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 端口</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">port <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6380</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 后台启动</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">daemonize <span style="box-sizing: border-box;color: rgb(255, 203, 107)">yes</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">pidfile /var/run/redis_6380.pid</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">loglevel notice</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 日志文件</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">logfile <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"/usr/local/bin/redis_6380.log"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 快照文件</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">dbfilename 6380_dump.rdb</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">dir /usr/local/bin/6380</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">replicaof <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.1 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6379</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">replica-read-only <span style="box-sizing: border-box;color: rgb(255, 203, 107)">yes</span>                     </span>

配置6381时记住修改对应的端口号

步骤二:启动Redis主服务

/usr/local/bin/redis-server /usr/local/bin/redis_conf/redis.conf

步骤三:客户端登录主服务并查看主从信息

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 ~]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># /usr/local/bin/redis-cli -p 6379</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> </span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> info replication</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Replication</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">role:master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">connected_slaves:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid:f57cc8dc1c85a80353c3da29bc4da23537e92bd5</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid2:0000000000000000000000000000000000000000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_repl_offset:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">second_repl_offset:-1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_active:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_size:1048576</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_first_byte_offset:0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_histlen:0</span>

步骤三:启动Redis6380服务

创建6380、6381目录。不然会启动失败

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># pwd</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">/usr/local/bin</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># mkdir 6380</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 bin]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># mkdir 6381</span></span>

启动Redis6380服务

[root@192 redis_conf]# /usr/local/bin/redis-server /usr/local/bin/redis_conf/redis_6380.conf

步骤四:客户端使用6380连接

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 redis_conf]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># /usr/local/bin/redis-cli -p 6380</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6380> </span>

6379主服务器客户端连接查看信息

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> info replication</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># Replication</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">role:master</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">connected_slaves:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">slave0<span style="box-sizing: border-box;color: rgb(130, 170, 255)">:ip</span><span style="box-sizing: border-box;color: rgb(137, 221, 255)">=</span><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1<span style="box-sizing: border-box;color: rgb(130, 170, 255)">,port</span><span style="box-sizing: border-box;color: rgb(137, 221, 255)">=</span><span style="box-sizing: border-box;color: rgb(255, 83, 112)">6380</span><span style="box-sizing: border-box;color: rgb(130, 170, 255)">,state</span><span style="box-sizing: border-box;color: rgb(137, 221, 255)">=</span>online<span style="box-sizing: border-box;color: rgb(130, 170, 255)">,offset</span><span style="box-sizing: border-box;color: rgb(137, 221, 255)">=</span><span style="box-sizing: border-box;color: rgb(255, 83, 112)">210</span><span style="box-sizing: border-box;color: rgb(130, 170, 255)">,lag</span><span style="box-sizing: border-box;color: rgb(137, 221, 255)">=</span><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid:96d032d60dafe0394bd267041d14a8015cd76d33</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_replid2:0000000000000000000000000000000000000000</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">master_repl_offset:210</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">second_repl_offset:-1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_active:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_size:1048576</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_first_byte_offset:1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">repl_backlog_histlen:210</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> </span>

可以看到有一个已经连接了

步骤五:启动Redis6381服务

启动6381服务

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 redis_conf]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># /usr/local/bin/redis-server /usr/local/bin/redis_conf/redis_6381.conf </span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@192 redis_conf]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># ps -ef | grep redis</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1403</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1378</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">07</span>:35 pts/2    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:02 ./redis-server <span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1500</span>      <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">07</span>:51 ?        <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 /usr/local/bin/redis-server *:6380</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1508</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1322</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">07</span>:52 pts/0    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 /usr/local/bin/redis-cli <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-p</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6380</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1509</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1350</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">07</span>:53 pts/1    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 ../redis-cli <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-p</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6379</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1516</span>      <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">07</span>:57 ?        <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 /usr/local/bin/redis-server *:6381</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">root       <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1523</span>   <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1457</span>  <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">07</span>:57 pts/3    <span style="box-sizing: border-box;color: rgb(255, 83, 112)">00</span>:00:00 <span style="box-sizing: border-box;color: rgb(255, 203, 107)">grep</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">--color</span><span style="box-sizing: border-box;color: rgb(137, 221, 255)">=</span>auto redis</span>

步骤六:客户端连接6381服务

<span style="box-sizing: border-box;padding-right: 0.1px">[root@192 redis_conf]<span style="box-sizing: border-box;color: rgb(103, 110, 149)"># /usr/local/bin/redis-cli -p 6381</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6381> </span>

步骤七:测试

6379客户端设置一个key;

其他2个从库查看主库设置的信息

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 主库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">set</span> myname ziruchu</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 从库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6380> <span style="box-sizing: border-box;color: rgb(255, 203, 107)">get</span> myname</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(195, 232, 141)">"ziruchu"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 从库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6381> <span style="box-sizing: border-box;color: rgb(255, 203, 107)">get</span> myname</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(195, 232, 141)">"ziruchu"</span></span>

1)这里走了一个坑,因为我使用的版本是6,而从5开始,redis复制的命令已经变更为replicaof。因此我在配置文件的时候没有注意到,还是使用以前的salveof命令,结果在这里坑了不短的时间。

2)关于第一种实现方式,请将所的slaveof命令替换为replicaof。亲测,只是替换了一个词,其他的什么影响都没有。我懒,就不更改了。

我是夕阳何处寻,期待和优秀的你一起同行!

小白

2020年09月05日

请登录后再评论