修改redis.conf配置文件redis
vi redis.conf安全
在編輯模式下 輸入 /slaveof 來搜索服務器
將slaveof啓用 即 將#刪除架構
依次配置全部 slave 並將進程 kill 掉 重啓性能
查看主從信息spa
redis 集羣主從同步的簡單原理blog
Redis的複製功能是基於內存快照的持久化策略基礎上的,也就是說不管你的持久化策略選擇的是什麼,只要用到了Redis的複製功能,就必定會有內存快照發生。隊列
當Slave啓動並鏈接到Master以後,它將主動發送一個SYNC命令( 首先Master會啓動一個後臺進程,將數據快照保存到文件中[rdb文件] Master 會給Slave 發送一個進程
Ping命令來判斷Slave的存活狀態 當存活時 Master會將數據文件發送給Slave 並將全部寫命令發送到Slave )。內存
Slave首先會將數據文件保存到本地 以後再將 數據 加載到內存中。
當第一次連接 或者是 故障後 從新鏈接 都會先判斷Slave的存活狀態 在作所有數據的同步 , 以後只會同步Master的寫操做(將命令發送給Slave)
問題:
當 Master 同步數據時 若數據量較大 而Master自己只會啓用一個後臺進程 來對多個Slave進行同步 , 這樣Master就會壓力過大 , 並且Slave 恢復的時間也會很慢!
redis 主從複製的優勢:
(1)在一個Redis集羣中,master負責寫請求,slave負責讀請求,這麼作一方面經過將讀請求分散到其餘機器從而大大減小了master服務器的壓力,另外一方面slave專一於提供
讀服務從而提升了響應和讀取速度。
(2)在一個Redis集羣中,若是master宕機,slave能夠介入並取代master的位置,所以對於整個Redis服務來講不至於提供不了服務,這樣使得整個Redis服務足夠安全。
(3)水平增長Slave機器能夠提升性能
Slave 默認是隻讀的更改:
Master 能夠 讀寫(Write and Read) 而 Slave只能夠讀(read only默認狀況)也能夠更改 {可是開啓後Slave數據不會向上同步}
redis 主從同步兩種架構方式:
1》:主從架構
2》:主從從架構
備註:
由於Slave斷連,重連後仍然會所有同步數據,因此redis2.8版本後,增長了增量複製來解決宕機後從新連接仍然會所有同步!
Master會維護一個環形隊列:
隊列內存儲:1》:slave鏈接master的id值 2》:slave上一次同步的最後一個命令
這樣當斷開重連後就不會所有同步,而只會在最後一個命令同步數據!
寫這篇博客是爲了加深理解並將本身瞭解到的知識記錄下來 , 同時在寫本博客的過程當中,借鑑了許多優秀的博客,來完善 , 但願廣大博友批評指正。共同進步!
2016/12/4