Redis优化基础[004]生产环境当中主从复制的常见问题

本文详细解析了Redis数据库主从配置的各项参数,包括slaveof、masterauth等,探讨了从数据库配置、数据同步策略、复制缓冲区管理及主从配置不一致等问题。同时,文章还介绍了如何解决复制风暴和主节点重启后的runid不一致问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库主从配置

从数据库配置

  1. slaveof
    slave实例需要配置该项, 指向master的(IP, PORT)
  2. masterauth
    如果master实例启用了密码保护, 则该配置项需要填写密码;
    若master实例为已用密码, 该配置项要注释掉;
  3. slave-serve-stale-data
    指定slave与master连接中断时的动作;
    默认yes:
    表示slave会继续应答来自client的请求, 但这些数据可能已经过期(连接中断等原因);
    若配置为no:
    则slave除正常应答"info"和"slaveof"命令外;
    其余来自客户端的请求命令均会得到"SYNC with master in progress"的应答;
    知道该slave与master的链接重建成功或该slave被提成为master;
  4. slave-read-only
    指定slave是否只读 yes no
  5. repl-disable-tcp-nodelay
    指定向slave同步数据时, 是否禁用socket的NO_DELAY选项.
    若配置为yes:
    则禁用NO_DELAY, 则TCP协议栈会合并小包统一发送;
    这样可以减少主从节点间的包数量并节省带宽, 但会增加数据同步到slave的时间;
    若配置为no:
    表名启用NO_DELAY, 则TCP协议栈不会延迟小包发送时机;
    这样数据同步延时会减少, 但需要更大的带宽;
    通常应该配置为no以降低同步延迟, 但主从间网络负载很高时可以配置为yes.
  6. slave-priority
    指定slave的优先级. 在不只1个slave存在的部署环境下, 当master宕机时, Redis Sentinel会将priority值最小的slave提升为master.
    需要注意的是, 若该配置项为0, 则对应的slave永远不会被Redis Sentinel自动提升为master.

从节点故障问题
对于从节点的故障问题, 需要在客户端维护一个可用从节点列表, 当从节点故障时, 立刻切换到其他从节点或主节点, redis Cluser可以解决这个问题.

主从配置不一致
maxmemory不一致, 从节点4GB主节点8GB, 当从节点变成主节点的时候, 就会发现数据已经丢失, 而且无法挽回.

解决主节点重启后runid不一致, 导致的全量复制问题
Redis提供了, debug reload的重启方式: 重启后, 主节点的runid和offset都不受影响, 避免全量复制.

复制缓冲区不足
配置缓冲区, relbacklogsize

复制风暴
当一个主节点下挂载了很多个slave的时候, master挂了, 重启后, 因为runid发生变化, 所有的slave都要做一次全量复制, 这将引起单节点和单机器的复制风暴.
解决:
可以采用树状结构降低多个节点对主几点的消耗
解决:
应该把主节点尽量分散在多台机器上, 避免在单台机器上部署过多的主节点.

只有N个从节点连接的时候才允许写入
Redis2.8以后, 可以设置主节点只有N台从节点连接的时候可以写入请求.
然而, 因为Redis使用的是异步复制, 所以没有办法保证从节点确实收到的给定的写入请求;
所以存在一个窗口期的数据都是的可能性.
这是一个比较极端的做法
主机配置两个参数
min-slaves-to-write # 大约n台slave才能写入
min-slaves-max-lag

一、综合实战—使用极轴追踪方式绘制信号灯 实战目标:利用对象捕捉追踪和极轴追踪功能创建信号灯图形 技术要点:结合两种追踪方式实现精确绘图,适用于工程制图中需要精确定位的场景 1. 切换至AutoCAD 操作步骤: 启动AutoCAD 2016软件 打开随书光盘中的素材文件 确认工作空间为"草图与注释"模式 2. 绘图设置 1)草图设置对话框 打开方式:通过"工具→绘图设置"菜单命令 功能定位:该对话框包含捕捉、追踪等核心绘图辅助功能设置 2)对象捕捉设置 关键配置: 启用对象捕捉(F3快捷键) 启用对象捕捉追踪(F11快捷键) 勾选端点、中心、圆心、象限点等常用捕捉模式 追踪原理:命令执行时悬停光标可显示追踪矢量,再次悬停可停止追踪 3)极轴追踪设置 参数设置: 启用极轴追踪功能 设置角度增量为45度 确认后退出对话框 3. 绘制信号灯 1)绘制圆形 执行命令:"绘图→圆→圆心、半径"命令 绘制过程: 使用对象捕捉追踪定位矩形中心作为圆心 输入半径值30并按Enter确认 通过象限点捕捉确保圆形位置准确 2)绘制直线 操作要点: 选择"绘图→直线"命令 捕捉矩形上边中点作为起点 捕捉圆的上象限点作为终点 按Enter结束当前直线命令 重复技巧: 按Enter可重复最近使用的直线命令 通过圆心捕捉和极轴追踪绘制放射状直线 最终形成完整的信号灯指示图案 3)完成绘制 验证要点: 检查所有直线是否准确连接圆心和象限点 确认极轴追踪的45度增量是否体现 保存绘图文件(快捷键Ctrl+S)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值