主从复制:
场景:
执行slaveof命令后,复制过程便开始启动。
执行laveof no one命令后,终止从节点与主节点复制。
数据同步方式:
全量复制:第一次复制时采用全量复制,当数据量较大时,会对主从节点和网络造成很大的开销。
部分复制:主节点补发因网络闪断等原因丢失的数据给从节点。
主从延迟:
概念:主从复制是异步的,故会存在主从延迟的问题,一般延迟时间在1s左右。
优化:
repl-disable-tcp-nodelay参数:
概念:用于控制是否关闭TCP_NODELAY。
1>当关闭时,主节点产生的命令数据无论大小都会及时地发送给从节点,这样主从之间延迟会变小,但增加了网络带宽的消耗。
适用于主从之间的网络环境良好的场景,如同机架或同机房部署。
2>当开启时,主节点会合并较小的TCP数据包从而节省带宽。默认发送间隔取决于Linux的内核,一般默认为40毫秒。这种配置节省了带宽但增大主从之间的延迟。
适用于主从网络环境复杂或带宽紧张的场景,如跨机房部署。
监控:监听主从节点的复制偏移量,主从延迟严重时报警。
读写分离:
Redis本身的性能非常高,故我们尽量在主节点上做优化(解决慢查询,合理应用数据结构等),当主节点优化空间不大时再考虑读写分离。