【Redis运维篇】Redis的主从复制

640 阅读1分钟

前置条件

在生产环境,Redis结点通常是单独部署在不同的物理机器上。想要在一台机器上模拟多节点,可以参考这篇文章同一台机器上启动多个Redis实例


Redis结点的主从复制

  • Redis实例可划分为主结点(master)和从结点(slave)
  • 一个主结点可以有多个从结点,一个从结点只能有一个主结点
  • 默认情况下,从结点只读

1.启动redis实例

这里我启动两个实例,端口分别是6379和6380


2.建立主从关系

1.指定端口连接实例

redis-cli -p 6380

2.在6380示例执行以下命令,代表6380为6379的从结点

  • 执行slaveof会先保存主结点信息,后续复制异步执行
slaveof 127.0.0.1 6379

3.可以看到6379插入的数据能在6380实例获取到

4.也可以直接在redis.conf文件中配置主从关系。具体方式是,打开从结点的conf文件,找到slaveof,格式同以上命令


3.查看复制状态信息

info replication


4.断开复制

1.在从结点执行以下命令

slaveof no one

5.只读

在配置文件中有slave-read-only配置,yes代表只读,对于从结点不建议修改这个值

6.复制过程

执行slaveof命令后,会进执行以下步骤

  • 保存主结点信息
  • 主从建立socket连接
  • 发送ping命令验证连接是否建立成功
  • 验证权限,对于设置了requirepass的主结点,从结点需要密码认证
  • 同步数据
  • 同步命令,保证数据一致性