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。
当同步延迟超出该阈值时,同步模式会自动转为异步,当同步延迟消除后,同步模式会自动转换为半同步。
单击确定。