国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Redis進(jìn)階:主從復(fù)制、集群搭建

這篇具有很好參考價(jià)值的文章主要介紹了Redis進(jìn)階:主從復(fù)制、集群搭建。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 主從復(fù)制機(jī)制

  • 介紹:主機(jī)數(shù)據(jù)更新后根據(jù)配置和策略, 自動(dòng)同步到備機(jī)的master/slaver機(jī)制,Master以寫為主,Slave以讀為主
    Redis進(jìn)階:主從復(fù)制、集群搭建

  • 優(yōu)點(diǎn):
    1)讀寫分離,減輕主機(jī)的壓力,性能擴(kuò)展;
    2)容災(zāi)快速恢復(fù):某個(gè)從機(jī)宕機(jī),可自動(dòng)從其他的從機(jī)讀取數(shù)據(jù);

  • 缺點(diǎn):復(fù)制延時(shí),從機(jī)越多,復(fù)制延時(shí)的情況越嚴(yán)重;

  • 通常配置為“一主多從”模式,主機(jī)宕機(jī)帶來的影響可通過搭建集群解決;

1.1 復(fù)制原理

  • 數(shù)據(jù)復(fù)制分為:1)全量復(fù)制:在從機(jī)連接主機(jī)時(shí)觸發(fā);2)增量復(fù)制:在主機(jī)有數(shù)據(jù)更新操作時(shí)觸發(fā);
    Redis進(jìn)階:主從復(fù)制、集群搭建
    情況1:從機(jī)連接主機(jī)(全量復(fù)制)
  • 從機(jī)Slave向主機(jī)Master發(fā)出數(shù)據(jù)同步請(qǐng)求;
  • 主機(jī)將當(dāng)前內(nèi)存中數(shù)據(jù)持久化到本地rdb文件中,將rdb文件發(fā)送到從機(jī);
  • 從機(jī)保存rdb文件,隨后加載該文件復(fù)制數(shù)據(jù);

情況2:主機(jī)發(fā)生數(shù)據(jù)更新(增量復(fù)制)

  • 主機(jī)發(fā)生數(shù)據(jù)更新,主動(dòng)將數(shù)據(jù)更新操作發(fā)送到從機(jī);
  • 從機(jī)接收更新數(shù)據(jù),完成數(shù)據(jù)同步;

1.2 配置“一主多從”試驗(yàn)主從復(fù)制

  • 此處在一臺(tái)服務(wù)器中,通過啟動(dòng)不同的Redis進(jìn)程模擬“1主2從”;
  • 有條件的可以使用多臺(tái)主機(jī)模擬;
  • 提前創(chuàng)建一個(gè)實(shí)驗(yàn)?zāi)夸浄胖酶鱾€(gè)進(jìn)程對(duì)應(yīng)的redis.conf配置文件:1)mkdir redis_demo;2)cd redis_demo;
  • 不同Redis進(jìn)程需要對(duì)應(yīng)不同的啟動(dòng)端口,此處三個(gè)進(jìn)程分別對(duì)應(yīng)6379、6380、6381端口;
  • 配置文件公共內(nèi)容通過include參數(shù)引入,由相同目錄下redis.conf文件提供;
  • 主機(jī)負(fù)責(zé)寫數(shù)據(jù),從機(jī)負(fù)責(zé)讀數(shù)據(jù);

1)為每個(gè)Redis進(jìn)程提供配置文件

  • 各進(jìn)程對(duì)應(yīng)配置文件分別為:redis6379.conf、redis6380.conf、redis6381.conf
  • 配置文件內(nèi)容包括:
    拷貝多個(gè)redis.conf文件include(寫絕對(duì)路徑);
    開啟daemonize yes;
    Pid文件名字pidfile;
    指定端口port;
    Log文件名字;
    dump.rdb名字dbfilename;
    Appendonly 關(guān)掉或者換名字;

    Redis進(jìn)階:主從復(fù)制、集群搭建

2)分別在不同客戶端啟動(dòng)Redis服務(wù)

  • 使用不同的配置文件,通過redis-server redis***.conf啟動(dòng)Redis服務(wù);
  • 使用redis-cli -p 端口號(hào)訪問Redis服務(wù);
  • 可使用info replication查看主從復(fù)制信息;

3)配置服務(wù)器成為某主機(jī)的下屬?gòu)臋C(jī)

  • 在從機(jī)環(huán)境下使用slaveof 主機(jī)ip 主機(jī)Redis服務(wù)對(duì)應(yīng)端口進(jìn)行配置;

1.3 不同模式

1.3.1 一主二仆

  • 一個(gè)主機(jī)Master,兩個(gè)從機(jī)Slave;
  • 從機(jī)一旦連接主機(jī),則會(huì)從頭復(fù)制主機(jī)數(shù)據(jù);
  • 從機(jī)只負(fù)責(zé)讀數(shù)據(jù),無法寫數(shù)據(jù);
  • 主機(jī)宕機(jī)后,從機(jī)不作任何操作,原地等待主機(jī)恢復(fù);
    Redis進(jìn)階:主從復(fù)制、集群搭建

1.3.2 薪火相傳

  • 從機(jī)slave也可以作為某些下屬服務(wù)器的主機(jī)master;
  • 從機(jī)只會(huì)與其從屬的主機(jī)進(jìn)行數(shù)據(jù)同步;
  • 優(yōu)點(diǎn):有效降低主機(jī)的寫壓力;
  • 缺點(diǎn):一旦作為“主機(jī)”的從機(jī)宕機(jī),其下屬的從機(jī)都無法進(jìn)行數(shù)據(jù)復(fù)制;
    Redis進(jìn)階:主從復(fù)制、集群搭建

1.3.3 反客為主

  • 當(dāng)主機(jī)宕機(jī)后,與其相連的從機(jī)可變?yōu)橹鳈C(jī);
  • 實(shí)現(xiàn)方式,在從機(jī)中執(zhí)行slaveof no one命令即可;

1.4 哨兵模式

  • 反客為主的自動(dòng)版,能夠后臺(tái)監(jiān)控主機(jī)是否故障,如果故障了根據(jù)投票數(shù)自動(dòng)將從庫轉(zhuǎn)換為主庫;
    Redis進(jìn)階:主從復(fù)制、集群搭建
  • 選擇策略
    優(yōu)先級(jí)在redis.conf中默認(rèn):replica-priority 100,值越小優(yōu)先級(jí)越高;
    偏移量是指獲得原主機(jī)數(shù)據(jù)最全的;
    每個(gè)redis實(shí)例啟動(dòng)后都會(huì)隨機(jī)生成一個(gè)40位的runid;
    Redis進(jìn)階:主從復(fù)制、集群搭建

1.4.1 使用一主二仆模式試驗(yàn)哨兵模式

  • 提前配置好一主二仆模式,參見2.2節(jié);
  • 在配置文件目錄下新建sentinel.conf哨兵模式配置文件;
  • sentinel.conf文件中寫入內(nèi)容sentinel monitor 監(jiān)控主機(jī)別名 主機(jī)ip Redis進(jìn)程端口號(hào) 同意發(fā)生遷移的哨兵數(shù)量:該哨兵需要監(jiān)控的主機(jī)ip等信息;
  • 啟動(dòng)哨兵:redis-sentinel sentinel.conf;
  • 一旦哨兵所監(jiān)控的主機(jī)發(fā)生故障,哨兵會(huì)根據(jù)投票數(shù)量在主機(jī)所下屬的從機(jī)中選取一個(gè)作為新的主機(jī);
  • 原始主機(jī)重新啟動(dòng)后,自動(dòng)變?yōu)閺臋C(jī);

2. 集群

  • Redis存在的問題:
    1)Redis擴(kuò)容問題;
    2)Redis分?jǐn)偛l(fā)寫操作;
    3)主從模式,薪火相傳模式,主機(jī)宕機(jī),導(dǎo)致ip地址發(fā)生變化,應(yīng)用程序中配置需要修改對(duì)應(yīng)的主機(jī)地址、端口等信息;

  • 解決方案:
    1)早期方案:代理主機(jī)
    特點(diǎn):客戶端請(qǐng)求通過代理主機(jī)轉(zhuǎn)發(fā);
    Redis進(jìn)階:主從復(fù)制、集群搭建
    2)早期方案:無中心化集群
    特點(diǎn):服務(wù)器之間互相連通,任何一臺(tái)服務(wù)器都可以作為客戶端訪問入口;
    Redis進(jìn)階:主從復(fù)制、集群搭建

  • 集群介紹:
    1)Redis 集群實(shí)現(xiàn)了對(duì)Redis的水平擴(kuò)容,即啟動(dòng)N個(gè)redis節(jié)點(diǎn),將整個(gè)數(shù)據(jù)庫分布存儲(chǔ)在這N個(gè)節(jié)點(diǎn)中,每個(gè)節(jié)點(diǎn)存儲(chǔ)總數(shù)據(jù)的1/N
    2)Redis 集群通過分區(qū)(partition)來提供一定程度的可用性(availability): 即使集群中有一部分節(jié)點(diǎn)失效或者無法進(jìn)行通訊, 集群也可以繼續(xù)處理命令請(qǐng)求;

  • 集群缺點(diǎn):
    1)多鍵操作是不被支持的 ;
    2)多鍵的Redis事務(wù)是不被支持的;lua腳本不被支持;
    3)由于集群方案出現(xiàn)較晚,很多公司已經(jīng)采用了其他的集群方案,而代理或者客戶端分片的方案想要遷移至redis cluster,需要整體遷移而不是逐步過渡,復(fù)雜度較大;

2.1 模擬實(shí)現(xiàn)集群

搭建集群流程

  • 1)清空已有的rdb文件、aof文件;
  • 2)使用Redis服務(wù)器中6個(gè)不同的Redis進(jìn)程模擬不同服務(wù)器,進(jìn)程分別對(duì)應(yīng)6379、6380、6381、6389、6390、6391端口,對(duì)應(yīng)配置文件分別為:**redis6379.conf、redis6380.conf、redis6381.conf等;
  • 3)配置文件內(nèi)容包括:
    拷貝多個(gè)redis.conf文件include(寫絕對(duì)路徑);
    開啟daemonize yes;
    Pid文件名字pidfile;
    指定端口port;
    Log文件名字;
    dump.rdb名字dbfilename;
    Appendonly 關(guān)掉或者換名字;
    cluster-enabled yes 打開集群模式;
    cluster-config-file nodes-xxx.conf 設(shè)定節(jié)點(diǎn)配置文件名;
    cluster-node-timeout 15000 設(shè)定節(jié)點(diǎn)失聯(lián)時(shí)間,超過該時(shí)間(毫秒),集群自動(dòng)進(jìn)行主從切換;
  • 4)啟動(dòng)6個(gè)Redis進(jìn)程;
  • 5)將6個(gè)節(jié)點(diǎn)合成一個(gè)集群:進(jìn)入Redis安裝目錄的src目錄下,使用redis-cli --cluster create --cluster-replicas 1 ip:6379 ip:6380 ip:6381 ip:6389 ip:6390 ip:6391進(jìn)行合體;
  • 6)采用redis-cli -c -p 任意Redis服務(wù)端口進(jìn)行集群策略連接,設(shè)置數(shù)據(jù)會(huì)自動(dòng)切換到相應(yīng)的寫主機(jī)
  • 可使用cluster nodes查看集群節(jié)點(diǎn)信息;

2.1.1 節(jié)點(diǎn)分配策略

  • 此處采用6個(gè)節(jié)點(diǎn)搭建無中心化主從集群;
  • 每個(gè)主機(jī)搭配一個(gè)從機(jī);
  • Redis要求集群至少有3個(gè)主節(jié)點(diǎn);
  • --cluster-replicas 1指Redis要求每個(gè)主機(jī)至少需要一個(gè)從機(jī),故6個(gè)節(jié)點(diǎn)被分為3組,每組由一個(gè)主節(jié)點(diǎn)和一個(gè)從節(jié)點(diǎn)構(gòu)成;
  • 分配原則:1)盡量保證主節(jié)點(diǎn)不在同一個(gè)IP地址;2)盡量保證主節(jié)點(diǎn)和從節(jié)點(diǎn)不在同一個(gè)IP地址;

2.1.2 slots介紹

  • slot是插槽的意思,Redis集群共包括16384個(gè)插槽,編號(hào)為0~16383;
  • Redis集群將所有的插槽均分到每個(gè)主節(jié)點(diǎn)中,即每個(gè)主節(jié)點(diǎn)對(duì)應(yīng)的插槽對(duì)應(yīng)一個(gè)編號(hào)區(qū)間,比如0~5460;
  • 數(shù)據(jù)庫中的鍵屬于某個(gè)插槽slot,集群通過CRC16(key) % 16384 來計(jì)算鍵key屬于哪個(gè)槽;

2.2 集群相關(guān)操作

  • 在進(jìn)行數(shù)據(jù)操作時(shí),集群會(huì)先計(jì)算出鍵key屬于哪個(gè)槽,然后通過插槽缺點(diǎn)數(shù)據(jù)所在主節(jié)點(diǎn);
  • 寫入數(shù)據(jù)時(shí)需注意,不在一個(gè)slot下的鍵值,是不能使用mget,mset等多鍵操作,如果還想使用則需要通過{}定義組的概念,從而使key中{}內(nèi)相同內(nèi)容的鍵值對(duì)放到一個(gè)slot中去;
  • 查找數(shù)據(jù):
    1)cluster keyslot key計(jì)算key所在插槽;
    2)cluster countkeysinslot 插槽編號(hào)統(tǒng)計(jì)該插槽內(nèi)key的數(shù)量;
    3)cluster getkeysinslot 插槽編號(hào) 期望返回的key數(shù)量返回期望數(shù)量個(gè)該槽中的鍵;

2.3 故障恢復(fù)

  • 主節(jié)點(diǎn)出現(xiàn)故障,超過15秒會(huì)自動(dòng)發(fā)生主從切換,切記如果為服務(wù)器設(shè)置了訪問密碼,需要在從機(jī)配置文件中配置對(duì)應(yīng)主機(jī)masterauth 密碼才能自動(dòng)切換;
  • 發(fā)生故障的主節(jié)點(diǎn)恢復(fù)后,成為從機(jī);
  • 如果某段插槽對(duì)應(yīng)的主從節(jié)點(diǎn)都出現(xiàn)故障,存在以下兩種情況,該參數(shù)在redis.conf文件中進(jìn)行配置:
    1)cluster-require-full-coverage = yes則整個(gè)集群全部掛掉,不能使用;
    2)cluster-require-full-coverage = no則整個(gè)集群中只有當(dāng)前主從節(jié)點(diǎn)無法使用,其他部分正常使用;

參考資料:《尚硅谷》文章來源地址http://www.zghlxwxcb.cn/news/detail-479095.html

