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

圖解Redis,Redis主從復(fù)制與Redis哨兵機(jī)制

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

redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

專欄導(dǎo)讀

??作者簡介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多屆新星計(jì)劃導(dǎo)師?、博客專家?? ,專注Java硬核干貨分享,立志做到Java賽道全網(wǎng)Top N。

??本文收錄于Java基礎(chǔ)教程系列(進(jìn)階篇),本專欄是針對(duì)大學(xué)生、初級(jí)Java工程師精心打造,針對(duì)Java生態(tài),逐個(gè)擊破,不斷學(xué)習(xí),打通Java技術(shù)棧。

??訂閱后,可以閱讀Java基礎(chǔ)教程系列(進(jìn)階篇)中全部文章包含Java基礎(chǔ)、Java高并發(fā)、Spring、MySQL等Java進(jìn)階技術(shù)棧。

??還可以訂閱其姐妹篇,Java基礎(chǔ)教程系列,包含全部Java基礎(chǔ)知識(shí)點(diǎn)、Java8新特性、Java集合、Java多線程、Java代碼實(shí)例,理論結(jié)合實(shí)戰(zhàn),實(shí)現(xiàn)Java的輕松學(xué)習(xí)。

??哪吒多年工作總結(jié):Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師。

??面試福音:10萬字208道Java經(jīng)典面試題總結(jié)(附答案)

大家好,我是哪吒。

上一篇分享了2023年再不會(huì)Redis,就要被淘汰了,完成了Redis的初體驗(yàn)。

今天分享一下Redis的持久化、事務(wù)、管道相關(guān)的知識(shí)點(diǎn),實(shí)現(xiàn)快速入門,豐富個(gè)人簡歷,提高面試level,給自己增加一點(diǎn)談資,秒變面試小達(dá)人,BAT不是夢。
redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

一、Redis復(fù)制是什么?

Redis復(fù)制就是主從復(fù)制,當(dāng)主服務(wù)器數(shù)據(jù)發(fā)生變化時(shí),自動(dòng)將新的數(shù)據(jù)同步到從數(shù)據(jù)庫。

讀數(shù)據(jù)庫可以進(jìn)行讀寫操作,從數(shù)據(jù)庫一般指用于讀操作。

Redis復(fù)制可以保證主數(shù)據(jù)庫崩潰時(shí)可以進(jìn)行數(shù)據(jù)恢復(fù)。

二、Redis復(fù)制能干嘛?

  1. 讀寫分離
  2. 容災(zāi)恢復(fù)
  3. 數(shù)據(jù)備份
  4. 水平擴(kuò)容支撐高并發(fā)

三、Redis復(fù)制的缺點(diǎn)

1、復(fù)制延遲

由于所有的寫操作都發(fā)生在master數(shù)據(jù)庫,然后同步到slave數(shù)據(jù)庫中,所以會(huì)有一定的數(shù)據(jù)延遲,當(dāng)系統(tǒng)負(fù)擔(dān)過重時(shí),延遲越大,slave機(jī)器的增加也會(huì)增加數(shù)據(jù)延遲的時(shí)間。

2、master宕機(jī)

如果master宕機(jī)了,默認(rèn)情況下不會(huì)將salve數(shù)據(jù)庫自動(dòng)升級(jí)為master數(shù)據(jù)庫。

四、樂觀復(fù)制策略

Redis采用樂觀復(fù)制策略,容忍一段時(shí)間內(nèi)主從數(shù)據(jù)庫不一致,但保證最終一致性。這個(gè)策略保證了性能,在復(fù)制的時(shí)候,主數(shù)據(jù)庫不會(huì)阻塞,可以繼續(xù)提供服務(wù)。

五、Redis復(fù)制常用命令

1、info replication

查看節(jié)點(diǎn)的主從關(guān)系和配置信息。

2、replicaof 主庫Ip 主庫port

在從數(shù)據(jù)庫的redis.conf中配置。

3、slaveof 主庫IP 主庫port

在運(yùn)行期間修改slave節(jié)點(diǎn)的信息,如果該數(shù)據(jù)庫已經(jīng)是其它主數(shù)據(jù)庫的從數(shù)據(jù)庫了,那么它會(huì)停止與其的主從關(guān)系,轉(zhuǎn)而成為新配置的主庫的從數(shù)據(jù)庫。

4、slaveof no one

使當(dāng)前數(shù)據(jù)庫停止與其它數(shù)據(jù)庫的同步,升級(jí)為主數(shù)據(jù)庫。

六、Redis復(fù)制工作流程

1、slave啟動(dòng)成功后,會(huì)連接master數(shù)據(jù)庫,發(fā)送一個(gè)sync命令,同步數(shù)據(jù);如果是第一次連接,則會(huì)進(jìn)行一次全量復(fù)制,slave自身的數(shù)據(jù)會(huì)被master數(shù)據(jù)覆蓋清除;

