小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

從單點(diǎn) Redis 到 1 主 2 從 3 哨兵的架構(gòu)演進(jìn)之路

 昵稱10087950 2022-06-16 發(fā)布于江蘇

圖片

這是悟空的第 150 篇原創(chuàng)文章

官網(wǎng):www.passjava.cn

你好,我是悟空呀~

本文目錄如下:

  • 一、前言

  • 二、部署拓?fù)鋱D

  • 三、搭建 Redis 一主兩從

    • 1.1 備份和還原 Redis 鏡像

    • 1.2 主節(jié)點(diǎn)配置

    • 1.3 從節(jié)點(diǎn)配置

    • 1.4 啟動(dòng)容器

    • 1.5 查看 Redis 狀態(tài)

    • 1.6 測(cè)試主從復(fù)制

  • 四、搭建哨兵集群

    • 4.1 哨兵集群拓?fù)鋱D

    • 4.2 哨兵服務(wù)是怎么啟動(dòng)的

    • 4.3 哨兵配置

    • 4.4 啟動(dòng)哨兵容器

  • 五、客戶端自動(dòng)感知故障

    • 如何實(shí)現(xiàn)自動(dòng)感知故障

    • 客戶端自動(dòng)感知的原理

  • 六、遇到的問題

    • 6.1 提示不能寫只讀的 redis 節(jié)點(diǎn)

    • 6.2 提示連接 Redis 失敗

  • 七、總結(jié)

一、前言

我們有個(gè)項(xiàng)目中用的 MySQL、Redis、ES、微服務(wù)都是單節(jié)點(diǎn)部署的,沒有做集群模式部署,為了提高整體的可用性,對(duì)項(xiàng)目的部署架構(gòu)進(jìn)行了升級(jí),支持高可用。相關(guān)內(nèi)容可參考之前的兩篇:

MySQL 高可用篇

ELK Stack 篇

通過本篇,你可以學(xué)到以下內(nèi)容:

  • Redis 真實(shí)的多服務(wù)器部署實(shí)戰(zhàn)
  • Redis 真實(shí)的主從模式部署實(shí)戰(zhàn)。
  • Redis 真實(shí)的哨兵集群模式部署實(shí)戰(zhàn)。
  • Redis 主節(jié)點(diǎn)宕機(jī)后,Redis 哨兵如何進(jìn)行故障轉(zhuǎn)移的。
  • Redis 切換主節(jié)點(diǎn)后,客戶端如何自動(dòng)感知并連接新的主節(jié)點(diǎn)。

緩存實(shí)戰(zhàn)的文章寫了很多篇,把歷史文章匯總下,方便大家查看:

《緩存實(shí)戰(zhàn)(一)緩存初級(jí)打怪》

《緩存實(shí)戰(zhàn)(二)Redis分布式鎖》

《緩存實(shí)戰(zhàn)(三)Redisson 分布式鎖》

《緩存實(shí)戰(zhàn)(四)實(shí)戰(zhàn) Spring Cache

緩存實(shí)戰(zhàn)(五)Redis 開發(fā)手冊(cè) | 花果山版

《緩存實(shí)戰(zhàn)(六)詳解 Redis 冷備》

《緩存實(shí)戰(zhàn)(七)鏡 | 深入剖析主從架構(gòu)原理》

《緩存實(shí)戰(zhàn)(八)「手摸手」主從環(huán)境的部署+壓測(cè)》

二、部署拓?fù)鋱D

我們項(xiàng)目的測(cè)試環(huán)境 12 臺(tái)服務(wù)器已經(jīng)部署好了,其中三臺(tái)用來部署 Redis 的 一主 + 兩從 + 三哨兵的服務(wù)器。服務(wù)器資源清單如下:

圖片另外 Redis 的端口都是 6379,Sentinel(哨兵) 的端口都是 26379。

部署的拓?fù)鋱D如下,三臺(tái)服務(wù)器上都部署了一個(gè)哨兵。圖片

三、搭建 Redis 一主兩從

我們?cè)瓉淼膯吸c(diǎn)的服務(wù)器上是有運(yùn)行的 Redis 容器的,把這個(gè)容器的鏡像打包備份下,然后拷貝和還原到新的服務(wù)器上就好了。

