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

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

這篇具有很好參考價(jià)值的文章主要介紹了Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

0、引言

? ? ? ? 單機(jī)式Redis存在以下問(wèn)題,因此需要Redis集群化來(lái)解決這些問(wèn)題

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用


1、持久化

1.1 RDB(Redis Database Backup file )持久化

???????Redis數(shù)據(jù)快照,簡(jiǎn)單來(lái)說(shuō)就是把內(nèi)存中的所有數(shù)據(jù)都記錄到磁盤中。當(dāng)Redis實(shí)例故障重啟后,從磁盤讀取快照文件,恢復(fù)數(shù)據(jù)??煺瘴募Q為RDB文件,默認(rèn)是保存在當(dāng)前運(yùn)行目錄。 ??

?(1)執(zhí)行方法:

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

?(2)原理

? ? ? ? 著重比較一下save命令與bgsave:
? ? ? ? save會(huì)阻塞所有命令,因?yàn)閭浞莸倪^(guò)程不允許更改。
????????而bgsave不會(huì)阻塞其他命令、是通過(guò)fork一個(gè)子線程共享數(shù)據(jù),然后讀取內(nèi)存數(shù)據(jù)并寫入 RDB 文件,如果主線程此時(shí)進(jìn)行寫操作,則會(huì)拷貝一份數(shù)據(jù)出來(lái)執(zhí)行寫操作。

? ? ? ? 個(gè)人理解,這個(gè)Redis的RDB文件類似于Mysql里的Redo日志,存的是數(shù)據(jù)。

1.2 AOF(Append Only File )持久化?

(1)AOF持久化原理

? ? ? ? 與RDB相對(duì)的,AOF并不是直接將數(shù)據(jù)存入磁盤進(jìn)行持久化保存,
????????而是通過(guò)將每一個(gè)寫命令記錄在AOF文件中實(shí)現(xiàn)持久化。個(gè)人理解,就很類似于Mysql的Binlog日志,記錄的是具體的語(yǔ)句操作。

? ? ? ? 例如,set num 123這一步操作,AOF就會(huì)記錄相應(yīng)的操作語(yǔ)句。

? ? ? ? 其刷盤頻率的規(guī)定如下:?通過(guò)redis.conf文件進(jìn)行配置:

# 表示每執(zhí)行一次寫命令,立即記錄到AOF文件
appendfsync always?
# 寫命令執(zhí)行完先放入AOF緩沖區(qū),然后表示每隔1秒將緩沖區(qū)數(shù)據(jù)寫到AOF文件,是默認(rèn)方案
appendfsync everysec?
# 寫命令執(zhí)行完先放入AOF緩沖區(qū),由操作系統(tǒng)決定何時(shí)將緩沖區(qū)內(nèi)容寫回磁盤
appendfsync no

(2)AOF的文件重寫

? ? ? ? 既然記錄的是寫操作,如果對(duì)一個(gè)數(shù)據(jù)多次重復(fù)寫,那么有很多次寫操作都是無(wú)用操作,因此AOF能夠執(zhí)行如圖所示重寫功能:

? ? ? ??Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

?1.3 RDB與AOF對(duì)比總結(jié)

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用


2、Redis主從架構(gòu)

2.1 簡(jiǎn)單搭建

? ? ? ? 類似于MySQL,單節(jié)點(diǎn)Redis并發(fā)能力有限,需要搭建主從結(jié)構(gòu):即,主Redis進(jìn)行寫操作,從Redis執(zhí)行讀操作,并且主從之間要保持?jǐn)?shù)據(jù)同步。Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

搭建流程:

連接到從redis:

redis-cli -p 端口號(hào)

建立其master:

SLAVEOF 主IP地址 主端口號(hào)(SLAVEOF也可以換成REPLICAOF)

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

?2.2 全量同步

(1)基本流程

