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

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

這篇具有很好參考價值的文章主要介紹了redis的主從復(fù)制、哨兵、集群。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

主從復(fù)制:

主從復(fù)制,是指將一臺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)時,會發(fā)送一個sync的同步命令給主節(jié)點(diǎn),主節(jié)點(diǎn)接收到后會把redis內(nèi)存中的數(shù)據(jù)以快照的方式壓縮保存成rdb文件,在這個期間如果有新的數(shù)據(jù)就會進(jìn)行緩存保存,當(dāng)rdb文件生成后會和緩存文件一起發(fā)送給從節(jié)點(diǎn),從節(jié)點(diǎn)進(jìn)行保存,這就完成了主從復(fù)制。

實驗:

①安裝redis(上篇文章有)

②修改主配置文件:

bind 0.0.0.0 #87行,修改監(jiān)聽地址為0.0.0.0

protected-mode no #111行,將本機(jī)訪問保護(hù)模式設(shè)置no

port 6379 #138行,Redis默認(rèn)的監(jiān)聽6379端口

daemonize yes #309行,設(shè)置為守護(hù)進(jìn)程,后臺啟動

pidfile /usr/local/redis/log/redis_6379.pid #341行,指定 PID 文件
logfile “/usr/local/redis/log/redis_6379.log” #354行,指定日志文件

dir /usr/local/redis/data #504行,指定持久化文件所在目錄

#requirepass sj123 #1037行,可選,設(shè)置redis密碼

appendonly yes #1380行,開啟AOF

③修改從配置文件:

bind 0.0.0.0 #87行,修改監(jiān)聽地址為0.0.0.0

protected-mode no #111行,將本機(jī)訪問保護(hù)模式設(shè)置no

port 6379 #138行,Redis默認(rèn)的監(jiān)聽6379端口

daemonize yes #309行,設(shè)置為守護(hù)進(jìn)程,后臺啟動

pidfile /usr/local/redis/log/redis_6379.pid #341行,指定 PID 文件
logfile “/usr/local/redis/log/redis_6379.log” #354行,指定日志文件

dir /usr/local/redis/data #504行,指定持久化文件所在目錄

#requirepass sj123 #1037行,可選,設(shè)置redis密碼

#masterauth sj123 #535行,可選,指定Master節(jié)點(diǎn)的密碼,僅在Master節(jié)點(diǎn)設(shè)置了requirepass

appendonly yes #1380行,開啟AOF

replicaof 192.168.22.10 6379 #528行,指定要同步的Master節(jié)點(diǎn)IP和端口

然后重啟redis服務(wù)

④驗證:

主節(jié)點(diǎn)上輸入:redis-cli -a sj123 info replication
redis的主從復(fù)制、哨兵、集群

哨兵模式:

哨兵的核心功能:在主從復(fù)制的基礎(chǔ)上,哨兵引入了主節(jié)點(diǎn)的自動故障轉(zhuǎn)移

哨兵模式的作用:
監(jiān)控:哨兵會不斷地檢查主節(jié)點(diǎn)和從節(jié)點(diǎn)是否運(yùn)作正常。

自動故障轉(zhuǎn)移:當(dāng)主節(jié)點(diǎn)不能正常工作時,哨兵會開始自動故障轉(zhuǎn)移操作,它會將失效主節(jié)點(diǎn)的其中一個從節(jié)點(diǎn)升級為新的主節(jié)點(diǎn),并讓其它從節(jié)點(diǎn)改為復(fù)制新的主節(jié)點(diǎn)。

哨兵結(jié)構(gòu)由兩部分組成,哨兵節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn):
哨兵節(jié)點(diǎn):哨兵系統(tǒng)由一個或多個哨兵節(jié)點(diǎn)組成,哨兵節(jié)點(diǎn)是特殊的redis節(jié)點(diǎn),不存儲數(shù)據(jù)。
數(shù)據(jù)節(jié)點(diǎn):主節(jié)點(diǎn)和從節(jié)點(diǎn)都是數(shù)據(jù)節(jié)點(diǎn)。

故障轉(zhuǎn)移機(jī)制:

1.由哨兵節(jié)點(diǎn)定期監(jiān)控發(fā)現(xiàn)主節(jié)點(diǎn)是否出現(xiàn)了故障
每個哨兵節(jié)點(diǎn)每隔1秒會向主節(jié)點(diǎn)、從節(jié)點(diǎn)及其它哨兵節(jié)點(diǎn)發(fā)送一次ping命令做一次心跳檢測。如果主節(jié)點(diǎn)在一定時間范圍內(nèi)不回復(fù)或者是回復(fù)一個錯誤消息,那么這個哨兵就會認(rèn)為這個主節(jié)點(diǎn)主觀下線了(單方面的)。當(dāng)超過半數(shù)哨兵節(jié)點(diǎn)認(rèn)為該主節(jié)點(diǎn)主觀下線了,這樣就客觀下線了。