搭建 Redis 一主兩從的步驟如下:

  • 拷貝和還原 Redis 鏡像到三臺(tái)服務(wù)器上。
  • 其中一臺(tái)服務(wù)器作為主節(jié)點(diǎn),配置文件為主節(jié)點(diǎn)的,用 docker 啟動(dòng) Redis 主節(jié)點(diǎn)。
  • 另外兩臺(tái)服務(wù)器作為從節(jié)點(diǎn),配置文件為從節(jié)點(diǎn)的,用 docker 啟動(dòng)兩個(gè) Redis 從節(jié)點(diǎn)。
  • 進(jìn)入到主節(jié)點(diǎn)和從節(jié)點(diǎn)容器中,查看主從復(fù)制狀態(tài)。

1.1 備份和還原 Redis 鏡像

打包測(cè)試環(huán)境的 Redis 鏡像,這個(gè)命令會(huì)將服務(wù)器上 redis 鏡像打包成 tar 包,這樣我們就方便拷貝到其他服務(wù)器上了。執(zhí)行打包鏡像命令:

sudo docker save -o redis.tar redis:0.1

因?yàn)楸4娴?tar 包權(quán)限不夠,所以設(shè)置下權(quán)限為 777。執(zhí)行修改權(quán)限的命令:

sudo chmod 777 redis.tar

將這個(gè) tar 包拷貝新環(huán)境的三臺(tái)服務(wù)器上。執(zhí)行導(dǎo)入鏡像的命令:

sudo docker load -i redis.tar

添加配置文件 redis.conf 放在本地,作為 redis 容器的配置文件。這個(gè)文件也可以在 redis 官網(wǎng)下載 https:///。redis.conf 文件放到 /home/redis 目錄下。

sudo mkdir /home/redis

1.2 主節(jié)點(diǎn)配置

修改本地的 redis.conf 文件:

requirepass abc123
masterauth abc123

requirepassmasterauth:對(duì)于數(shù)據(jù)比較重要的節(jié)點(diǎn),主節(jié)點(diǎn)會(huì)通過設(shè)置requirepass參數(shù)進(jìn)行密碼 驗(yàn)證,這時(shí)所有的客戶端訪問必須使用auth命令實(shí)行校驗(yàn)。從節(jié)點(diǎn)與主節(jié)點(diǎn) 的復(fù)制連接是通過一個(gè)特殊標(biāo)識(shí)的客戶端來完成,因此需要配置從節(jié)點(diǎn)的 masterauth參數(shù)與主節(jié)點(diǎn)密碼保持一致,這樣從節(jié)點(diǎn)才可以正確地連接到主 節(jié)點(diǎn)并發(fā)起復(fù)制流程。

1.3 從節(jié)點(diǎn)配置

slave-read-only yes
requirepass abc123
masterauth abc123
slaveof 10.2.1.61 6379

1.4 啟動(dòng)容器

需要注意的是需要映射本地文件夾。

sudo docker run -p 6379:6379 --restart=always --name redis \
-v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf \
-v /home/redisdata:/data/ \
-d 301

-v 代表映射的文件或文件夾,這里映射了 redis.conf 文件和 data 目錄。data 目錄會(huì)存放 Redis 的 AOFRDB 持久化文件。

-d 表示后臺(tái)運(yùn)行,46b 代表鏡像 id。因?yàn)槲覀兎?wù)器是沒有外網(wǎng)的,所以用的是本地鏡像啟動(dòng)的,如果你的服務(wù)器有外網(wǎng),完全可以用官網(wǎng)的 redis 鏡像啟動(dòng)。

1.5 查看 Redis 狀態(tài)

進(jìn)入容器,連接 redis,node1的 redis 密碼是 abc123

# 查詢?nèi)萜?nbsp;id
docker ps

# 進(jìn)入 mysql 容器
docker exec -it <容器 id> /bin/bash

# 連接 redis
redis-cli -h localhost -p 6379 -a abc123

# 查看復(fù)制信息 
info replication

只啟動(dòng) node1 時(shí)查看 redis 復(fù)制信息

圖片

可以看到 role:master 信息,代表當(dāng)前節(jié)點(diǎn)作為主節(jié)點(diǎn)。

connected_slaves:0 代表連接的從節(jié)點(diǎn)為 0 個(gè)。

當(dāng)三個(gè)節(jié)點(diǎn)的 redis 容器都啟動(dòng)后,再次查看主節(jié)點(diǎn)的復(fù)制信息。發(fā)現(xiàn)有 connected_slaves:2 有兩個(gè)從節(jié)點(diǎn)連上了。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-QPHj8Ohi-1654673955923)(../../images/image-20220608111236463.png)]

