主从复制

1. 什么是Redis的主从复制?

主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,slave以读为主

2. 作用是什么?

  • 读写分离,性能提升
  • 容灾快速恢复(如果一台slave崩掉了,那么读操作会在其他的slave中进行)

3. 注意

只能有一个主(master),只能一主多从,或者一主一从。

当主机挂了怎么办呢?

可以采用集群

4. 怎么搭建主从复制?

  1. 创建/myredis文件夹
  2. 将redis.config配置文件复制到/myredis文件夹中
    注意将配置文件中的appendonly关闭
  3. 配置一主两从,添加三个配置文件
  • redis6379.conf
  • reids6380.conf
  • redis6381.conf
  1. 三个配置文件中写入内容 (注意该名字和端口号)
include /myRedis/redis.conf
pidfile /var/run/redis_6379.pid
port 6479
dbfilename dump6379.rdb

5.启动三个redis服务

redis-cli -p 端口号
  1. 查看当前主机运行状况
127.0.0.1:6481> info replication
# Replication
role:master  # 表示是主机
connected_slaves:0  # 没有从机
master_replid:3cda7b6ffdd201be83639011ea7e77489aca3f44
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
  1. 在从机上执行 slaveof 主机IP 端口号

127.0.0.1:6481> slaveof 127.0.0.1 6479  # 成为从机
OK

# 添加之后,查看主机的信息
127.0.0.1:6479> info replication
# Replication
role:master
connected_slaves:2  # 有两台从机

  1. 测试(6479为主机,其他的为从机)
    在主机上进行写的操作

127.0.0.1:6479> set a a
OK

从机查询

127.0.0.1:6380> keys *
1) "a"

127.0.0.1:6481> keys *
1) "a"

从机上不能执行写的操作

127.0.0.1:6481> set a1 a
(error) READONLY You can't write against a read only replica.
posted @ 2022-06-22 23:43  小罗要有出息  阅读(37)  评论(0)    收藏  举报