redis持久化方式區別?
R
redis集群地址加載順序?
集群的加載順序是:從機啟動后,向主機發送SYNC命令,主機收到SYNC命令后,通過bgsav
redis增量同步原理?
主從同步原理
當從數據庫啟動時,它將向主數據庫發送同步命令。
主設備收到后,會在后臺保存快照,這就是我們所說的RDB持久化。當然保存快照需要時間,redis是單線程的(redis后面也支持多線程,所以我們贏了這里不談了)。在快照保存過程中,redis接收到的命令會被緩存,快照完成后,緩存的命令和快照會打包發送到從節點,從而保證主從數據庫的一致性。
在收到數據庫的快照和緩存命令后,這部分數據將被寫入硬盤上的臨時文件,寫入后RDB快照文件將被該文件替換。當然,這個操作不會被阻止,命令可以繼續執行。具體原因是fork創建了一個子流程,并使用子流程來完成這些功能。
因為它不會阻塞,在這部分初始化完成后,當主數據庫執行命令更改數據時,將被異步地給予slave,這就是我們所說的復制同步階段。該階段將貫穿主從同步的全過程,直到主從同步結束,復制同步才會終止。