????????主從第一次建立連接時(shí),會(huì)執(zhí)行全量同步,將master節(jié)點(diǎn)的所有數(shù)據(jù)都拷貝給slave節(jié)點(diǎn)。

????????在同步的過(guò)程中,需要用到上文提到的RDB文件。
? ? ? ? 還會(huì)用到repl_baklog文件:通過(guò)bgsave生成RDB時(shí),是子進(jìn)程復(fù)制出的數(shù)據(jù)進(jìn)行存盤,但如果此時(shí)主線程趁此時(shí)進(jìn)行寫數(shù)據(jù),那這些新的數(shù)據(jù)不就沒有同步進(jìn)slave里了嗎??
? ? ? ? 因此,redis會(huì)在此時(shí)通過(guò)repl_baklog記錄bgsave期間的所有命令,再發(fā)給slave進(jìn)行補(bǔ)充,保證數(shù)據(jù)的完整。

? ? ? ? 具體流程如下:

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

?(2)問(wèn)題:slave向master請(qǐng)求數(shù)據(jù)同步,master如何知道這是第一次來(lái)連接?

通過(guò)以下兩個(gè)概念作為判斷依據(jù):

  • Replication Id:簡(jiǎn)稱replid,是數(shù)據(jù)集的標(biāo)記,id一致則說(shuō)明是同一數(shù)據(jù)集。每一個(gè)master都有唯一的replid,slave則會(huì)繼承master節(jié)點(diǎn)的replid
    此為關(guān)鍵:這個(gè)id如果不同,說(shuō)明是第一次!

  • offset:偏移量,隨著記錄在repl_baklog中的數(shù)據(jù)增多而逐漸增大。slave完成同步時(shí)也會(huì)記錄當(dāng)前同步的offset。如果slave的offset小于master的offset,說(shuō)明slave數(shù)據(jù)落后于master,需要更新。

?????????因?yàn)閟lave原本也是一個(gè)master,有自己的replid和offset,當(dāng)?shù)谝淮巫兂蓅lave,與master建立連接時(shí),發(fā)送的replid和offset是自己的replid和offset。master判斷發(fā)現(xiàn)slave發(fā)送來(lái)的replid與自己的不一致,說(shuō)明這是一個(gè)全新的slave,就知道要做全量同步了。

????????master會(huì)將自己的replid和offset都發(fā)送給這個(gè)slave,slave保存這些信息。以后slave的replid就與master一致了。

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

??2.3?增量同步

? ? ? ? 在2.2節(jié)的基礎(chǔ)上,當(dāng)主從的Replication Id相同時(shí),我們可以理解為,此時(shí)slave數(shù)據(jù)集至少是master的子集了。
? ? ? ? 主從數(shù)據(jù)剩余部分具體相差多少呢?可以通過(guò)offset偏移量來(lái)進(jìn)行記錄。
????????repl_baklog中會(huì)記錄Redis處理過(guò)的命令日志及offset,包括master當(dāng)前的offset,和slave已經(jīng)拷貝到的offset。每次在第二階段,master就去發(fā)送:從 已經(jīng)拷貝過(guò)的offset開始 到 當(dāng)前offset的數(shù)據(jù),如圖所示:

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用? ?---->? ? ??Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用? ? ? ?---->???Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

?????????repl_baklog這個(gè)文件是一個(gè)固定大小的數(shù)組,只不過(guò)數(shù)組是環(huán)形,也就是說(shuō)角標(biāo)到達(dá)數(shù)組末尾后,會(huì)再次從0開始讀寫,這樣數(shù)組頭部的數(shù)據(jù)就會(huì)被覆蓋,但因?yàn)閟lave(綠色部分已經(jīng)同步了,因此master可以直接覆蓋也無(wú)妨)

? ? ? ? 但是如果slave宕機(jī)過(guò)久,導(dǎo)致master把尚未同步的紅色部分覆蓋了(即,紅色超過(guò)了一整圈):例如下圖,此時(shí)只能全量同步了。?Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