2、master數(shù)據(jù)庫收到sync命令后,通過RDB開始保存快照,同時(shí)將所有接收到的用于修改數(shù)據(jù)庫的命令緩存起來,master數(shù)據(jù)庫執(zhí)行完RDB持久化后,master將RBD文件和所有緩存的命令發(fā)送到所有的slave數(shù)據(jù)庫,完成一次數(shù)據(jù)同步;

3、slave收到RDB文件和命令緩存后,將其加載到內(nèi)存中,從而完成復(fù)制初始化;

4、repl-ping-replica-period 10,表示master發(fā)出ping包的周期默認(rèn)是10秒;

5、完成首次數(shù)據(jù)全量同步后,master繼續(xù)將新的收集到的修改命令定期傳給slave數(shù)據(jù)庫,完成數(shù)據(jù)同步;

6、如果從機(jī)重啟了,master的backlog中會(huì)記錄offset,master會(huì)將offset后面的數(shù)據(jù)復(fù)制給slave。

7187:C 14 Mar 22:14:24.106 # nzbc Redis is starting nzbc
7187:C 14 Mar 22:14:24.107 # Redis version=6.0.8, bits=64, commit=00000000, modified=0, pid=7187, just started
7187:C 14 Mar 22:14:24.108 # Configuration loaded
7188:S 14 Mar 22:14:24.110 * Increased maximum number of open files to 10032 (it was originally set to 256).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 6.0.8 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6380
 |    `-._   `._    /     _.-'    |     PID: 7188
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

7188:S 14 Mar 22:14:24.120 # Server initialized
7188:S 14 Mar 22:14:24.114 * DB loaded from disk: 0.000 seconds
7188:S 14 Mar 22:14:24.122 * Before turning into a slave, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
7188:S 14 Mar 22:14:24.122 * Ready to accept connections
7188:S 14 Mar 22:14:24.123 * Connecting to MASTER 127.0.0.1:6379
7188:S 14 Mar 22:14:24.123 * MASTER <-> SLAVE sync started
7188:S 14 Mar 22:14:24.123 * Non blocking connect for SYNC fired the event.
7188:S 14 Mar 22:14:24.124 * Master replied to PING, replication can continue...
7188:S 14 Mar 22:14:24.124 * Trying a partial resynchronization (request 9b3cs5w9g6x3004fa9a0999361035b71ecf70ab4:30783).
7188:S 14 Mar 22:14:24.130 * Full resync from master: cb4as85df693ad62f09ce4f486e0d43ec8f36334:0
7188:S 14 Mar 22:14:24.130 * Discarding previously cached master state.
7188:S 14 Mar 22:14:24.163 * MASTER <-> SLAVE sync: receiving 5484 bytes from master
7188:S 14 Mar 22:14:24.165 * MASTER <-> SLAVE sync: Flushing old data
7188:S 14 Mar 22:14:24.165 * MASTER <-> SLAVE sync: Loading DB in memory
7188:S 14 Mar 22:14:24.167 * MASTER <-> SLAVE sync: Finished with success

七、Redis哨兵是什么?

Redis提供了哨兵sentinel機(jī)制來監(jiān)控Redis的性能,如果主數(shù)據(jù)庫宕機(jī)了,根據(jù)投票數(shù)自動(dòng)將某一個(gè)從數(shù)據(jù)庫提升為主數(shù)據(jù)庫,繼續(xù)對(duì)外提供服務(wù)。

1、Redis哨兵的作用

redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

  1. 主從監(jiān)控,監(jiān)控主從數(shù)據(jù)庫是否運(yùn)行正常;
  2. 消息通知,哨兵可以將故障信息發(fā)送給客戶端;
  3. 故障轉(zhuǎn)移,如果master異常。哨兵會(huì)進(jìn)行主備切換,將其中一個(gè)slave轉(zhuǎn)為master;
  4. 配置中心,客戶端通過連接哨兵獲取Redis服務(wù)集群的主節(jié)點(diǎn)信息;

2、使用哨兵的注意事項(xiàng):

redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

八、實(shí)戰(zhàn)演練

1、搭建3個(gè)哨兵服務(wù)器

監(jiān)控Redis主從服務(wù)器,不存放數(shù)據(jù)。
redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

2、sentinel.conf參數(shù)選項(xiàng)說明

bind 0.0.0.0
daemonize yes
protected-mode no
port 6391
logfile "/myredis/sentinel1.log"
pidfile /var/run/redis-sentinel6391.pid
dir /myredis
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456

redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

設(shè)置要監(jiān)控的master服務(wù)器,quorum表示至少有幾個(gè)哨兵認(rèn)為客觀下線,同意故障轉(zhuǎn)移的法定票數(shù),因此哨兵服務(wù)器一般為奇數(shù)個(gè)。