2.當(dāng)主節(jié)點(diǎn)出現(xiàn)故障,此時哨兵節(jié)點(diǎn)會通過Raft算法(選舉算法)實現(xiàn)選舉機(jī)制共同選舉出一個哨兵節(jié)點(diǎn)為leader,來負(fù)責(zé)處理主節(jié)點(diǎn)的故障轉(zhuǎn)移和通知。所以整個運(yùn)行哨兵的集群的數(shù)量不得少于3個節(jié)點(diǎn)。

3.由leader哨兵節(jié)點(diǎn)執(zhí)行故障轉(zhuǎn)移,過程如下:
將某一個從節(jié)點(diǎn)升級為新的主節(jié)點(diǎn),讓其它從節(jié)點(diǎn)指向新的主節(jié)點(diǎn);
若原主節(jié)點(diǎn)恢復(fù)也變成從節(jié)點(diǎn),并指向新的主節(jié)點(diǎn);
通知客戶端主節(jié)點(diǎn)已經(jīng)更換。

主節(jié)點(diǎn)的選舉:
1.過濾掉不健康的(已下線的),沒有回復(fù)哨兵 ping 響應(yīng)的從節(jié)點(diǎn)。
2.選擇配置文件中從節(jié)點(diǎn)優(yōu)先級配置最高的。(replica-priority,默認(rèn)值為100)
3.選擇復(fù)制偏移量最大,也就是復(fù)制最完整的從節(jié)點(diǎn)。

實驗:三臺機(jī)子配置一樣

①哨兵模式的配置文件復(fù)制和給屬主和屬組

cp /opt/redis-7.0.9/sentinel.conf /usr/local/redis/conf/
chown redis.redis /usr/local/redis/conf/sentinel.conf

他就在redis的安裝包里面

②修改配置文件

protected-mode no #6行,關(guān)閉保護(hù)模式
port 26379 #10行,Redis哨兵默認(rèn)的監(jiān)聽端口
daemonize yes #15行,指定sentinel為后臺啟動
pidfile /usr/local/redis/log/redis-sentinel.pid #20行,指定 PID 文件
logfile “/usr/local/redis/log/sentinel.log” #25行,指定日志存放路徑
dir /usr/local/redis/data #54行,指定數(shù)據(jù)庫存放路徑
sentinel monitor mymaster ip 6379 2 #73行,修改 指定該哨兵節(jié)點(diǎn)監(jiān)控ip這個主節(jié)點(diǎn),該主節(jié)點(diǎn)的名稱是mymaster,最后的2的含義與主節(jié)點(diǎn)的故障判定有關(guān):至少需要2個哨兵節(jié)點(diǎn)同意,才能判定主節(jié)點(diǎn)故障并進(jìn)行故障轉(zhuǎn)移
#sentinel auth-pass mymaster sj123 #76行,可選,指定Master節(jié)點(diǎn)的密碼,僅在Master節(jié)點(diǎn)設(shè)置了requirepass
sentinel down-after-milliseconds mymaster 3000 #114行,判定服務(wù)器down掉的時間周期,默認(rèn)30000毫秒(30秒)
sentinel failover-timeout mymaster 180000 #214行,同一個sentinel對同一個master兩次failover之間的間隔時間(180秒)

③啟動sentinel:先啟master,再啟slave

cd /usr/local/redis/conf/
redis-sentinel sentinel.conf &

④查看哨兵信息:

redis-cli -p 26379 info Sentinel

⑤故障切換:

殺死主節(jié)點(diǎn)的哨兵進(jìn)程

群集模式:
集群由多組節(jié)點(diǎn)(Node)組成,Redis的數(shù)據(jù)分布在這些節(jié)點(diǎn)中。集群中的節(jié)點(diǎn)分為主節(jié)點(diǎn)和從節(jié)點(diǎn):只有主節(jié)點(diǎn)負(fù)責(zé)讀寫請求和集群信息的維護(hù);從節(jié)點(diǎn)只進(jìn)行主節(jié)點(diǎn)數(shù)據(jù)和狀態(tài)信息的復(fù)制。

