主從複製:
場景:
執行slaveof命令後,複製過程便開始啓動。
執行laveof no one命令後,終止從節點與主節點複製。
數據同步方式:
全量複製:第一次複製時採用全量複製,當數據量較大時,會對主從節點和網絡造成很大的開銷。
部分複製:主節點補發因網絡閃斷等原因丟失的數據給從節點。
主從延遲:
概念:主從複製是異步的,故會存在主從延遲的問題,一般延遲時間在1s左右。
優化:
repl-disable-tcp-nodelay參數:
概念:用於控制是否關閉TCP_NODELAY。
1>當關閉時,主節點產生的命令數據無論大小都會及時地發送給從節點,這樣主從之間延遲會變小,但增加了網絡帶寬的消耗。
適用於主從之間的網絡環境良好的場景,如同機架或同機房部署。
2>當開啓時,主節點會合並較小的TCP數據包從而節省帶寬。默認發送間隔取決於Linux的內核,一般默認爲40毫秒。這種配置節省了帶寬但增大主從之間的延遲。
適用於主從網絡環境複雜或帶寬緊張的場景,如跨機房部署。
監控:監聽主從節點的複製偏移量,主從延遲嚴重時報警。
讀寫分離:
Redis本身的性能非常高,故我們儘量在主節點上做優化(解決慢查詢,合理應用數據結構等),當主節點優化空間不大時再考慮讀寫分離。