本质

持久化 — 将内存中的数据写入到磁盘(写入形式为文件、数据库等均可)

主从复制 — 将一台机械的数据复制到另一台或者多台机械。

解决的问题

数据安全 - 防止因为一台服务器异常宕机损坏,造成数据丢失

高可用 - 防止因为主服务器宕机,造成集群异常或者不可用

持久化方式

同步异步维度

同步

数据在内存中更新or写入完毕后必须同时在磁盘中更新or写入完毕后才算成功

优缺点

安全性高,能实时保证磁盘与内存数据的强一致性

性能下降

异步

主线程在内存中更新or写入数据成功后即可返回客户端成功,异步启动子线程再对数据进行写入or更新磁盘

优缺点

内存与磁盘数据可能不一致,会造成数据丢失

性能高

触发机制

同步的触发机制

客户端的每次增删改操作

异步触发机制

客户的每次增删改

定时 — 周期性操作,每隔多长时间

定量 — 多少个操作命令 or 多少条数据

主从复制方式

推拉维度

主服务器向从服务器不断push数据,主服务器是主动的,从服务器是被动的

从服务器从主服务器pull数据,从服务器是主动的,主服务器是被动的

同步异步维度

同步

二、主从复制与持久化思考 - 图1

异步

二、主从复制与持久化思考 - 图2

触发机制

实时

主服务器每一次的数据变更(修改或者删除),都实时同步到从服务器

周期

通过定时任务,每隔一段时间启动定时任务,进行主从数据同步

数据量

当主服务器有多少条数据变更或是积累的多少增改命令,进行主从数据同步

信号

设置信号的触发条件,如数据的变更、时间、数据量的积累等等