7.Redis复制的原理与优化
Posted Richie Wen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.Redis复制的原理与优化相关的知识,希望对你有一定的参考价值。
<!doctype html>7.Redis复制的原理与优化
Redis复制的原理与优化
什么是主从复制
-
单机有什么问题
- 机器故障
- 容量瓶颈
- QPS瓶颈
-
主从复制的作用
- 数据副本
- 宽展读性能
-
总结
- 一个master可以有多个slave
- 一个slave只能有一个master
- 数据流向是单向的,master到slave
复制的配置
命令配置
xxxxxxxxxx
* 命令配置复制
* slaveof 命令 在从节点执行
* 取消复制
* slaveof no one 在从节点执行 清除所有的从节点数据
配置文件 从节点配置
xxxxxxxxxx
* slaveof ip prot
* slave-read-only yes
比较
方式 | 命令 | 配置 |
---|---|---|
优点 | 无需重启 | 同意配置 |
缺点 | 不便于管理 | 需要重启 |
全量复制和部分复制
全量复制
-
run_id
-
master_repl_offset:1865 偏移量 主从偏移量同步更新
-
全量复制开销
- bgsave时间
- RDB网络传输信息
- 从节点清空数据时间
- 从节点加载RDB时间
- 可能在AOF重写时间
部分复制 redis2.8之后
故障处理
-
总故障转移
-
slave宕机
- 一主两从
-
master宕机
- slaveof no one
- slaveof new master
-
主从复制故障转移问题
- sentinel
开发运维常见问题
-
读写分离:读分摊到从节点
-
复制数据延迟
-
读到过期数据 - redis 3.2已经解决
-
删除过期数据 从节点无法删除数据
- 懒惰策略 读到过期数据再判断删除
- 定时删除
-
-
从节点故障 优化主节点
-
-
主从配置不一致
- maxmemory不一致:丢失数据
- 例如数据结果优化参数(hash-max-ziplist-entries):内存不一致
-
规避全量复制
-
第一次全量复制
- 第一次不可避免
- 小主节点,低峰
-
节点运行ID不匹配
- 主节点重启(运行ID变化) 4.0 psyncto
- 故障转移 例如哨兵 或集群
-
复制积压缓冲区不足
- 网络中断,部分复制无法满足
- 增大复制缓冲区配置rel_backlog_size 网络 “增强”
-
-
规避复制风暴
-
单节点复制风暴
-
问题:主节点重启,所有的从节点全量复制 风暴 cpu 内存 网络
-
解决:更换复制拓扑
-
master - slave - slave-1-a
-
- slave-2-b
-
-
-
单机器复制风暴
- 机器宕机后 大量复制
- 主节点分散多机器
-
以上是关于7.Redis复制的原理与优化的主要内容,如果未能解决你的问题,请参考以下文章