首先編輯多個redis-conf文件,將端口、守護進程、rdb、log、aof所有設置爲本身的內容,方便觀察不一樣的端口不一樣的區份內容redis
這裏我配置啦三個端口的redis,分別是:6379 6380 6381,模擬三臺redis服務器vim
主從複製,只須要配置從機便可,主機能夠不配置;服務器
info replication
圖中標的三臺redis所有式master,即主機,而且沒有任何的從機spa
分別在80 81的操做端,進行設置本身的主機(如今是本地的不一樣端口)code
127.0.0.1:6380> slaveof 127.0.0.1 6379 127.0.0.1:6381> slaveof 127.0.0.1 6379
設置完畢以後,從新查看主從標識進程
如今就能夠主從複製啦:ip
其實吧,從機是不能寫內容,只能讀it
兩個slave(80 81)會怎樣?io
實際上是保持不動,老大走了,臨走以前啥都沒說,誰也不敢上位呀;ast
79回來啦,主從狀態又如何?
猜想:一、主從保持原樣(當前配置,正確) 二、很差意思,不認你作老大
本身嘗試吧;
任何從機掛了,當前的配置方式,掛掉的從機直接還原到原始模式即master模式,與上次的主機沒有任何的聯繫;
將80重置爲主機模式,81不動(仍是從機slave模式),
而後從新設置81的主機是80,結果就不截圖啦
要是生產環境master在凌晨掛了,我TM還要起來手動設置??????
master容易掛掉,我就搞一個站崗的,redis提供一個哨兵服務,
當master掛掉以後,哨兵組織當前主機的全部從機進行「投票」,票多者晉升爲老大。
查看當前的主從機狀態:
建立sentinel.conf文件,
cd /usr/myredis touch sentinel.conf vim sentinel.conf
在sentinel.conf中:
sentinel monitor host3679 127.0.0.1 6379 1 //監控的機器名稱(隨意) ip port 投票爲1,則成爲主機(具體投票規則,我不知道,可是sentinel本身完成)
最終個人單獨配置文件含有:
進入redis啓動文件所在目錄:
cd /usr/local/bin
執行;哨兵就會監控下面的主機與端口
注意不要將上面的窗口關閉。
此時,咱們將主機(6379)shutdown
切換到哨兵的窗口(shutdown以後須要等待一分鐘左右哨兵才能完成投票與切換主機):
會發現哨兵本身投票,本身切換從機(81)爲主機