?2.4 知識(shí)總結(jié)

簡(jiǎn)述全量同步和增量同步區(qū)別?

  • 全量同步:master將完整內(nèi)存數(shù)據(jù)生成RDB,發(fā)送RDB到slave。后續(xù)命令則記錄在repl_baklog,逐個(gè)發(fā)送給slave。

  • 增量同步:slave提交自己的offset到master,master獲取repl_baklog中從offset之后的命令給slave

什么時(shí)候執(zhí)行全量同步?

  • slave節(jié)點(diǎn)第一次連接master節(jié)點(diǎn)時(shí)

  • slave節(jié)點(diǎn)斷開時(shí)間太久,repl_baklog中的offset已經(jīng)被覆蓋時(shí)

什么時(shí)候執(zhí)行增量同步?

  • slave節(jié)點(diǎn)斷開又恢復(fù),并且在repl_baklog中能找到offset時(shí)

????????RDB 優(yōu)點(diǎn)是數(shù)據(jù)恢復(fù)速度快,但是快照的頻率不好把握。頻率太低,丟失的數(shù)據(jù)就會(huì)比較多,頻率太高,就會(huì)影響性能。

????????AOF 優(yōu)點(diǎn)是丟失數(shù)據(jù)少,但是數(shù)據(jù)恢復(fù)不快。

3、 Redis哨兵

? ? ? ? 在第2節(jié)中,我們講述了從機(jī)宕機(jī)后,通過(guò)repl_baklog的offset來(lái)進(jìn)行恢復(fù)從機(jī)的數(shù)據(jù)。
? ? ? ? 但如果,宕機(jī)是主機(jī)而不是從機(jī),該怎么辦?顯然這時(shí)候需要指定新的主機(jī)了!而redis哨兵機(jī)制能夠自動(dòng)監(jiān)控主機(jī)的健康狀態(tài)、以及在主機(jī)掛掉后指定從機(jī)。

3.1 原理? ? ?

  • 監(jiān)控:Sentinel 會(huì)不斷檢查您的master和slave是否按預(yù)期工作
    ? ? ? ? 這里sentinel會(huì)反復(fù)向主機(jī)發(fā)送ping,如果在規(guī)定時(shí)間內(nèi)收到pong,說(shuō)明主機(jī)還是好的,反之反之。如果有超過(guò)半數(shù)的哨兵認(rèn)為主機(jī)掛了,那說(shuō)明主機(jī)掛了。

  • 自動(dòng)故障恢復(fù):如果master故障,Sentinel會(huì)將一個(gè)slave提升為master。當(dāng)故障實(shí)例恢復(fù)后也以新的master為主
    ? ? ? ?具體怎么選新的主機(jī)呢?
    ? ? ? ?首先會(huì)判斷slave節(jié)點(diǎn)與master節(jié)點(diǎn)斷開時(shí)間長(zhǎng)短,如果超過(guò)指定值(down-after-milliseconds * 10)則會(huì)排除該slave節(jié)點(diǎn)
    ? ? ? ?然后判斷slave節(jié)點(diǎn)的slave-priority值,越小優(yōu)先級(jí)越高,如果是0則永不參與選舉
    ? ? ? ?如果slave-prority一樣,則判斷slave節(jié)點(diǎn)的offset值,越大說(shuō)明數(shù)據(jù)越新,優(yōu)先級(jí)越高
    ? ? ? ?最后是判斷slave節(jié)點(diǎn)的運(yùn)行id大小,越小優(yōu)先級(jí)越高

  • 通知:Sentinel充當(dāng)Redis客戶端的服務(wù)發(fā)現(xiàn)來(lái)源,當(dāng)集群發(fā)生故障轉(zhuǎn)移時(shí),會(huì)將最新信息推送給Redis的客戶端

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

3.2 故障轉(zhuǎn)移步驟

