windows10配置redis主從復制


1、安裝從服務器

a)、找到redis實例,直接復制一份出來,如下圖

 

 b)、修改從庫端口號,打開從庫文件夾找到redis.windows.conf和redis.windows-service.conf文件,修改端口

 

 

修改完成之后,cd到從庫安裝目錄,輸入redis-server.exe redis.windows.conf,使用cmd就可以連接從庫了。

 

 但是這也樣每次都需要cd到文件夾進行啟動,需要設置成服務,命令如下:

redis-server --service-install redis.windows.conf --maxmemory 200m  --service-name redis6380

 

 

 2、配置主從

a)、可以使用 SLAVEOF 命令, master 會開啟一個跟 slave 間的同步,如果當前從服務器已經依賴了其他主服務器,那么會丟失掉舊主服務器的數據,對新主服務器進行數據同步, 如果想把從服務器升級為主服務器,使用SLAVEOF NO ONE就可以把從服務器升級成主服務器,這個命令不會丟失掉以前主從同步的數據。

 

 

 b)、配置永久復制

打開redis.windows.conf文件,找到# slaveof <masterip> <masterport>這個地方,添加slaveof master的ip地址 master的端口

 

 測試

 

 3、主從同步的工作原理

每一個 Redis master 都有一個 replication ID :這是一個較大的偽隨機字符串,標記了一個給定的數據集。每個 master 也持有一個偏移量,master 將自己產生的復制流發送給 slave 時,發送多少個字節的數據,自身的偏移量就會增加多少,目的是當有新的操作修改自己的數據集時,它可以以此更新 slave 的狀態。復制偏移量即使在沒有一個 slave 連接到 master 時,也會自增,所以基本上每一對給定的

Replication ID, offset

都會標識一個 master 數據集的確切版本。

當 slave 連接到 master 時,它們使用 PSYNC 命令來發送它們記錄的舊的 master replication ID 和它們至今為止處理的偏移量。通過這種方式, master 能夠僅發送 slave 所需的增量部分。但是如果 master 的緩沖區中沒有足夠的命令積壓緩沖記錄,或者如果 slave 引用了不再知道的歷史記錄(replication ID),則會轉而進行一個全量重同步:在這種情況下, slave 會得到一個完整的數據集副本,從頭開始。

無需磁盤參與的復制

正常情況下,一個全量重同步要求在磁盤上創建一個 RDB 文件,然后將它從磁盤加載進內存,然后 slave以此進行數據同步。

如果磁盤性能很低的話,這對 master 是一個壓力很大的操作。Redis 2.8.18 是第一個支持無磁盤復制的版本。在此設置中,子進程直接發送 RDB 文件給 slave,無需使用磁盤作為中間儲存介質。

無磁盤復制可以使用 repl-diskless-sync 配置參數。repl-diskless-sync-delay 參數可以延遲啟動數據傳輸

安全性問題

如果開啟了主從復制,一定要開啟主從服務器的持久化,如果不開啟持久化並且主服務器又是配置的默認自動啟動,那么當主服務器掛了,然后在重新啟動主服務器的時候,因為沒有配置持久化,那么這個時候主服務器就是空數據集合,這個時候從服務器去復制主服務器的數據,發現主服務器是空的,那么會銷毀從服務器自身的數據。這是非常危險的。所以如果沒有開啟持久化,那么自動啟動這項服務應該要禁用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM