加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

调研Redis高可用两种技巧

发布时间:2021-05-25 08:18:44 所属栏目:创业 来源:互联网
导读:旧版本全量复制成果,其***的题目是从处事器断线重连时,即便在从处事器上已经有一部门数据了,也必要举办全量复制,这样做的服从很低,于是新版本的Redis在这部

旧版本全量复制成果,其***的题目是从处事器断线重连时,即便在从处事器上已经有一部门数据了,也必要举办全量复制,这样做的服从很低,于是新版本的Redis在这部门做了改造。

新版本全量复制成果的实现

新版本Redis行使psync呼吁来取代sync呼吁,该呼吁既可以实现完备全同步也可以实现部门同步。

复制偏移量

执行复制的两边,主从处事器,别离会维护一个复制偏移量:

主处事器每次向从处事器同步了N字节数据之后,将修改本身的复制偏移量+N。

从处事器每次从主处事器同步了N字节数据之后,将修改本身的复制偏移量+N。

复制积存缓冲区

主处事器内部维护了一个牢靠长度的先辈先出行列做为复制积存缓冲区,其默认巨细为1MB。

在主处事器举办呼吁撒播时,不只会将写呼吁同步到从处事器,还会将写呼吁写入复制积存缓冲区。

处事器运行ID

每个Redis处事器,都有其运行ID,运行ID由处事器在启动时自动天生,主处事器会将本身的运行ID发送给从处事器,而从处事器会将主处事器的运行ID生涯起来。

从处事器Redis断线重连之后举办同步时,就是按照运行ID来判定同步的进度:

假如从处事器上面生涯的主处事器运行ID与当前主处事器运行ID同等,则以为这一次断线重连毗连的是之前复制的主处事器,主处事器可以继承实行部门同步操纵。

不然,假如前后两次主处事器运行ID不沟通,则以为是完玉成同步流程。

psync呼吁流程

有了前面的筹备,下面开始说明psync呼吁的流程:

假如从处事器之前没有复制过任何主处事器,可能之前执行过slaveof no one呼吁,那么从处事器就会向主处事器发送psync ? -1呼吁,哀求主处事器举办数据的全量同步。

不然,假如前面从处事器已经同步过部门数据,那么从处事器向主处事器发送psync <runid> <offset>呼吁,个中runid是上一次主处事器的运行id,offset是当前从处事器的复制偏移量。

前面两种环境主处事器收到psync呼吁之后,会呈现以下三种也许:

主处事器返回+fullresync <runid> <offset>回覆,暗示主处事器要求与从处事器举办完备的数据全量同步操纵。个中,runid是当前主处事器运行id,而offset是当前主处事器的复制偏移量。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读