故障轉(zhuǎn)移步驟有哪些?

  • 首先選定一個(gè)slave作為新的master,執(zhí)行slaveof no one

  • 然后讓所有節(jié)點(diǎn)都執(zhí)行slaveof 新master

  • 修改故障節(jié)點(diǎn)配置,添加slaveof 新master

4、 Cluster分片集群

? ? ? ? 對(duì)于第3節(jié)中的哨兵模式,其每個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)是一樣的,浪費(fèi)內(nèi)存,并且不好在線擴(kuò)容。當(dāng)有海量數(shù)據(jù)需要存儲(chǔ)、高并發(fā)的寫問(wèn)題出現(xiàn)時(shí)候,就要采取分片集群的方式來(lái)解決問(wèn)題了。

4.1 分片集群的特征

  • 集群中有多個(gè)master,每個(gè)master保存不同數(shù)據(jù)

  • 每個(gè)master都可以有多個(gè)slave節(jié)點(diǎn)

  • master之間通過(guò)ping監(jiān)測(cè)彼此健康狀態(tài)(代替哨兵),如果掛掉了會(huì)故障轉(zhuǎn)移。

  • 客戶端請(qǐng)求可以訪問(wèn)集群任意節(jié)點(diǎn),最終都會(huì)被轉(zhuǎn)發(fā)到正確節(jié)點(diǎn)

Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

?4.2 散列插槽

????????插槽算法把整個(gè)數(shù)據(jù)庫(kù)被分為16384個(gè)slot(槽),每個(gè)進(jìn)入Redis的鍵值對(duì),根據(jù)key進(jìn)行散列,分配到這16384插槽中的一個(gè)。使用的哈希映射也比較簡(jiǎn)單,用CRC16算法計(jì)算出一個(gè)16 位的值,再對(duì)16384取模。數(shù)據(jù)庫(kù)中的每個(gè)鍵都屬于這16384個(gè)槽的其中一個(gè),集群中的每個(gè)節(jié)點(diǎn)都可以處理這16384個(gè)槽。

????????集群中的每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分的hash槽,比如當(dāng)前集群有A、B、C個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)上的哈希槽數(shù) =16384/3,那么就有:

節(jié)點(diǎn)A負(fù)責(zé)0~5460號(hào)哈希槽
節(jié)點(diǎn)B負(fù)責(zé)5461~10922號(hào)哈希槽
節(jié)點(diǎn)C負(fù)責(zé)10923~16383號(hào)哈希槽

即:?數(shù)據(jù)key不是與節(jié)點(diǎn)綁定,而是與插槽綁定。 這樣,三個(gè)節(jié)點(diǎn)分別處理不同的槽位置的數(shù)據(jù),在存、取數(shù)據(jù)時(shí),會(huì)根據(jù)運(yùn)算得到的槽,自動(dòng)切換節(jié)點(diǎn)。
Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用

??4.3 動(dòng)態(tài)擴(kuò)容、縮容

? ? ? ? 在4.2節(jié)的基礎(chǔ)上,我們知道,實(shí)際上數(shù)據(jù)不是存儲(chǔ)在節(jié)點(diǎn)上的,而是插槽上的。因此,如果想增加新的節(jié)點(diǎn)時(shí),給新的節(jié)點(diǎn)分配插槽即可。如果想刪掉舊的節(jié)點(diǎn)時(shí),先把插槽轉(zhuǎn)移給別的節(jié)點(diǎn),再把沒有插槽的空節(jié)點(diǎn)刪了即可

(1)動(dòng)態(tài)擴(kuò)容舉例? ? ?

????????使用redis-cli的add-node命令新增一個(gè)主節(jié)點(diǎn)8007(master),前面的ip:port為新增節(jié)點(diǎn),后面的ip:port為集群中已存在的節(jié)點(diǎn)。????????

