配置步骤:1. 主节点redis.conf设置bind 0.0.0.0 port 6379;2. 从节点redis.conf设置bind 0.0.0.0 port 6380,添加replicaof 主节点IP 6379;3. 重启服务,主节点info replication显示role:master,从节点显示role:slave;4. 测试写入主节点,从节点自动同步数据。高可用实现:读写分离,主节点写,从节点读,故障时手动切换提升稳定性。
主从复制实战配置
在主服务器的redis.conf文件中不需要特别配置,只需要确保能被从服务器访问即可。从服务器的redis.conf文件中,配置slaveof 192.168.1.100 6379,指定主服务器的IP和端口。也可以通过redis-cli的slaveof命令动态配置。启动从服务器后,会自动开始复制主服务器的数据。
Redis主从复制详解
主从复制的核心机制是Redis的复制偏移量(replication offset)和主从服务器的run id。当从服务器连接主服务器时,会发送自己的偏移量,主服务器会根据偏移量继续发送增量命令。从服务器每秒向主服务器发送ping,主从通过心跳保持连接。
高可用架构配置
搭建主从结构后,实现读写分离:在应用中,主节点负责写操作,从节点负责读操作。配置多个从节点分散读压力。数据安全通过全量同步+RDB增量AOF实现,主从一致性基本保证。故障切换:主挂了,选一个从提升为主,其他从指向新主。
实战配置代码
主节点6379:bind 0.0.0.0 从不需要配置。从节点6380:bind 0.0.0.0 replicaof 192.168.1.100 6379 requirepass 123456(如果主有密码,从也加masterauth 123456)。启动:redis-server redis6380.conf。验证:redis-cli -p 6379 info replication 显示connected_slaves:1。
提升系统稳定性
主从复制断开重连机制:从服务器发现连接断开后自动重连并从断点继续同步。部分重同步(PSYNC)避免全量同步开销。配置repl-backlog-size 1mb确保有足够backlog支持断点续传。监控:用INFO replication命令定期检查offset差距。
数据安全保障
开启AOF持久化,主从都配appendonly yes。复制缓冲区repl-backlog-size调大到100mb。slave-read-only yes防止从节点误写。定期检查slave优先级slave-priority设置,方便哨兵自动选举。
FAQ
Q: 主从复制延迟怎么处理?
A: 监控repl_offset差距,网络优化,降低主节点写入峰值。
Q: 从节点能写数据吗?
A: 默认只读,配置slave-read-only no可写但不推荐。
Q: 主节点宕机怎么切换?
A: 手动SLAVEOF no one提升从节点为主,其他从指向新主。
Q: 复制模式有哪些?
A: 全量同步+增量命令,PSYNC支持断点续传。