到了這里,關(guān)于Redis進(jìn)階:主從復(fù)制、集群搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Redis 主從復(fù)制 哨兵 集群

    Redis 主從復(fù)制 哨兵 集群

    主從復(fù)制,是指將一臺(tái)Redis服務(wù)器的數(shù)據(jù),復(fù)制到其他的Redis服務(wù)器。前者稱為主節(jié)點(diǎn)(Master),后者稱為從節(jié)點(diǎn)(Slave);數(shù)據(jù)的復(fù)制是單向的,只能由主節(jié)點(diǎn)到從節(jié)點(diǎn)。 默認(rèn)情況下,每臺(tái)Redis服務(wù)器都是主節(jié)點(diǎn);且一個(gè)主節(jié)點(diǎn)可以有多個(gè)從節(jié)點(diǎn)(或沒有從節(jié)點(diǎn)),但一個(gè)從節(jié)點(diǎn)只能

    2024年02月11日
    瀏覽(28)
  • 【Redis】3、Redis主從復(fù)制、哨兵、集群

    【Redis】3、Redis主從復(fù)制、哨兵、集群

    主從復(fù)制,是指將一臺(tái)Redis服務(wù)器的數(shù)據(jù),復(fù)制到其他的Redis服務(wù)器。前者稱為主節(jié)點(diǎn)(Master),后者稱為從節(jié)點(diǎn)(Slave);數(shù)據(jù)的復(fù)制是單向的,只能由主節(jié)點(diǎn)到從節(jié)點(diǎn)。 默認(rèn)情況下,每臺(tái)Redis服務(wù)器都是主節(jié)點(diǎn);且一個(gè)主節(jié)點(diǎn)可以有多個(gè)從節(jié)點(diǎn)(或沒有從節(jié)點(diǎn)),但一個(gè)從節(jié)點(diǎn)只能

    2024年02月09日
    瀏覽(24)
  • 3.Redis主從復(fù)制、哨兵、集群

    Redis主從復(fù)制,是指將一臺(tái)Redis服務(wù)器的數(shù)據(jù),復(fù)制到其他的Redis服務(wù)器。前者稱為主節(jié)點(diǎn)(Master),后者稱為從節(jié)點(diǎn)(Slave):數(shù)據(jù)的復(fù)制是單向的,只能由主節(jié)點(diǎn)到從節(jié)點(diǎn)。 默認(rèn)情況下,每臺(tái)Redis服務(wù)器都是主節(jié)點(diǎn):且 一個(gè)主節(jié)點(diǎn)可以有多個(gè)從節(jié)點(diǎn)(或沒有從節(jié)點(diǎn)),但一個(gè)從節(jié)點(diǎn)只

    2024年02月12日
    瀏覽(29)
  • 【2023】Redis主從復(fù)制模式集群

    【2023】Redis主從復(fù)制模式集群

    主從模式中,由一個(gè)主服務(wù)器和多個(gè)從服務(wù)器組成,寫入主節(jié)點(diǎn)的數(shù)據(jù)會(huì)被復(fù)制到從節(jié)點(diǎn)上,這樣一旦主節(jié)點(diǎn)出現(xiàn)故障,應(yīng)用系統(tǒng)就能切換到從節(jié)點(diǎn)去讀寫數(shù)據(jù),提升系統(tǒng)的可用性。 再采用主從復(fù)制模式里默認(rèn)的讀寫分離機(jī)制,就能提升系統(tǒng)的緩存讀寫性能。 總結(jié): 提高系

    2024年02月07日
    瀏覽(29)
  • redis主從復(fù)制、哨兵與集群

    redis主從復(fù)制、哨兵與集群

    目錄 一、概述 二、redis主從復(fù)制 1、概念 2、主從復(fù)制的作用 3、主從復(fù)制流程 4、搭建Redis 主從復(fù)制實(shí)驗(yàn) ①在三臺(tái)服務(wù)器上安裝redis (1)關(guān)閉防火墻和安全機(jī)制 (2)修改內(nèi)核參數(shù) (3)安裝redis (4)創(chuàng)建redis工作目錄 (5)準(zhǔn)備環(huán)境變量 (6)定義systemd服務(wù)管理腳本 ②修改

    2024年02月03日
    瀏覽(20)
  • redis的主從復(fù)制、哨兵、集群

    redis的主從復(fù)制、哨兵、集群

    主從復(fù)制,是指將一臺(tái)Redis服務(wù)器的數(shù)據(jù),復(fù)制到其他的Redis服務(wù)器。前者稱為主節(jié)點(diǎn)(Master),后者稱為從節(jié)點(diǎn)(Slave);數(shù)據(jù)的復(fù)制是單向的,只能由主節(jié)點(diǎn)到從節(jié)點(diǎn)。 原理: 主從關(guān)系確定好后,開啟從節(jié)點(diǎn)時(shí),會(huì)發(fā)送一個(gè)sync的同步命令給主節(jié)點(diǎn),主節(jié)點(diǎn)接收到后會(huì)把redis內(nèi)存

    2024年02月06日
    瀏覽(23)
  • redis之主從復(fù)制、哨兵、集群

    redis之主從復(fù)制、哨兵、集群

    在web服務(wù)器中,高可用是指服務(wù)器可以正常訪問的時(shí)間,衡量的標(biāo)準(zhǔn)是在多長(zhǎng)時(shí)間內(nèi)可以提供正常服務(wù)(99.9%、99.99%、99.999%等等)。 高可用的計(jì)算公式是1-(宕機(jī)時(shí)間)/(宕機(jī)時(shí)間+運(yùn)行時(shí)間)有點(diǎn)類似與網(wǎng)絡(luò)傳輸?shù)膮?shù)誤碼率,我們用9的個(gè)數(shù)表示可用性: 2個(gè)9:99%,一年內(nèi)宕

    2024年02月11日
    瀏覽(23)
  • Redis主從復(fù)制、哨兵機(jī)制、集群分片

    Redis主從復(fù)制、哨兵機(jī)制、集群分片

    目錄 一.主從復(fù)制 1.概述 2.主從架構(gòu)相比于單點(diǎn)架構(gòu)的優(yōu)勢(shì) 3.主從復(fù)制原理和工作流程 第一次同步 第一階段:建立鏈接、協(xié)商同步 第二階段:主服務(wù)器同步數(shù)據(jù)給從服務(wù)器? 第三階段:主服務(wù)器發(fā)送新寫操作命令給從服務(wù)器 基于長(zhǎng)連接的命令傳播 分?jǐn)傊鞣?wù)器的壓力 問題

    2024年02月14日
    瀏覽(22)
  • Redis高可用(主從復(fù)制,哨兵,集群)

    Redis高可用(主從復(fù)制,哨兵,集群)

    主從復(fù)制,是指將一臺(tái)Redis服務(wù)器的數(shù)據(jù),復(fù)制到其他的Redis服務(wù)器。前者稱為主節(jié)點(diǎn)(Master),后者稱為從節(jié)點(diǎn)(slave);數(shù)據(jù)的復(fù)制是單向的,只能由主節(jié)點(diǎn)到從節(jié)點(diǎn)。 默認(rèn)情況下,每臺(tái)Redis服務(wù)器都是主節(jié)點(diǎn);且一個(gè)主節(jié)點(diǎn)可以有多個(gè)從節(jié)點(diǎn)(或沒有從節(jié)點(diǎn)),但一個(gè)從

    2024年02月07日
    瀏覽(23)
  • Redis高可用主從復(fù)制、哨兵、集群

    在Redis中,實(shí)現(xiàn)高可用的技術(shù)主要包括持久化、主從復(fù)制、哨兵和集群。 1、主從復(fù)制 主從復(fù)制時(shí)高可用Redis的基礎(chǔ),哨兵和cluster都是在主從復(fù)制基礎(chǔ)上實(shí)現(xiàn)高可用的,主從復(fù)制主要實(shí)現(xiàn)了數(shù)據(jù)的多級(jí)備份,以及對(duì)與讀操作的負(fù)載均衡和簡(jiǎn)單的故障恢復(fù)。 缺陷:①故障恢復(fù)無

    2024年02月12日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包