Redis主从复制

Redis主从复制

主从复制图例

本例将根据以下图示搭建Redis主从复制。
这里写图片描述
说明:
- master 6379: Redis主机,端口号:6379
- slave1 6380: Redis从机1,端口号:6380
- slave2 6381: Redis从机2,端口号:6381
- slave3 6382: Redis从机3, 端口号:6382

关系说明:master6379与slave1, slave2, slave3构成了一主多从的模式,slave3是为了缓解master主机压力,会从属于slave1.

配置文件准备
  1. 将Redis.conf文件复制4份,分别是redis6379.conf, redis6380.conf, redis6381.conf, redis6382.conf.

  2. 修改配置文件属性:

    • port: 6379,将四份配置文件中的port分别修改为对应的端口号
      例如:port:6379, port:6380
    • pidfile /var/run/redis_6379.pid 将此配置分别修改为对应的端口的pid。
      例如:pidfile /var/run/redis_6380.pid, pidfile /var/run/redis_6381.pid
    • logfile “”, 日志文件,采用端口号命名用来区分,
      例如: logfile “6379.log”, logfile “6380.log”
      -dbfilename dump.rdb 将此配置修改为对应端口号的名称。
      例如:dbfilename dump6379.rdb, dbfilename dump6380.rdb

另外从机的配置文件中需要配置两个属性:

# slaveof <masterip> <masterport>
slaveof 192.168.44.129 6379

# masterauth <master-password>
masterauth admin
启动redis服务及客户端
  • 启动redis服务示例
[root@localhost ~]# cd /opt/redis/src/
[root@localhost src]# ./redis-server ../redis6379.conf
  • 启动redis客户端示例:
[root@localhost ~]# cd /opt/redis/src/
[root@localhost src]# ./redis-cli -p 6379
  • 授权认证
127.0.0.1:6382> auth admin
OK
  • 查看主从复制信息:
127.0.0.1:6379> info replication

6379主从复制信息如下:

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.44.129,port=6380,state=online,offset=23377,lag=0
slave1:ip=192.168.44.129,port=6381,state=online,offset=23377,lag=0
master_repl_offset:23377
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:23376
127.0.0.1:6379>

分析:
role:master – 当前redis服务是一台主机服务
connected_slaves:2 –当前主机有两个从机节点,
从机信息:
slave0:ip=192.168.44.129,port=6380,state=online,offset=23377,lag=0
slave1:ip=192.168.44.129,port=6381,state=online,offset=23377,lag=0

port=6380的redis服务主从复制信息如下:

127.0.0.1:6380> clear
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:192.168.44.129
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:23419
slave_priority:100
slave_read_only:1
connected_slaves:1
slave0:ip=127.0.0.1,port=6382,state=online,offset=491,lag=0
master_repl_offset:505
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:504
127.0.0.1:6380>

分析:
role:slave – 当前redis服务是一个从机节点
master_host:192.168.44.129 – 所属主机ip地址
master_port:6379 – 所属主机端口号
master_link_status:up – 主机连接状态
connected_slaves:1 – 表明当前从机服务也有一个从机服务,该从机服务信息如下:slave0:ip=127.0.0.1,port=6382,state=online,offset=491,lag=0

port=6381的redis服务主从复制信息:

127.0.0.1:6381> info replication
# Replication
role:slave
master_host:192.168.44.129
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:23447
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6381>

分析:
以上信息仅表明当前redis服务只是一个redis从机节点,可以参考port=6380的redis服务主从复制信息的节点分析。

port=6382的redis服务的主从信息如下:

127.0.0.1:6382> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:99
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6382>

分析:
role:slave – 表明当前redis服务是从机节点,且主机节点信息是
master_host:127.0.0.1 – 当前从机节点的主机节点ip。
master_port:6380 – 当前从机节点的主机节点端口。
master_link_status:up – 当前从机节点的主机节点状态。
注意:这台从机节点的主机节点也是一个从机节点(port=6380),这样做的原因是为了缓解最高主机节点(port=6379)的压力

4台redis服务主从复制信息图示:
这里写图片描述

验证主从复制

我们在主机节点(port=6279)上存放几个字符串信息,并在从机上直接查看。
如下图:
这里写图片描述

参考链接:
http://doc.redisfans.com/topic/replication.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值