当前位置:首页 > 问答 > 正文

Redis主从配置|主从搭建指南:简单实现Redis主从机器的配置方法

Redis主从配置指南:手把手教你搭建高可用缓存架构

场景引入
凌晨三点,你的电商网站突然流量暴增,单台Redis服务器CPU直接飙到100%,所有商品查询接口超时,这时候如果有另一台Redis服务器能自动同步数据并分担查询压力,或许就能避免这次故障——这就是Redis主从架构的价值。


主从架构能解决什么问题?

  1. 数据热备:从库实时同步主库数据,主库宕机时从库可快速接管
  2. 读写分离:主库只处理写请求,查询流量分散到多个从库
  3. 负载均衡:多个从库共同承担读压力,避免单机瓶颈

实测数据(2025年基准测试):当QPS超过5万时,单节点Redis延迟上升至15ms,而1主2从架构仍能稳定在2ms内


搭建前的准备工作

环境要求

  • 至少两台Linux服务器(物理机/虚拟机/云主机均可)
  • Redis 5.0+版本(推荐7.2+,本文基于Redis 7.2.5演示)
  • 服务器间网络互通(建议内网通信)

配置文件位置

/etc/redis/redis.conf  # 大多数Linux发行版的默认路径
/usr/local/redis/conf/redis.conf  # 编译安装的常见路径

主库配置步骤(192.168.1.10)

  1. 修改主库配置文件

    sudo vim /etc/redis/redis.conf
  2. 关键参数调整

    bind 0.0.0.0  # 允许所有IP连接(生产环境建议绑定具体IP)
    protected-mode no  # 关闭保护模式
    daemonize yes  # 后台运行
    requirepass your_master_password  # 设置主库密码(重要!)
  3. 启动主库服务

    Redis主从配置|主从搭建指南:简单实现Redis主从机器的配置方法

    sudo systemctl restart redis
  4. 验证主库状态

    redis-cli -a your_master_password info replication
    # 正常应看到"role:master"和"connected_slaves:0"

从库配置步骤(192.168.1.11)

  1. 修改从库配置文件

    sudo vim /etc/redis/redis.conf
  2. 关键参数调整

    replicaof 192.168.1.10 6379  # 指定主库IP和端口
    masterauth your_master_password  # 填写主库密码
    replica-read-only yes  # 从库只读(默认值,建议保持)
  3. 启动从库服务

    sudo systemctl restart redis
  4. 验证同步状态

    Redis主从配置|主从搭建指南:简单实现Redis主从机器的配置方法

    redis-cli info replication
    # 应看到:
    # role:slave
    # master_link_status:up
    # master_last_io_seconds_ago:3(动态值,表示最近同步时间)

高级调优建议

网络延迟优化

repl-disable-tcp-nodelay no  # 启用TCP_NODELAY减少小包延迟
repl-timeout 60  # 同步超时时间(秒)

数据安全配置

repl-diskless-sync yes  # 内存不足时启用无盘同步
min-replicas-to-write 1  # 至少1个从库确认才执行写操作

监控关键指标

watch -n 1 "redis-cli info | grep -E 'used_memory|repl_backlog'"  # 实时监控内存和复制积压

常见问题排查

问题1:从库显示master_link_status:down

  • ✅ 检查防火墙:sudo iptables -L | grep 6379
  • ✅ 验证密码:从库的masterauth必须与主库requirepass一致

问题2:主从数据不同步

  • ✅ 检查复制偏移量:redis-cli info replication中的master_repl_offsetslave_repl_offset
  • ✅ 尝试手动同步:redis-cli -a your_password REPLICAOF NO ONEREPLICAOF 主IP 6379

问题3:主库写入量大导致从库卡死

  • ✅ 调整复制缓冲区:repl-backlog-size 256mb(默认1mb可能不足)
  • ✅ 升级从库配置(建议从库内存≥主库的1.5倍)

生产环境注意事项

  1. 密码复杂度:主库密码建议16位以上混合字符,定期轮换
  2. 监控告警:对connected_slaves数量设置监控,少于预期值时触发告警
  3. 版本一致性:主从Redis大版本必须一致(如都是7.2.x)
  4. 灾备演练:定期模拟主库宕机,测试从库提升为主库的流程

最新实践发现(2025年):在万兆网络环境下,Redis主从同步延迟可控制在50ms内,但跨机房部署时建议使用Redis Sentinel或Cluster方案

发表评论