主从复制
理解主从复制的原理与作用
掌握主从搭建步骤
了解主从同步机制
核心讲解
(1)什么是主从复制
一个主节点(master),多个从节点(slave),主节点写数据,从节点同步主节点的数据。
作用:
读写分离:主写从读,提升性能
数据备份:从节点备份数据
高可用基础:主挂了从可以顶上去
读负载均衡:多个从节点分摊读压力
(2)复制原理
全量同步:从节点启动,主节点生成 RDB,发给从节点,从节点加载,然后同步增量命令
增量同步:全量同步后,主节点把写命令发给从节点,从节点执行,保持同步
复制偏移量:主从各自记录偏移量,判断同步进度
复制积压缓冲区:主节点保留最近的命令,断连重连可以增量同步,不用全量
(3)搭建步骤
准备多台服务器,或者同一机器多端口
主节点不用特殊配置
从节点配置:
replicaof 主节点IP 端口验证主从状态
操作示例
# ===== 主节点(6379) =====
# 主节点正常启动,不用特殊配置
# ===== 从节点(6380) =====
# 配置文件添加
replicaof 127.0.0.1 6379
# 或者启动时指定
redis-server --port 6380 --replicaof 127.0.0.1 6379
# ===== 验证 =====
# 主节点查看
redis-cli -p 6379 INFO replication
# role:master
# connected_slaves:1
# 从节点查看
redis-cli -p 6380 INFO replication
# role:slave
# master_host:127.0.0.1
# master_link_status:up
# 测试:主节点写,从节点读
redis-cli -p 6379 SET test_repl hello
redis-cli -p 6380 GET test_repl
# 能读到就是同步成功
常见误区
从节点可以写:默认从节点只读,写会报错,读写分离要走主节点写
主从同步延迟为 0:都会有延迟,网络差、量大延迟更高,要监控延迟
主从就是高可用:主挂了需要手动切从,不是自动高可用,自动高可用用哨兵
从节点越多越好:太多从节点会加重主节点同步压力,一般 2-3 个从足够
课后练习
搭建一主一从主从架构
验证主写从读,数据同步
查看主从复制状态和偏移量
思考:主从复制的作用有哪些?