集群的作用,可以歸納為兩點(diǎn):
(1)數(shù)據(jù)分區(qū):數(shù)據(jù)分區(qū)(或稱數(shù)據(jù)分片)是集群最核心的功能。
集群將數(shù)據(jù)分散到多個節(jié)點(diǎn),一方面突破了Redis單機(jī)內(nèi)存大小的限制,存儲容量大大增加;另一方面每個主節(jié)點(diǎn)都可以對外提供讀服務(wù)和寫服務(wù),大大提高了集群的響應(yīng)能力。
Redis單機(jī)內(nèi)存大小受限問題,在介紹持久化和主從復(fù)制時都有提及;例如,如果單機(jī)內(nèi)存太大,bgsave和bgrewriteaof的fork操作可能導(dǎo)致主進(jìn)程阻塞,主從環(huán)境下主機(jī)切換時可能導(dǎo)致從節(jié)點(diǎn)長時間無法提供服務(wù),全量復(fù)制階段主節(jié)點(diǎn)的復(fù)制緩沖區(qū)可能溢出。

(2)高可用:集群支持主從復(fù)制和主節(jié)點(diǎn)的自動故障轉(zhuǎn)移(與哨兵類似);當(dāng)任一節(jié)點(diǎn)發(fā)生故障時,集群仍然可以對外提供服務(wù)。

Redis集群的數(shù)據(jù)分片:
Redis集群引入了哈希槽的概念
Redis集群有16384個哈希槽(編號0-16383)
集群的每組節(jié)點(diǎn)負(fù)責(zé)一部分哈希槽
每個Key通過CRC16校驗后對16384取余來決定放置哪個哈希槽,通過這個值,去找到對應(yīng)的插槽所對應(yīng)的節(jié)點(diǎn),然后直接自動跳轉(zhuǎn)到這個對應(yīng)的節(jié)點(diǎn)上進(jìn)行存取操作

以3個節(jié)點(diǎn)組成的集群為例:
節(jié)點(diǎn)A包含0到5460號哈希槽
節(jié)點(diǎn)B包含5461到10922號哈希槽
節(jié)點(diǎn)C包含10923到16383號哈希槽

實驗:

①創(chuàng)建集群目錄,并且創(chuàng)建節(jié)點(diǎn)服務(wù)器的目錄:

cd /usr/local/redis/
mkdir -p redis-cluster/redis600{1…6}
redis的主從復(fù)制、哨兵、集群
② cp /opt/redis-7.0.9/redis.conf /usr/local/redis/redis-cluster/redis600{1…6}

復(fù)制redis.conf 到各個節(jié)點(diǎn)服務(wù)器的目錄

③配置文件:

bind 127.0.0.1 #87行,注釋掉bind項,默認(rèn)監(jiān)聽所有網(wǎng)卡
protected-mode no #111行,關(guān)閉保護(hù)模式
port 6001(+1以此類推) #138行,修改redis監(jiān)聽端口
daemonize yes #309行,設(shè)置為守護(hù)進(jìn)程,后臺啟動
pidfile /usr/local/redis/log/redis_6001.pid(+1以此類推) #341行,指定 PID 文件
logfile “/usr/local/redis/log/redis_6001.log”(+1以此類推) #354行,指定日志文件
dir ./ #504行,指定持久化文件所在目錄
appendonly yes #1379行,開啟AOF
cluster-enabled yes #1576行,取消注釋,開啟群集功能
cluster-config-file nodes-6001.conf(+1以此類推) #1584行,取消注釋,群集名稱文件設(shè)置
cluster-node-timeout 15000 #1590行,取消注釋群集超時時間設(shè)置

④然后用cp復(fù)制,sed命令去更改配置文件內(nèi)容
redis的主從復(fù)制、哨兵、集群
⑤切換到各個文件中啟動服務(wù):

cd /usr/local/redis/redis-cluster/redis6001

.redis-server redis.conf
redis的主從復(fù)制、哨兵、集群
⑥ps -ef | grep redis 查看是否都啟動了
redis的主從復(fù)制、哨兵、集群
⑦啟動集群
redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
redis的主從復(fù)制、哨兵、集群
⑧查看各個主和從的對應(yīng),查看hash槽的范圍:
redis的主從復(fù)制、哨兵、集群
⑨測試:
redis的主從復(fù)制、哨兵、集群
查看鍵的hash值:cluster keyslot 鍵

查看節(jié)點(diǎn)的哈希槽編號范圍:cluster slot

集群擴(kuò)容:

①創(chuàng)建6007和6008的目錄,進(jìn)行修改配置文件:
redis的主從復(fù)制、哨兵、集群
②創(chuàng)建一個新的主節(jié)點(diǎn)127.0.0.1:6007。命令里需要指定一個已有節(jié)點(diǎn)以便于獲取集群信息(可以知道6007的信息了)
redis的主從復(fù)制、哨兵、集群
③將127.0.0.1:6008創(chuàng)建為127.0.0.1:6007的從節(jié)點(diǎn)。命令里需要指定一個已有節(jié)點(diǎn)以便于獲取集群信息和主節(jié)點(diǎn)的node ID
redis的主從復(fù)制、哨兵、集群
④新加入的主節(jié)點(diǎn)是沒有槽數(shù)的,只有初始化集群的時候,才會根據(jù)主的數(shù)據(jù)分配好,如新增的主節(jié)點(diǎn),需要手動分配
redis的主從復(fù)制、哨兵、集群
⑤檢測
redis的主從復(fù)制、哨兵、集群文章來源地址http://www.zghlxwxcb.cn/news/detail-459410.html