src/redis-cli --cluster add-node 192.168.100.100:8007 192.168.100.100:8001

?????????當(dāng)添加節(jié)點(diǎn)成功以后,新增的節(jié)點(diǎn)不會(huì)有任何數(shù)據(jù),因?yàn)樗€沒有分配任何的slot(hash槽),我們需要為新節(jié)點(diǎn)手工分配hash槽。
????????使用redis-cli的rehash命令為8007分配hash槽,找到集群中的任意一個(gè)主節(jié)點(diǎn),對(duì)其進(jìn)行重新分片工作。

src/redis-cli --cluster reshard 192.168.100.100:8001
How many slots do you want to move (from 1 to 16384)? 600
(ps:需要多少個(gè)槽移動(dòng)到新的節(jié)點(diǎn)上,自己設(shè)置,比如600個(gè)hash槽)
What is the receiving node ID? 2728a594a0498e98e4b83a537e19f9a0a3790f38
(ps:把這600個(gè)hash槽移動(dòng)到哪個(gè)節(jié)點(diǎn)上去,需要指定節(jié)點(diǎn)id)
Please enter all the source node IDs.
? Type 'all' to use all the nodes as source nodes for the hash slots.
? Type 'done' once you entered all the source nodes IDs.
Source node 1:all
(ps:輸入all為從所有主節(jié)點(diǎn)(8001,8002,8003)中分別抽取相應(yīng)的槽數(shù)指定到新節(jié)點(diǎn)中,抽取的總槽數(shù)為600個(gè))
?... ...
Do you want to proceed with the proposed reshard plan (yes/no)? yes
(ps:輸入yes確認(rèn)開始執(zhí)行分片任務(wù))

????????槽位遷移后,對(duì)應(yīng)槽位中的數(shù)據(jù)也會(huì)遷移!?

(2)動(dòng)態(tài)縮容舉例? ??

?????????例如,我們將(1)中的8007節(jié)點(diǎn)刪除:
????????因?yàn)橹鞴?jié)點(diǎn)8007的里面是有分配了hash槽的,所以我們這里必須先把8007里的hash槽放入到其他的可用主節(jié)點(diǎn)中去,然后再進(jìn)行移除節(jié)點(diǎn)操作,不然會(huì)出現(xiàn)數(shù)據(jù)丟失問(wèn)題。

src/redis-cli ?--cluster reshard 192.168.100.100:8007

?... ...
How many slots do you want to move (from 1 to 16384)? 600
What is the receiving node ID? baf0c2f3afde2410e34351a8261a703f1394cee9
(ps:這里是需要把數(shù)據(jù)移動(dòng)到哪?8001的主節(jié)點(diǎn)id)
Please enter all the source node IDs.
? Type 'all' to use all the nodes as source nodes for the hash slots.
? Type 'done' once you entered all the source nodes IDs.
Source node 1:4b339ad25b4884c2ff6de8a8ec2bc8766f8faf0b
(ps:這里是需要數(shù)據(jù)源,也就是我們的8007節(jié)點(diǎn)id)
Source node 2:done
(ps:這里直接輸入done 開始生成遷移計(jì)劃)
?... ...
Do you want to proceed with the proposed reshard plan (yes/no)? Yes
(ps:這里輸入yes開始遷移)

????????至此,我們已經(jīng)成功的把8007主節(jié)點(diǎn)的數(shù)據(jù)遷移到8001上去了,我們可以看一下現(xiàn)在的集群狀態(tài)如下圖,你會(huì)發(fā)現(xiàn)8007下面已經(jīng)沒有任何hash槽了,證明遷移成功!???
Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用??????

????????最后我們直接使用del-node命令刪除8007主節(jié)點(diǎn)即可

?src/redis-cli ?--cluster del-node 192.168.100.100:8007 4b339ad25b4884c2ff6de8a8ec2bc8766f8faf0b文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-480306.html

