Redis(4) 主從複製

2022-09-22 04:45:10 字數 2861 閱讀 1663

既然是主從複製,那肯定需要多個redis伺服器,下面我先建立3個伺服器,™的埠號分別是:6379、6380、6381。

1、複製預設配置檔案redis.conf,放到rediszhucong資料夾中,並重命名。

根據每個埠號不同,重新配置conf檔案

(1)埠號

(2)開啟執行緒守護

(3)pid檔案名字

(4)log檔案名字

(5)dump.rdb名字

2、在redis-server目錄下,讀取配置啟動這三個redis

./redis-server ../../rediszhucong/redis6379.conf

./redis-server ../../rediszhucong/redis6380.conf

./redis-server ../../rediszhucong/redis6381.conf

檢視程序

3、開啟多個介面進行操作

./redis-cli -p 6379

./redis-cli -p 6380

./redis-cli -p 6381

成功開啟三個伺服器

1、是什麼?

行話:也就是我們所說的主從複製,主機資料更新後根據配置和策略,自動同步到備機的master/sl**er機制,master以寫為主,sl**e以讀為主。

2、能幹嘛?

讀寫分離,更加安全,效能提公升。

3、怎麼玩?

一主二僕、薪火相傳、反客為主

(1)一主二僕

配從不配主

sl**eof 主庫ip 主庫埠

我這裡把6379當成主庫,所以只要在6380和6381埠輸入:

通過info replication 檢視是否配置成功。

可以看到6379埠伺服器,role角色是master,同時下面有兩個從伺服器

再看6380埠,role顯示為sl**e。

總結:(1)如果master伺服器掛了,那麼6380,和6381角色依舊是sl**e

(2)如果master又好了,那麼一切正常,下面還是有兩個從,自己還是主。

(3)如果sl**e伺服器掛了,那麼重啟後,需要重新sl**eof 選擇master,除非在配置檔案中配置

(2)薪火相傳

新火相傳的意思其實就是去中心化,現在只有80和81兩台sl**e連線master,假如,有100臺sl**e的話,那麼master就壓力很大了,所以redis又推出了新火相傳的解決方案,上一台sl**e,可以下一台sl**e的master.

79和80不改變,在81上配置如下:

127.0.0.1:6381> sl**eof 127.0.0.1 6380

ok

(3)反客為主上面提到了,當master宕機的時候,重寫啟動還是master,現在時,我是想當master宕機的時候,讓某一台從機變成主機,這裡是,讓80變成主機,

只要當master死機器的時候,手動在80執行如下命令:

127.0.0.1:6380> sl**eof no one
同時,81也要重新配置,配置80為主機

127.0.0.1:6381> sl**eof 127.0.0.1 6380

ok

雖然說,反客為主,已經不錯了,但總不能一旦master掛掉,我在手動去重新配置主伺服器,和sl**e伺服器吧。

簡單的說,哨兵模式就是反客為主的自動版,通過監控主機,當主機掛掉的時候,就幾台從機中透過投票選出新的主機

1、在 /etc/redis/目錄下新建乙個sentinel.conf檔案(這個目錄隨意,但名字一定叫sentinel.conf)

裡面的內容為:

sentinel monitor host6379 127.0.0.1 6379 1
意思是6379埠的伺服器是現在的master,host6379是自己任意取的名字,上面最後乙個數字1,表示主機掛掉後salve投票看讓誰接替成為主機,得票數多少後成為主機

2、啟動sentinel.conf 檔案

表示成功!

這是注意:

就是當原來的master回來後,不是做獨立的mater,而是做新主機的sl**e

當我輸入:shuidown命令,代表kill埠的redis,當我重新啟動6379埠後,發現他的角色變成了:sl**e

Redis 主從複製

主從複製的開啟,完全是在從節點發起的,不需要我們在主節點做任何事情,從節點開啟主從複製,有3種方式 主從複製主要可分為 連線建立階段 即準備階段 資料同步階段 命令傳播階段 主要作用是在主從節點之間建立連線,為資料同步做好準備 從節點資料的初始化,具體執行的方式是 從節點向主節點傳送psync命令 ...

Redis 主從複製

就是將一台 redis 伺服器的資料,複製到其他的 redis 伺服器,前者為主節點 master leader 後者稱為從節點 sl e follower 資料的複製是單向的,只能從主節點到從節點,一般 master 以寫為主,sl e 以讀為主。redis 主從複製可以根據是否是全量分為全量同步...

redis主從複製

redis的高併發有一種實現方式就是主從架構,乙個master節點,多個sl e節點,可以很好的實現sl e節點的水平擴容 主從架構再加上讀寫分離,master節點負責寫操作,sl e節點負責讀操作,使得redis可以很好的做乙個高併發的處理。有人就會疑惑了 sl e節點上的資料怎麼來的了?所以我們...