提升可靠性的步,就是「資源隔離」。
你按不同的業務線來部署 Redis 實例,這樣當其中一個實例發生故障時,不會影響到其它業務。
這種資源隔離的方案,實施成本是的,但成效卻是非常大的。
2) 部署主從集群
如果你只使用單機版 Redis,那么就會存在機器宕機服務不可用的風險。
所以,你需要部署「多副本」實例,即主從集群,這樣當主庫宕機后,依舊有從庫可以使用,避免了數據丟失的風險,也降低了服務不可用的時間。
在部署主從集群時,你還需要注意,主從庫需要分布在不同機器上,避免交叉部署。
這么做的原因在于,通常情況下,Redis 的主庫會承擔所有的讀寫流量,所以我們一定要優先保證主庫的穩定性,即使從庫機器異常,也不要對主庫造成影響。
而且,有時我們需要對 Redis 做日常維護,例如數據定時備份等操作,這時你就可以只在從庫上進行,這只會消耗從庫機器的資源,也避免了對主庫的影響。
3) 合理配置主從復制參數
在部署主從集群時,如果參數配置不合理,也有可能導致主從復制發生問題:
主從復制中斷
從庫發起全量復制,主庫性能受到影響
在這方面我給你的建議有以下 2 點:
設置合理的 repl-backlog 參數:過小的 repl-backlog 在寫流量比較大的場景下,主從復制中斷會引發全量復制數據的風險
設置合理的 slave client-output-buffer-limit:當從庫復制發生問題時,過小的 buffer 會導致從庫緩沖區溢出,從而導致復制中斷