到了這里,關(guān)于Redis集群(分布式緩存):詳解持久化、主從同步原理、哨兵機(jī)制、Cluster分片集群,實(shí)現(xiàn)高并發(fā)高可用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • 微服務(wù) - Redis緩存 · 數(shù)據(jù)結(jié)構(gòu) · 持久化 · 分布式 · 高并發(fā)

    微服務(wù) - Redis緩存 · 數(shù)據(jù)結(jié)構(gòu) · 持久化 · 分布式 · 高并發(fā)

    系列目錄 微服務(wù) - 概念 · 應(yīng)用 · 架構(gòu) · 通訊 · 授權(quán) · 跨域 · 限流 微服務(wù) - Consul集群化 · 服務(wù)注冊(cè) · 健康檢測(cè) · 服務(wù)發(fā)現(xiàn) · 負(fù)載均衡 微服務(wù) - Redis緩存 · 數(shù)據(jù)結(jié)構(gòu) · 持久化 · 分布式 · 高并發(fā) 微服務(wù) - Nginx網(wǎng)關(guān) · 進(jìn)程機(jī)制 · 限流熔斷 · 性能優(yōu)化 · 動(dòng)態(tài)負(fù)載 · 高可用

    2023年04月18日
    瀏覽(24)
  • Redis分布式緩存之主從&哨兵&分片集群

    Redis分布式緩存之主從&哨兵&分片集群

    數(shù)據(jù)同步原理 集群伸縮:在集群中插入或刪除某個(gè)節(jié)點(diǎn) 集群故障轉(zhuǎn)移

    2024年02月04日
    瀏覽(28)
  • Redis(分布式緩存詳解)

    Redis(分布式緩存詳解)

    Redis:基于內(nèi)存的鍵值存儲(chǔ)系統(tǒng),通常用作高性能的數(shù)據(jù)庫(kù)、緩存和消息隊(duì)列代理,是互聯(lián)網(wǎng)廣泛應(yīng)用的存儲(chǔ)中間件 特點(diǎn) :基于內(nèi)存存儲(chǔ),讀寫性能高 Redis與MySQL區(qū)別 Redis以鍵值對(duì)形式存儲(chǔ),MySQL以表格形式存儲(chǔ) Redis存儲(chǔ)在 內(nèi)存 ,MySQL存儲(chǔ)在 磁盤 Redis存儲(chǔ) 高效 ,MySQL存儲(chǔ) 安

    2024年02月16日
    瀏覽(30)
  • Redis分布式緩存部署方案詳解

    高可用性 :分布式部署可以避免單點(diǎn)故障,提高系統(tǒng)的可用性。 高性能 :分布式部署可以通過(guò)增加節(jié)點(diǎn)數(shù)量來(lái)提高系統(tǒng)的吞吐量和響應(yīng)速度。 易于擴(kuò)展 :分布式部署可以方便地?cái)U(kuò)展系統(tǒng)的容量和性能,只需添加新節(jié)點(diǎn)即可。 Redis的分布式部署有多種方式,例如主從復(fù)制、

    2024年02月07日
    瀏覽(34)
  • 微服務(wù)---分布式多級(jí)緩存集群實(shí)現(xiàn)方案(Caffeine+redis+nginx本地緩存+Canal數(shù)據(jù)同步)

    微服務(wù)---分布式多級(jí)緩存集群實(shí)現(xiàn)方案(Caffeine+redis+nginx本地緩存+Canal數(shù)據(jù)同步)

    傳統(tǒng)的緩存策略一般是請(qǐng)求到達(dá)Tomcat后,先查詢Redis,如果未命中則查詢數(shù)據(jù)庫(kù),如圖: 存在下面的問(wèn)題: ?請(qǐng)求要經(jīng)過(guò)Tomcat處理,Tomcat的性能成為整個(gè)系統(tǒng)的瓶頸 ?Redis緩存失效時(shí),會(huì)對(duì)數(shù)據(jù)庫(kù)產(chǎn)生沖擊 多級(jí)緩存就是充分利用請(qǐng)求處理的每個(gè)環(huán)節(jié),分別添加緩存,減輕T

    2024年02月12日
    瀏覽(32)
  • Redis 分布式緩存

    Redis 分布式緩存

    單點(diǎn) Redis 的問(wèn)題及解決 數(shù)據(jù)丟失:實(shí)現(xiàn)Redis數(shù)據(jù)持久化 并發(fā)能力:搭建主從集群,實(shí)現(xiàn)讀寫分離 存儲(chǔ)能力:搭建分片集群,利用插槽機(jī)制實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)容 故障恢復(fù)能力:利用哨兵機(jī)制,實(shí)現(xiàn)健康檢測(cè)和自動(dòng)恢復(fù) RDB RDB全稱Redis Database Backup file (Redis數(shù)據(jù)備份文件),也被叫做

    2024年02月10日
    瀏覽(24)
  • Redis分布式緩存

    Redis分布式緩存

    -- 基于Redis集群解決單機(jī)Redis存在的問(wèn)題 單機(jī)的Redis存在四大問(wèn)題: Redis有兩種持久化方案: RDB持久化 AOF持久化 ? ? ? ?RDB全稱Redis Database Backup file(Redis數(shù)據(jù)備份文件),也被叫做 Redis數(shù)據(jù)快照 。簡(jiǎn)單來(lái)說(shuō)就是把 內(nèi)存中的所有數(shù)據(jù)都記錄到磁盤 中。當(dāng)Redis實(shí)例故障重啟后,

    2024年02月12日
    瀏覽(19)
  • Redis高級(jí)-分布式緩存

    – 基于Redis集群解決單機(jī)Redis存在的問(wèn)題 單機(jī)的Redis存在四大問(wèn)題: Redis有兩種持久化方案: RDB持久化 AOF持久化 RDB全稱Redis Database Backup file(Redis數(shù)據(jù)備份文件),也被叫做Redis數(shù)據(jù)快照。簡(jiǎn)單來(lái)說(shuō)就是把內(nèi)存中的所有數(shù)據(jù)都記錄到磁盤中。當(dāng)Redis實(shí)例故障重啟后,從磁盤讀取

    2024年04月16日
    瀏覽(26)
  • Redis分布式緩存方案

    Redis分布式緩存方案

    數(shù)據(jù)丟失:數(shù)據(jù)持久化 并發(fā)能力弱:搭建主從集群,實(shí)現(xiàn)讀寫分離 故障恢復(fù)問(wèn)題:哨兵實(shí)現(xiàn)健康檢測(cè),自動(dòng)恢復(fù) 存儲(chǔ)能力:搭建分片集群,利用插槽機(jī)制實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)容 RDB持久化 數(shù)據(jù)庫(kù)備份文件,也叫快照,把內(nèi)存數(shù)據(jù)存到磁盤。使用save進(jìn)行主動(dòng)RDB,會(huì)阻塞所有命令。建議

    2023年04月25日
    瀏覽(17)
  • 緩存的變更(JVM本地緩存->Redis分布式緩存)

    在一次需求修改中,下游的服務(wù)附加提出了,針對(duì)某個(gè)業(yè)務(wù)數(shù)據(jù)緩存的生效時(shí)間的要求 原JVM設(shè)計(jì)方案: 采用jvm本地緩存機(jī)制,定時(shí)任務(wù)30秒刷新一次 現(xiàn)在redis方案: 因?yàn)楹芏嗟胤绞褂昧诉@個(gè)業(yè)務(wù)數(shù)據(jù)緩存,使用方面不能改動(dòng)過(guò)多 因?yàn)槭欠植际讲渴?,如果只使用jvm緩存,無(wú)法

    2024年02月11日
    瀏覽(31)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包