sentinel monitor <master-name> 127.0.0.1 6379 <quorum>。

master服務(wù)器設(shè)置了密碼:

sentinel auth-pass <master-name> <password>

通過命令,完成哨兵sentinel的啟動(dòng),兩種方式,任選其一:

  1. redis-sentinel /path/to/sentinel.conf
  2. redis-server /path/to/sentinel.conf --sentinel

九、哨兵運(yùn)行流程和選舉原理

當(dāng)一個(gè)主從配置中的master失效后,sentinel會(huì)選舉出一個(gè)新的master用于接替原master的工作,其它slave服務(wù)器自動(dòng)指向新master,實(shí)現(xiàn)數(shù)據(jù)同步。

1、主觀下線

指定多少毫秒之后,主節(jié)點(diǎn)沒有應(yīng)答哨兵,此時(shí)哨兵會(huì)主觀上認(rèn)為主節(jié)點(diǎn)已經(jīng)下線。

sentinel down-after-millisecnds <master-name> <millisecnds>

2、客觀下線

多個(gè)哨兵sentinel進(jìn)行投票,根據(jù)投票結(jié)果才能確認(rèn)一個(gè)master客觀上已經(jīng)宕機(jī)。

3、選舉master三步走:

(1)先選出一個(gè)master服務(wù)器

redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

當(dāng)master數(shù)據(jù)庫宕機(jī)后,各個(gè)哨兵sentinel節(jié)點(diǎn)會(huì)進(jìn)行協(xié)商,先通過Raft算法選舉出一個(gè)領(lǐng)導(dǎo)者哨兵節(jié)點(diǎn),再由領(lǐng)導(dǎo)者進(jìn)行master的選舉。

  1. 根據(jù)Redis.conf中,優(yōu)先級(jí)slave-priority或者replica-priority最高的從節(jié)點(diǎn)(數(shù)字越小優(yōu)先級(jí)越高)。
  2. 復(fù)制偏移位置offset最大的從節(jié)點(diǎn);
  3. 最小Run ID的從節(jié)點(diǎn)

(2)其它slave服務(wù)器連接到master服務(wù)器

執(zhí)行slaveof no one命令會(huì)選舉出新的master,并通過slaveof命令將其它從節(jié)點(diǎn)成為新master服務(wù)器的從節(jié)點(diǎn)。

(3)如果舊master服務(wù)器恢復(fù)正常了,也要成為新master服務(wù)器的slave從服務(wù)器。

redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式
redis一主一從哨兵結(jié)構(gòu)圖,redis,java,數(shù)據(jù)庫,分布式

Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師

10萬字208道Java經(jīng)典面試題總結(jié)(附答案)

Java基礎(chǔ)教程系列

Java基礎(chǔ)教程系列(進(jìn)階篇)文章來源地址http://www.zghlxwxcb.cn/news/detail-799795.html

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

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(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】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日
    瀏覽(23)
  • 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日
    瀏覽(27)
  • Redis---主從復(fù)制 & 哨兵

    Redis---主從復(fù)制 & 哨兵

    目錄 一、主從復(fù)制 1、什么是主從復(fù)制呢? 2、案例演示? 2.1? 配置文件?? 2.2? ?一主二仆 2.2.1 相關(guān)題目: 2.3? 薪火相傳? ? 反客為主 3、復(fù)制原理和工作流程 3.1、slave啟動(dòng),同步清初 3.2? 首次連接,全量復(fù)制 3.3? 心跳持續(xù),保持通信(和TCP的心跳數(shù)據(jù)包很像) ?3.4? 進(jìn)入

    2024年02月05日
    瀏覽(28)
  • Redis主從復(fù)制、哨兵實(shí)戰(zhàn)

    Redis主從復(fù)制、哨兵實(shí)戰(zhàn)

    環(huán)境:linux centos7.x ,虛擬機(jī)3臺(tái) 版本:redis-6.2.6 1.下載安轉(zhuǎn)redis 下載地址 wget https://download.redis.io/releases/redis-6.2.6.tar.gz 解壓?tar -zxvf redis-6.2.6.tar.gz 移動(dòng)目錄?mv redis-6.2.6 /usr/local/redis 編譯???cd /usr/local/redis? ? ? ? ?make install PREFIX=/usr/local/redis 2.修改配置文件 redis.conf ?修改為

    2024年02月03日
    瀏覽(19)
  • 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)
  • 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ù)制、哨兵、集群

    在web服務(wù)器中,高可用是指服務(wù)器可以正常訪問的時(shí)間,衡量的標(biāo)準(zhǔn)是在多長時(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日
    瀏覽(21)
  • 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日
    瀏覽(21)
  • Redis——主從復(fù)制+集群搭建(非哨兵)

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

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

    2024年02月12日
    瀏覽(28)
  • 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)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包