国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Redis > 正文

Redis主從同步,讀寫分離設(shè)置 的相關(guān)操作

2020-03-22 19:10:46
字體:
供稿:網(wǎng)友
本文介紹使用Redis的主從同步功能(master, slave),使程序?qū)崿F(xiàn)讀寫分離,避免io瓶頸,提高數(shù)據(jù)讀寫效率。

Redis支持一個(gè)master服務(wù)器對多個(gè)slave服務(wù)器同步,同步使用發(fā)布/訂閱機(jī)制。
1個(gè)master對多個(gè)slave,還可以進(jìn)行分層,每個(gè)slave下可以再同步slave,擴(kuò)展成樹狀結(jié)構(gòu)。

Redis 主從同步設(shè)置

Redis默認(rèn)的端口是6379,我們?yōu)榱瞬挥绊懺蠷edis,使用新的端口

master 配置 redis_master.conf

port 6300requirepass 123456masterauth 123456daemonize yes


slave1 配置 redis_slave1.conf 設(shè)為master的slave

port 6301slaveof 127.0.0.1 6300requirepass 123456masterauth 123456daemonize yes


slave2 配置 redis_slave2.conf 設(shè)為master的slave

port 6302slaveof 127.0.0.1 6300requirepass 123456masterauth 123456daemonize yes

daemonize 表示后臺(tái)啟動(dòng)。
requirepass 為主機(jī)認(rèn)證密碼。
masterauth 為從機(jī)訪問主機(jī)驗(yàn)證密碼,需要與主機(jī)的requirepass一致。
因后面需要演示主從切換,因此三組conf的驗(yàn)證密碼都一致。

Redis 主從同步測試

依次啟動(dòng)master, slave1, slave2

redis-server redis_master.confredis-server redis_slave1.confredis-server redis_slave2.conf

執(zhí)行后查看是否啟動(dòng)成功

ps aux|grep redisroot 1858 Ss 3:55 0:00.01 redis-server *:6302 root 1849 Ss 3:54 0:00.01 redis-server *:6301 root 1842 Ss 3:54 0:00.02 redis-server *:6300

進(jìn)入master,設(shè)置key abc的值為123

redis-cli -p 6300127.0.0.1:6300 auth 123456OK127.0.0.1:6300 set abc 123OK127.0.0.1:6300 get abc 123 

分別進(jìn)入slave1, slave2檢查是否同步數(shù)據(jù)
slave1:

redis-cli -p 6301127.0.0.1:6301 auth 123456OK127.0.0.1:6301 get abc 123 127.0.0.1:6301 

slave2:

redis-cli -p 6302127.0.0.1:6302 auth 123456OK127.0.0.1:6302 get abc 123 127.0.0.1:6302 

進(jìn)入master修改key abc的值為456

127.0.0.1:6300 set abc 456OK127.0.0.1:6300 get abc 456 

檢查slave1, slave2是否同步
slave1:

127.0.0.1:6301 get abc 456 

slave2:

127.0.0.1:6302 get abc 456 
Redis主從切換

在運(yùn)行過程中,如果master出現(xiàn)問題,我們可以通過設(shè)置,把另一臺(tái)slave機(jī)自動(dòng)設(shè)為master使用。這里主要用到Redis的sentinel功能來實(shí)現(xiàn)主從切換。

sentinel1.conf

port 26301sentinel monitor master 127.0.0.1 6300 2sentinel auth-pass master 123456logfile /tmp/sentinel.log daemonize yes

sentinel2.conf

port 26302sentinel monitor master 127.0.0.1 6300 2sentinel auth-pass master 123456logfile /tmp/sentinel.log daemonize yes

sentinel monitor master 127.0.0.1 6300 2 中的 2 表示有2個(gè)以上的sentinel服務(wù)檢測到master失效,才會(huì)執(zhí)行主從切換。

啟動(dòng)兩個(gè)sentinel進(jìn)程

redis-server sentinel1.conf --sentinelredis-server sentinel2.conf --sentinelps aux|grep redisroot 2643 Ss 4:28 0:00.02 redis-server *:26302 [sentinel] root 2636 Ss 4:28 0:00.02 redis-server *:26301 [sentinel]

Redis日志可以看到,啟動(dòng)成功開始監(jiān)控

Running mode=sentinel, port=26301.Sentinel ID is 3a23343948cd7f26662ccba1d01b92955311ef52+monitor master master 127.0.0.1 6300 quorum 2+slave slave 127.0.0.1:6301 127.0.0.1 6301 @ master 127.0.0.1 6300+slave slave 127.0.0.1:6302 127.0.0.1 6302 @ master 127.0.0.1 6300Running mode=sentinel, port=26302.Sentinel ID is ce0ee2af6b454205a3e475763945f505a10a7d6a+monitor master master 127.0.0.1 6300 quorum 2+slave slave 127.0.0.1:6301 127.0.0.1 6301 @ master 127.0.0.1 6300+slave slave 127.0.0.1:6302 127.0.0.1 6302 @ master 127.0.0.1 6300+sentinel sentinel 3a23343948cd7f26662ccba1d01b92955311ef52 127.0.0.1 26301 @ master 127.0.0.1 6300+sentinel sentinel ce0ee2af6b454205a3e475763945f505a10a7d6a 127.0.0.1 26302 @ master 127.0.0.1 6300

終止master,測試主從切換

kill master進(jìn)程后,sentinel判斷master失效,執(zhí)行主從切換處理。

日志如下:

+failover-state-reconf-slaves master master 127.0.0.1 6300+slave-reconf-sent slave 127.0.0.1:6301 127.0.0.1 6301 @ master 127.0.0.1 6300+config-update-from sentinel 3a23343948cd7f26662ccba1d01b92955311ef52 127.0.0.1 26301 +switch-master master 127.0.0.1 6300 127.0.0.1 6302+slave slave 127.0.0.1:6301 127.0.0.1 6301 @ master 127.0.0.1 6302+slave slave 127.0.0.1:6300 127.0.0.1 6300 @ master 127.0.0.1 6302-odown master master 127.0.0.1 6300+slave-reconf-inprog slave 127.0.0.1:6301 127.0.0.1 6301 @ master 127.0.0.1 6300+slave-reconf-done slave 127.0.0.1:6301 127.0.0.1 6301 @ master 127.0.0.1 6300+failover-end master master 127.0.0.1 6300+switch-master master 127.0.0.1 6300 127.0.0.1 6302+convert-to-slave slave 127.0.0.1:6300 127.0.0.1 6300 @ master 127.0.0.1 6302

從日志可以看出,主從切換執(zhí)行了以下操作:

1.將slave2切換為新的master,redis_slave2.conf 中的 slaveof 127.0.0.1 6300 被自動(dòng)刪除。

2.將redis_slave1.conf的 slaveof 127.0.0.1 6300 自動(dòng)更新為 slaveof 127.0.0.1 6302,使用slave2作為新的master。

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 清徐县| 宣城市| 上思县| 延边| 尼勒克县| 绥芬河市| 霍城县| 大姚县| 扶余县| 肥乡县| 祥云县| 白朗县| 中宁县| 平定县| 启东市| 富阳市| 韶关市| 周口市| 台东市| 永昌县| 塔城市| 仲巴县| 磐石市| 株洲市| 唐山市| 津市市| 垫江县| 区。| 清河县| 克山县| 连江县| 南丹县| 合江县| 仙游县| 三河市| 萝北县| 洛隆县| 韶关市| 米泉市| 张家界市| 简阳市|