Tair(企業版)執行個體的預設同步模式為非同步,若業務情境對資料持久化要求較高,您可以在控制台將其同步模式修改為半同步。該模式會增加寫的延遲,大約為百微秒(us)~數毫秒(ms),適用於對資料一致性要求高,可以接受犧牲寫效能的情境。
前提條件
執行個體需滿足以下條件:
記憶體型(相容Redis 6.0及以上):小版本為24.8.0.0及以上。
持久記憶體型:小版本為1.2.4及以上。
磁碟型:小版本為2.5.2及以上。
低版本執行個體可在升級小版本後使用該功能,更多資訊請參見升級小版本與代理版本。
同步模式概述
原生Redis採用的主備節點同步模式為非同步(Async),即當用戶端發起更新要求時,主節點(Master)完成操作後會立即響應用戶端,同時主節點向備節點(Replica)同步資料。當主節點不可用時引發高可用(High Availability)切換,而此時主備節點可能會存在資料不一致的情況。
半同步(Semisync)即用戶端發起的更新在主節點執行完成後,主節點會將日誌同步到備節點,待備節點確認接收後才返回資訊給用戶端,保證高可用切換後資料不丟失。
下圖為非同步和半同步的流程圖:
注意事項
持久記憶體型執行個體在開啟或關閉半同步開關時,會觸發一次主備節點全量複製(其他類型執行個體不會進行該操作),建議在業務低峰期執行該操作。
操作步驟
訪問執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在基本資料地區框的右側,單擊變更同步模式。
在右側彈出的面板中,完成下述配置。
配置
說明
同步模式
支援如下選項:
半同步:主節點將更新操作複製至備節點後,才返回資訊給用戶端。
重要當備執行個體不可用或者主備執行個體間出現網路異常時,半同步會退化為非同步。
非同步(預設):使用非同步複製。
退化閾值
僅半同步支援配置該參數,單位為ms,取值範圍為10~60000,預設為500。
當同步延遲超出該閾值時,同步模式會自動轉為非同步,當同步延遲消除後,同步模式會自動轉換為半同步。
單擊確定。