Redis 主從配置心得及其高可用方案

來源:互聯網
上載者:User

redis主從複製過程

當配置好slave後,slave與master建立串連,然後發送sync命令。無論是第一次串連還是重新串連,master都會啟動一個後台進程,將 資料庫快照集儲存到檔案中,同時master主進程會開始收集新的寫命令並緩衝。後台進程完成寫檔案後,master就傳送檔案給slave,slave將 檔案儲存到硬碟上,再載入到記憶體中,接著master就會把緩衝的命令轉寄給slave,後續master將收到的寫命令發送給slave。

如果master同時收到多個slave發來的同步串連命令,master只會啟動一個進程來寫資料庫鏡像,然後發送給所有的slave。master同步資料時是非阻塞式的,可以接收使用者的讀寫請求。然而在slave端是阻塞模式的,slave在同步master資料時,並不能夠響應用戶端的查詢。

可以在master禁用資料持久化,只需要注釋掉master 設定檔中的所有save配置,然後只在slave上配置資料持久化

擁有主從伺服器的好處(從伺服器是唯讀,可以一主多從)

1.    主伺服器進行讀寫時,會轉移到從讀,減輕伺服器壓力

2.    熱備份 主從都可以設定密碼,也可以密碼不一致

進入/usr/data/redis/slave

建立 master  slave1  slave2

1.複製redis.conf到3個目錄,修改連接埠 1000,2000,3000

2.修改pid路徑,日誌路徑

pidfile /usr/data/redis/slave/master/redis.pid

logfile /usr/data/redis/slave/master/redis.log

ps -ef | grep redis

root     19000     1  0 08:27 ?        00:00:00 redis-server 192.168.1.1:1000

root     19012     1  0 08:27 ?        00:00:00 redis-server 192.168.1.1:2000

root     19016     1  0 08:27 ?        00:00:00 redis-server 192.168.1.1:3000

串連用戶端

[root@iZ23pv5rps8Z ~]# redis-cli -h 192.168.1.1 -p 3000

查看許可權

192.168.1.1:3000> info

3台伺服器都是  # Replication   role:master

設定從伺服器方式

1.命令方式

# Replication

role:master

connected_slaves:2

slave0:ip=192.168.1.1,port=2000,state=online,offset=113,lag=0

slave1:ip=192.168.1.1,port=3000,state=online,offset=113,lag=0

master_repl_offset:113

# Replication

role:slave

master_host:192.168.1.1

master_port:1000

master_link_status:up

伺服器停止,主從就不起作用

2.設定檔

# slaveof

slaveof 192.168.1.1 1000

伺服器停止,主從依然起作用

主從同步,2者密碼可以不一致

192.168.1.1:1000> set lyg945 liuyonggang

192.168.1.1:1000> get lyg945

"liuyonggang"

192.168.1.1:2000> get lyg945

"liuyonggang"

192.168.1.1:3000> get lyg945

"liuyonggang"

Redis的主從架構,如果master發現故障了,還得手動將slave切換成master繼續服務,手動的方式容易造成失誤,導致資料丟失,那Redis有沒有一種機制可以在master和slave進行監控,並在master發送故障的時候,能自動將slave切換成master呢。有的,那就是哨兵。

哨兵的作用:

1、監控redis進行狀態,包括master和slave

2、當master down機,能自動將slave切換成master

下面配置哨兵監控redis進程,假如我們已經配置好了Master和Slave,具體詳細配置參

手動切換master

master  SLAVEOF NO ONE

slave  SLAVEOF 192.168.1.1 3000

建立哨兵

touch sentinel.conf 內容如下

sentinel monitor 主機名稱       主機ip                主機連接埠 票數n         票數多餘n的從機作為主機

sentinel monitor mymaster 192.168.1.1    1000        1

啟動哨兵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.