redis主从复制 同时存在以下几个问题:
一旦 主节点宕机,从节点 晋升成 主节点,同时需要修改 应用方 的 主节点地址,还需要命令所有 从节点 去 复制 新的主节点,整个过程需要 人工干预。
主节点 的 写能力 受到 单机的限制。
主节点 的 存储能力 受到 单机的限制。
原生复制 的弊端在早期的版本中也会比较突出,比如:Redis 复制中断 后,从节点 会发起 psync。此时如果 同步不成功,则会进行 全量同步,主库 执行 全量备份 的同时,可能会造成毫秒或秒级的 卡顿。
利用docker实现redis主从复制
要点
修改配置文件,(实现主服务器,从服务器redis互相通信)
利用supervisor重新加载文件
从服务器配置
redis.conf中
slaveof 主服务器的IP 端口号
主服务器配置
redis.conf中
bind 从服务器ip
主从复制的两种方式
命令模式
slaveof 主服务器的IP 端口号
#slaveof 命令是异步的,不阻塞。
#并且此时,从服务器现有的数据会先被清空,之后再同步主服务器的数据
停止从服务器的复制:
slaveof no one
#执行该命令之后从服务器不再复制主服务器,但是之前复制的还会存在
配置文件方法
slaveof 主服务器的IP 端口号
// 配置此服务器只提供读取操作
slave-read-only yes
使用该方法必须重启redis服务
停止服务时也必须先注释上面的语句,然后重启redis服务
查看redis信息
info replication
网友评论