场景引入:
凌晨三点,你的电商网站突然流量暴增,单台Redis服务器CPU直接飙到100%,所有商品查询接口超时,这时候如果有另一台Redis服务器能自动同步数据并分担查询压力,或许就能避免这次故障——这就是Redis主从架构的价值。
实测数据(2025年基准测试):当QPS超过5万时,单节点Redis延迟上升至15ms,而1主2从架构仍能稳定在2ms内
/etc/redis/redis.conf # 大多数Linux发行版的默认路径 /usr/local/redis/conf/redis.conf # 编译安装的常见路径
修改主库配置文件:
sudo vim /etc/redis/redis.conf
关键参数调整:
bind 0.0.0.0 # 允许所有IP连接(生产环境建议绑定具体IP) protected-mode no # 关闭保护模式 daemonize yes # 后台运行 requirepass your_master_password # 设置主库密码(重要!)
启动主库服务:
sudo systemctl restart redis
验证主库状态:
redis-cli -a your_master_password info replication # 正常应看到"role:master"和"connected_slaves:0"
修改从库配置文件:
sudo vim /etc/redis/redis.conf
关键参数调整:
replicaof 192.168.1.10 6379 # 指定主库IP和端口 masterauth your_master_password # 填写主库密码 replica-read-only yes # 从库只读(默认值,建议保持)
启动从库服务:
sudo systemctl restart 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_offset
和slave_repl_offset
redis-cli -a your_password REPLICAOF NO ONE
→ REPLICAOF 主IP 6379
问题3:主库写入量大导致从库卡死
repl-backlog-size 256mb
(默认1mb可能不足) connected_slaves
数量设置监控,少于预期值时触发告警 最新实践发现(2025年):在万兆网络环境下,Redis主从同步延迟可控制在50ms内,但跨机房部署时建议使用Redis Sentinel或Cluster方案
本文由 抄曼婉 于2025-07-30发表在【云服务器提供商】,文中图片由(抄曼婉)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/488785.html
发表评论