然后我們進(jìn)入到從節(jié)點(diǎn)容器,查看從節(jié)點(diǎn)的復(fù)制信息。

發(fā)現(xiàn) role:slave,說明此節(jié)點(diǎn)作為從節(jié)點(diǎn)。

master_host:10.2.1.61,說明了主節(jié)點(diǎn)的 IP 是 10.2.1.61。

圖片

1.6 測(cè)試主從復(fù)制

我們可以用 Redis Desktop 工具測(cè)試主從數(shù)據(jù)是否一致。在主節(jié)點(diǎn)中寫入 abc=當(dāng)前時(shí)間,發(fā)現(xiàn)另外兩個(gè)從節(jié)點(diǎn)也同步了這個(gè)數(shù)據(jù),說明主從復(fù)制成功。

圖片

四、搭建哨兵集群

4.1 哨兵集群拓?fù)鋱D

三臺(tái)機(jī)器上分別部署三個(gè)哨兵服務(wù)。部署拓?fù)鋱D如下所示:

圖片

4.2 哨兵服務(wù)是怎么啟動(dòng)的

其實(shí)哨兵服務(wù)也是用 Redis 容器啟動(dòng)的,只是用的不同命令的啟動(dòng)的。

我們可以在 redis 容器中執(zhí)行如下命令啟動(dòng)哨兵服務(wù)。

redis-sentinel /usr/local/etc/redis/sentinel.conf

因?yàn)槲覀兪峭ㄟ^ docker 啟動(dòng)的,所以在啟動(dòng) docker 容器時(shí),帶上這個(gè)命令參數(shù)就可以啟動(dòng)哨兵服務(wù)了,就不用到容器里面執(zhí)行這個(gè)命令了。

4.3 哨兵配置

首先創(chuàng)建兩個(gè)映射文件:sentinel.conf 和 sentinel-26379.log,第一個(gè)是配置哨兵參數(shù)的,第二個(gè)文件是哨兵的日志文件,這兩個(gè)文件都會(huì)在啟動(dòng) redis 容器時(shí),映射到容器中,方便我們修改配置以及查看日志。

sentinel.conf 這個(gè)配置文件可以從官方的 redis 安裝包中拷貝,也可以自己創(chuàng)建一個(gè)配置文件,修改幾個(gè)參數(shù)就可以了。可以直接拷貝我的配置。

mkdir /home/redis
vim /home/redis/sentinel.conf

配置內(nèi)容如下:

# sentile 端口
port 26379
# 是否在后臺(tái)啟動(dòng),默認(rèn)為 no,注意這里需要設(shè)置為 no,否則容器啟動(dòng)不起來。
daemonize no
pidfile /var/run/redis-sentinel.pid
# 日志文件
logfile /var/log/sentinel-26379.log
# 工作目錄
dir /tmp
# 監(jiān)控 redis 的 IP 和端口,這里監(jiān)控的 redis 的主節(jié)點(diǎn)
sentinel monitor mymaster 10.2.1.61 6379 2
# down-after-milliseconds:每個(gè) Sentinel節(jié)點(diǎn)都要通過定期發(fā)送 ping 命令來判斷Redis數(shù)據(jù)節(jié)點(diǎn)和其 余Sentinel節(jié)點(diǎn)是否可達(dá),如果超過了down-after-milliseconds配置的時(shí)間且沒 有有效的回復(fù),則判定節(jié)點(diǎn)不可達(dá),<times>(單位為毫秒)就是超時(shí)時(shí) 間。這個(gè)配置是對(duì)節(jié)點(diǎn)失敗判定的重要依據(jù)。對(duì) Sentinel節(jié)點(diǎn)、主節(jié)點(diǎn)、從節(jié)點(diǎn)的失敗判定同時(shí)有效。
sentinel down-after-milliseconds mymaster 30000
# parallel-syncs 就是用來限制在一次故障轉(zhuǎn)移之后,每次向新的主節(jié) 點(diǎn)發(fā)起復(fù)制操作的從節(jié)點(diǎn)個(gè)數(shù)。
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移超時(shí)時(shí)間
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
# 當(dāng) redis 主從復(fù)制配置了密碼的話,則需要在這里配置密碼
sentinel auth-pass mymaster WHredis2020!
  • daemonize:是否在后臺(tái)啟動(dòng),默認(rèn)為 no,注意這里需要設(shè)置為 no,否則容器啟動(dòng)不起來。

  • logfile:日志文件,哨兵監(jiān)控和故障轉(zhuǎn)移的日志都會(huì)存到這個(gè)日志里面。

  • sentinel monitor mymaster:監(jiān)控 redis 的 IP 和端口,這里監(jiān)控的 redis 的主節(jié)點(diǎn)。

  • down-after-milliseconds:每個(gè) Sentinel節(jié)點(diǎn)都要通過定期發(fā)送 ping 命令來判斷Redis數(shù)據(jù)節(jié)點(diǎn)和其 余Sentinel節(jié)點(diǎn)是否可達(dá),如果超過了down-after-milliseconds配置的時(shí)間且沒 有有效的回復(fù),則判定節(jié)點(diǎn)不可達(dá),(單位為毫秒)就是超時(shí)時(shí)間。這個(gè)配置是對(duì)節(jié)點(diǎn)失敗判定的重要依據(jù)。對(duì) Sentinel節(jié)點(diǎn)、主節(jié)點(diǎn)、從節(jié)點(diǎn)的失敗判定同時(shí)有效。

  • parallel-syncs:就是用來限制在一次故障轉(zhuǎn)移之后,每次向新的主節(jié) 點(diǎn)發(fā)起復(fù)制操作的從節(jié)點(diǎn)個(gè)數(shù)。

  • failover-timeout:故障轉(zhuǎn)移超時(shí)時(shí)間。

  • auth-pass:當(dāng) redis 主從復(fù)制配置了密碼的話,則需要在這里配置密碼。

