您好,登錄后才能下訂單哦!
與mysql一樣,redis也支持主從復制、讀寫分離,且配置比mysql要簡單很多。下面我們來一起看看redis的主從復制。
建立復制
默認情況下,Redis都是主節點。現在,我來演示下如何開啟主從復制。
首先,開啟兩個redis服務,這兩個redis服務,除了綁定的端口不同及持久化的文件不同,其他配置完全一致
127.0.0.1:6379> keys * 1) "age" 2) "name" 127.0.0.1:6380> keys * (empty list or set)
6379這個redis目前有兩個鍵,而6380目前是空的。建立6379余6380之間的主從關系,讓6379作為主節點,6380作為從節點。
建立復制有兩個方式:
修改6380的配置文件,在該配置文件中加上slaveof 127.0.0.1 6379,然后重啟redis服務
動態修改,直接輸入slaveof 127.0.0.1 6379
127.0.0.1:6380> slaveof 127.0.0.1 6379 OK 127.0.0.1:6380> keys * 1) "name" 2) "age"
可以看到,復制已經建立了,現在6380數據和6379是一致的了。
分別對6379及6380執行info replication命令,可以看到相關信息。
127.0.0.1:6379> info replication # Replication role:master connected_slaves:1 …… 127.0.0.1:6380> info replication # Replication role:slave master_host:127.0.0.1 master_port:6379 ……
斷開復制
斷開復制操作非常簡單,只需執行slaveof no one即可。
127.0.0.1:6380> slaveof no one OK
另外還可以直接切換主節點。比如,現在6380是6370的從節點,現在6380想斷開6379的主從關系,與6381建立新的復制關系。那么6380只需執行slaveof 127.0.0.1 6381即可。
但切主的時候需要注意一點,從節點之前的數據將會被清空,然后再去復制新主節點的數據。所以,如果之前的數據有用且沒有備份下,且不可進行切主操作。
密碼校驗
若主節配置了requirepass,那么從節點就需要設置masterauth
只讀
默認情況下從節點執行進行讀操作,不能進行寫操作。因為這么做是非常必要的,如果從節點進行了寫操作,那么就會造成主從節點的數據不一致的情況。如果想從節點也可以寫的話,修改配置項slave-read-only=no即可。
應用場景
redis的復制常見的應用場景有
數據的實時備份,一般此種情況,只有一個從節點,從節點開啟aof持久哈,節點的主要任務就是實時備份數據。
故障轉移,如果主節點發生了故障的話,那么可以使用從節點來繼續運行系統
讀寫分離,比較適合于讀比較多的場景,主節點進行寫操作,多個從節點進行讀操作。因為復制是異步進行的,所以從節點數據可能會有延遲,這點也是開發時候需要注意的。
以上就是Redis主從復制的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。