本章重点回顾
Redis通过复制功能实现主节点的多个副本。从节点可灵活地通过slaveof命令建立或断开复制流程。
复制支持树状结构,从节点可以复制另一个从节点,实现一层层向下的复制流。Redis2.8之后复制的流程分为:全量复制和部分复制。全量复制需要同步全部主节点的数据集,大量消耗机器和网络资源。而部分复制有效减少因网络异常等原因造成的不必要全量复制情况。通过配置合理的复制积压缓冲区尽量避免全量复制。
主从节点之间维护心跳和偏移量检查机制,保证主从节点通信正常和数据一致。
Redis为了保证高性能复制过程是异步的,写命令处理完后直接返回给客户端,不等待从节点复制完成。因此从节点数据集会有延迟情况。
当时用从节点用于读写分离时会存在数据延迟、过期数据、从节点可用性等问题,需要根据自身业务提前做出规避。
在运维过程中,主机点单存在多个从节点或者一台机器上部署大量主节点的情况下,会有复制风暴的风险。