首先在本地創(chuàng)建日志文件用來存放哨兵日志。

mkdir /home/redis/sentinel
vim /home/redis/sentinel/sentinel-26379.log

4.4 啟動(dòng)哨兵容器

4.4.1 啟動(dòng)一個(gè) sentinel 容器

docker run --name mysentinel1 --restart=always -p 26379:26379 \
-v /home/redis/sentinel.conf:/usr/local/etc/redis/sentinel.conf \
-v /home/redis/sentinel/sentinel-26379.log:/var/log/sentinel-26379.log \
-d 9a2f \
redis-sentinel /usr/local/etc/redis/sentinel.conf
  • --name mysentinel1,指定哨兵容器的名稱為 mysentinel1。
  • --restart=always,重啟機(jī)器后,自動(dòng)重啟容器。
  • -v,掛載哨兵配置文件和日志文件。

這里的 -d 9a2f 是 本地的 redis 容器 id,因?yàn)楸緳C(jī)沒有網(wǎng)絡(luò),所以這個(gè)鏡像是從其他有網(wǎng)絡(luò)的機(jī)器加載進(jìn)來的。如果你們的機(jī)器有網(wǎng)絡(luò),完全可以用 -d redis 參數(shù)替換,也就是使用最新的 redis 鏡像來啟動(dòng) sentinel。

查看啟動(dòng)的容器,第一個(gè)是哨兵容器,名字是 mysentinel1, 第二個(gè)是 redis 容器,名字是 redis。如下圖所示:

圖片

當(dāng)在三臺(tái)服務(wù)器上分別啟動(dòng) Redis 哨兵后,查看哨兵日志文件 sentinel-26379.log。

圖片

打印出了 Redis 的當(dāng)前版本(5.0.14),運(yùn)行模式(哨兵模式),端口號(hào) 26379,哨兵 id,監(jiān)控的 Redis 中的主節(jié)點(diǎn),兩個(gè) Redis 從節(jié)點(diǎn)和一個(gè)主節(jié)點(diǎn)的 IP 和 端口。

而且當(dāng)我們?nèi)ゲ榭?Sentinel 配置文件時(shí),發(fā)現(xiàn)配置文件中的內(nèi)容發(fā)生了變化,在文件末尾追加了以下內(nèi)容,含義就是 Sentinel 自動(dòng)發(fā)現(xiàn)了其他 Redis 從節(jié)點(diǎn)圖片

4.4.2 啟動(dòng)第二個(gè)容器

執(zhí)行以下命令啟動(dòng)第二個(gè)容器:

docker run --name mysentinel2 --restart=always -p 26379:26379 \
-v /home/redis/sentinel.conf:/usr/local/etc/redis/sentinel.conf \
-v /home/redis/sentinel/sentinel-26379.log:/var/log/sentinel-26379.log \
-d 9a2f \
redis-sentinel /usr/local/etc/redis/sentinel.conf
圖片