到了這里,關(guān)于redis的主從復(fù)制、哨兵、集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

    主從復(fù)制,是指將一臺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)情況下,每臺Redis服務(wù)器都是主節(jié)點(diǎn);且一個主節(jié)點(diǎn)可以有多個從節(jié)點(diǎn)(或沒有從節(jié)點(diǎn)),但一個從節(jié)點(diǎn)只能

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

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

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

    2024年02月14日
    瀏覽(22)
  • Redis——主從復(fù)制+集群搭建(非哨兵)

    Redis——主從復(fù)制+集群搭建(非哨兵)

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

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

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

    主從復(fù)制,是指將一臺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)情況下,每臺Redis服務(wù)器都是主節(jié)點(diǎn);且一個主節(jié)點(diǎn)可以有多個從節(jié)點(diǎn)(或沒有從節(jié)點(diǎn)),但一個從

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

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

    2024年02月12日
    瀏覽(16)
  • Redis 主從復(fù)制 + 哨兵模式 + Cluster 集群

    redis群集有三種模式: 分別是主從同步/復(fù)制、哨兵模式、Cluster,下面會講解一下三種模式的工作方式,以及如何搭建cluster群集 主從復(fù)制是高可用Redis的基礎(chǔ),哨兵和集群都是在主從復(fù)制基礎(chǔ)上實現(xiàn)高可用的。主從復(fù)制主要實現(xiàn)了數(shù)據(jù)的多機(jī)備份,以及對于讀操作的負(fù)載均衡

    2024年02月09日
    瀏覽(24)
  • Redis 架構(gòu)深入:主從復(fù)制、哨兵到集群

    大家好,我是小康,今天我們來聊下 Redis 的幾種架構(gòu)模式,包括 主從復(fù)制、哨兵和集群模式 。 設(shè)想一下,你的咖啡館在城市中太受歡迎,導(dǎo)致每天都人滿為患。為了緩解這種壓力,你決定在其他地方開設(shè)分店,這樣顧客就可以在附近的分店享受咖啡,而不必涌向一個地方,

    2024年03月10日
    瀏覽(44)
  • redis復(fù)制和分區(qū):主從復(fù)制、哨兵模式和集群模式

    在 Redis 中,復(fù)制和分區(qū)是用于數(shù)據(jù)冗余和性能擴(kuò)展的關(guān)鍵特性。以下是主從復(fù)制、哨兵模式和集群模式的工作原理的簡要概述: 主從復(fù)制 (Replication) 基本概念 :Redis 的主從復(fù)制功能允許多個 Redis 服務(wù)器具有相同的數(shù)據(jù)副本。這在讀取操作的負(fù)載均衡、數(shù)據(jù)備份、災(zāi)難恢復(fù)等

    2024年01月20日
    瀏覽(25)
  • redis的主從復(fù)制,哨兵和cluster集群

    目錄 一、redis的高可用 1)redis高可用的概念 2)Redis的高可用技術(shù) 二、redis主從復(fù)制 1)主從復(fù)制的作用 2)主從復(fù)制流程 三、redis一主二從的部署 實驗組件 實驗步驟 環(huán)境準(zhǔn)備 修改內(nèi)核參數(shù) 安裝 Redis 創(chuàng)建redis工作目錄 環(huán)境變量 定義systemd服務(wù)管理腳本 修改 Redis 配置文件(

    2024年02月13日
    瀏覽(23)
  • Redis三種模式——主從復(fù)制,哨兵模式,集群

    Redis三種模式——主從復(fù)制,哨兵模式,集群

    目錄 一、主從復(fù)制 ?1.1主從復(fù)制的概念 ??1.2Redis主從復(fù)制作用 ?1.2.1數(shù)據(jù)冗余 ?1.2.2故障恢復(fù) ??1.2.3負(fù)載均衡 ?1.2.4高可用基石 ?1.3Redis主從復(fù)制流程 ???1.4部署Redis 主從復(fù)制 1.4.1.環(huán)境部署 ?1.4.2.所有服務(wù)器都先關(guān)閉防火墻 ?1.4.3.所有服務(wù)器都安裝Redis ?1.4.4修改Master主節(jié)點(diǎn)

    2024年02月14日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包