4.4.3 啟動(dòng)第三個(gè)容器

執(zhí)行以下命令啟動(dòng)第三個(gè)容器:

docker run --name mysentinel3 --restart=always -p 26379:26379 \
-v /home/redis/sentinel.conf:/usr/local/etc/redis/sentinel.conf \
-v /home/redis/sentinel/sentinel-26379.log:/var/log/sentinel-26379.log \
-d 9a2f \
redis-sentinel /usr/local/etc/redis/sentinel.conf

4.4.4 驗(yàn)證 Redis 主從切換

停掉主節(jié)點(diǎn)的 redis 容器后,進(jìn)入到第二個(gè)哨兵容器中,執(zhí)行以下命令查看哨兵的狀態(tài):

redis-cli -h 127.0.0.1 -p 26379 info Sentinel 

發(fā)現(xiàn)主節(jié)點(diǎn)的 IP 已經(jīng)從 10.2.1.61 切換為從節(jié)點(diǎn)的 IP(10.2.1.63)了。

圖片

進(jìn)入到第二個(gè) redis 容器中,查看同步狀態(tài)。主節(jié)點(diǎn)的 IP 也是 10.2.1.63圖片

查看第三個(gè)哨兵的日志,可以看到哨兵通過以下步驟進(jìn)行了主從切換。圖片

重要的步驟說明如下:

  • 主觀宕機(jī)+sdown 表示當(dāng)前哨兵認(rèn)為這個(gè) Redis 節(jié)點(diǎn)(10.2.1.61)宕機(jī)了。
  • 客觀宕機(jī),+odown 表示有幾個(gè)哨兵認(rèn)為這個(gè) Redis 節(jié)點(diǎn)(10.2.1.61)宕機(jī)了。看到的 quorun 4/2,表示有 4 個(gè)哨兵認(rèn)為 Redis 節(jié)點(diǎn)宕機(jī)了,大于設(shè)置的 2,所以這個(gè) Redis 節(jié)點(diǎn)是真的宕機(jī)了。(這里為什么是 4,而不是哨兵數(shù) 3,筆者也沒有弄清楚,歡迎留言討論。)
  • 投票選舉新的哨兵 Leader,三個(gè)哨兵都將票投給了 id = 2abxxx 的哨兵,也就是第三個(gè)哨兵節(jié)點(diǎn),將由這個(gè)哨兵進(jìn)行主從切換。
  • 開始故障轉(zhuǎn)移,failover-state-select-slave 表示要轉(zhuǎn)移哪個(gè)故障節(jié)點(diǎn)。這里就是切換主節(jié)點(diǎn)。
  • 選出主節(jié)點(diǎn)為第三個(gè) Redis 節(jié)點(diǎn)(10.2.1.63)。
  • 切換主節(jié)點(diǎn)為第三個(gè) Redis 節(jié)點(diǎn)(10.2.1.63)。

說明哨兵集群模式下對(duì) Redis 的狀態(tài)監(jiān)控和主從切換成功。

五、客戶端自動(dòng)感知故障

如何實(shí)現(xiàn)自動(dòng)感知故障

我們項(xiàng)目中,都是用 Redis 客戶端去讀寫 Redis,在單機(jī)情況下,單節(jié)點(diǎn) Redis 宕機(jī)后,客戶端肯定會(huì)報(bào)錯(cuò),我們可以嘗試恢復(fù)這個(gè)服務(wù)器上的 Redis 就好了。

但是我們現(xiàn)在是有多個(gè) Redis 節(jié)點(diǎn)的,應(yīng)用程序該如何配置呢?

可能的思路是這樣:應(yīng)用程序配置主節(jié)點(diǎn)的 IP 地址和端口。缺點(diǎn):主節(jié)點(diǎn)切換后,需要改配置并重啟應(yīng)用。

那有沒有一種方案是自動(dòng)感知到 Redis 宕機(jī)后,連接到新的主節(jié)點(diǎn)的呢?

有的,我們加下 Redis 的哨兵配置就可以了。配置內(nèi)容如下所示:

spring:
  redis:
    database: 0
    password: abc123   # 密碼(默認(rèn)為空)
    timeout: 10000  # 連接超時(shí)時(shí)長(zhǎng)(毫秒)
    sentinel: #哨兵模式
      master: mymaster #主服務(wù)器所在集群名稱
      nodes: 10.2.1.63:26379,10.2.1.62:26379,10.2.1.61:26379

配置好了后,重啟應(yīng)用程序,然后停掉 Redis 主節(jié)點(diǎn)的容器。測(cè)試往 redis 寫入數(shù)據(jù),程序會(huì)報(bào)錯(cuò)。

寫入數(shù)據(jù)的代碼:

stringRedisTemplate.opsForValue()
  .setIfAbsent(key, toJson(value), 
     millisecond, TimeUnit.MILLISECONDS);

報(bào)錯(cuò)信息如下:

nested exception is redis.clients
  .jedis.exceptions.JedisConnectionException: 
     Unexpected end of stream.

因?yàn)楣收限D(zhuǎn)移是需要一定時(shí)間的,過幾秒后后發(fā)現(xiàn)控制臺(tái)窗口打印出 Redis 的主節(jié)點(diǎn)為 10.2.1.63:6379,說明故障轉(zhuǎn)移成功了。

圖片
[MasterListener-mymaster-[10.2.1.61:26379]] 
  INFO  redis.clients.jedis.JedisSentinelPool 
    -Created JedisPool to master at 
      10.2.1.63:6379

再次測(cè)試讀寫 Redis,都是正常的,且往第三個(gè)節(jié)點(diǎn)寫入數(shù)據(jù)后,第二個(gè)節(jié)點(diǎn)也進(jìn)行了主從復(fù)制。

客戶端自動(dòng)感知的原理

我們項(xiàng)目中用的 Jedis 客戶端,它有一個(gè)連接池 JedisPool,當(dāng)訪問 Redis 時(shí),會(huì)從連接池里面獲取一個(gè)連接。我們看下這個(gè)連接池里面的信息。如下圖所示:

圖片
  • masterListeners 代表對(duì)三個(gè) Redis 節(jié)點(diǎn)的監(jiān)聽器。里面指定了 Redis 節(jié)點(diǎn)的 IP 和 Port。

  • currentHostMaster 代表當(dāng)前連接的主節(jié)點(diǎn)。目前為第三個(gè)節(jié)點(diǎn)。

當(dāng)我們停掉 Redis 主節(jié)點(diǎn)后,哨兵會(huì)切換主節(jié)點(diǎn),這個(gè)連接池里面的 currentHostMaster 也會(huì)被更新為新的主節(jié)點(diǎn)。當(dāng)我們?cè)俅卧L問 Redis 時(shí),會(huì)和新的主節(jié)點(diǎn)建立連接。

六、遇到的問題

6.1 提示不能寫只讀的 redis 節(jié)點(diǎn)

READONLY You can't write against a read only replica.;

解決方案:每個(gè)哨兵都需要配置成監(jiān)控主節(jié)點(diǎn) node1 的 IP。

6.2 提示連接 Redis 失敗

ERR Client sent AUTH, but no password is set

解決方案:主從節(jié)點(diǎn)都需要配置 requirepass  和 masterauth。

七、總結(jié)

本篇講解了在真實(shí)的多臺(tái)服務(wù)器上如何部署 Redis 主從架構(gòu)、哨兵集群,以及驗(yàn)證主從復(fù)制和故障轉(zhuǎn)移。

然后對(duì)項(xiàng)目中使用 Redis 的地方,加入了哨兵配置,使其可以自動(dòng)感知主從切換后的 IP 變化,從而和新的 Redis 主節(jié)點(diǎn)進(jìn)行連接。

Redis Cluster 集群模式并沒有涉及到,大家有沒有興趣呢~~

您可能錯(cuò)過了以下內(nèi)容:

《緩存實(shí)戰(zhàn)(一)緩存初級(jí)打怪》

《緩存實(shí)戰(zhàn)(二)Redis分布式鎖》

《緩存實(shí)戰(zhàn)(三)Redisson 分布式鎖》

《緩存實(shí)戰(zhàn)(四)實(shí)戰(zhàn) Spring Cache》

《緩存實(shí)戰(zhàn)(五)Redis 開發(fā)手冊(cè) | 花果山版》

《緩存實(shí)戰(zhàn)(六)詳解 Redis 冷備》

《緩存實(shí)戰(zhàn)(七)鏡 | 深入剖析主從架構(gòu)原理》

《緩存實(shí)戰(zhàn)(八)「手摸手」主從環(huán)境的部署+壓測(cè)》

- END -

我是悟空,努力變強(qiáng),變身超級(jí)賽亞人!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多