" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis集群的三種部署方式及三種應(yīng)用問(wèn)題的處理

 更新時(shí)間:2024年04月23日 08:54:56   作者:云淡風(fēng)qin  
這篇文章主要介紹了Redis集群的三種部署方式及三種應(yīng)用問(wèn)題的處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Redis集群部署三種方式

1. 主從復(fù)制

主機(jī)數(shù)據(jù)更新后根據(jù)配置和策略, 自動(dòng)同步到備機(jī)的 master/slaver 機(jī)制,Master 以寫為主,Slaver 以讀為主。

主從復(fù)制

優(yōu)點(diǎn):

  • 讀寫分離,性能擴(kuò)展
  • 容災(zāi)快速恢復(fù)
  • 一主多從!

缺點(diǎn):

  • 單主單從的情況下,讀寫分離很好,但是如果萬(wàn)一主掛了,這樣就無(wú)法寫了
  • 或者單主多從時(shí),如果主掛了,也無(wú)法進(jìn)行同步了。這樣就需要選舉出一個(gè)新的主來(lái)作為主機(jī)。

2. 哨兵模式

使用Sentinel,能夠后臺(tái)監(jiān)控主機(jī)是否故障,如果故障了根據(jù)投票數(shù)自動(dòng)將從庫(kù)轉(zhuǎn)換為主庫(kù)。

哨兵模式

優(yōu)點(diǎn):

  • 監(jiān)控
  • 監(jiān)控服務(wù)器節(jié)點(diǎn)
  • 提醒
  • 當(dāng)監(jiān)控的節(jié)點(diǎn)出現(xiàn)問(wèn)題時(shí),可以通過(guò)api通知其他應(yīng)用等
  • 故障轉(zhuǎn)移
  • 當(dāng)主掛掉時(shí)會(huì)選舉新的從服務(wù)器為主服務(wù)器,代替原來(lái)主服務(wù)器的地位

3. redis-cluster模式

1.無(wú)中心化集群配置( redis3.0

2.集群由多個(gè)節(jié)點(diǎn)(Node) 組成,Redis 的數(shù)據(jù)分布在這些節(jié)點(diǎn)中。

3.集群中的節(jié)點(diǎn)分為主節(jié)點(diǎn)和從節(jié)點(diǎn);只有主節(jié)點(diǎn)負(fù)責(zé)讀寫請(qǐng)求和集群信息的維護(hù);從節(jié)點(diǎn)只進(jìn)行主節(jié)點(diǎn)數(shù)據(jù)和狀態(tài)信息的復(fù)制。

redis-cluster模式

優(yōu)點(diǎn):

  • 實(shí)現(xiàn)擴(kuò)容;
  • 分?jǐn)倝毫Γ?/li>
  • 無(wú)中心配置相對(duì)簡(jiǎn)單。

缺點(diǎn):

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

Redis應(yīng)用的三種問(wèn)題,穿透、擊穿、雪崩

緩存穿透

key 對(duì)應(yīng)的數(shù)據(jù)在數(shù)據(jù)源并不存在,每次針對(duì)此 key 的請(qǐng)求從緩存獲取不到,請(qǐng)求都會(huì)壓到數(shù)據(jù)源,從而可能壓垮數(shù)據(jù)源。

比如用一個(gè)不存在的用戶 id 獲取用戶信息,不論緩存還是數(shù)據(jù)庫(kù)都沒(méi)有,若黑客利用此漏洞進(jìn)行攻擊可能壓垮數(shù)據(jù)庫(kù)。

造成:

  • 應(yīng)用服務(wù)器壓力變大。
  • redis 命中率下降 ? \longrightarrow ? 查詢數(shù)據(jù)庫(kù) 。

解決:

對(duì)空值緩存

  • 如果一個(gè)查詢返回的數(shù)據(jù)為空(不管是數(shù)據(jù)是否不存在),仍然把這個(gè)空結(jié)果(null)進(jìn)行緩存,設(shè)置空結(jié)果的過(guò)期時(shí)間會(huì)很短,最長(zhǎng)不超過(guò)五分鐘。

設(shè)置可訪問(wèn)的名單(白名單):

  • 使用 bitmaps 類型定義一個(gè)可以訪問(wèn)的名單,名單 id 作為 bitmaps 的偏移量,每次訪問(wèn)和 bitmap 里面的 id 進(jìn)行比較,如果訪問(wèn) id 不在 bitmaps 里面,進(jìn)行攔截,則不允許訪問(wèn)。

采用布隆過(guò)濾器

  • 布隆過(guò)濾器(Bloom Filter)是1970年由布隆提出的。它實(shí)際上是一個(gè)很長(zhǎng)的二進(jìn)制向量(位圖)和一系列隨機(jī)映射函數(shù)(哈希函數(shù))。
  • 布隆過(guò)濾器可以用于檢索一個(gè)元素是否在一個(gè)集合中。它的優(yōu)點(diǎn)是空間效率和查詢時(shí)間都遠(yuǎn)遠(yuǎn)超過(guò)一般的算法,缺點(diǎn)是有一定的誤識(shí)別率和刪除困難。
  • 將所有可能存在的數(shù)據(jù)哈希到一個(gè)足夠大的 bitmaps 中,一個(gè)一定不存在的數(shù)據(jù)會(huì)被這個(gè) bitmaps 攔截掉,從而避免了對(duì)底層存儲(chǔ)系統(tǒng)的查詢壓力。

進(jìn)行實(shí)時(shí)監(jiān)控

  • 當(dāng)發(fā)現(xiàn) Redis 的命中率開始急速降低,需要排查訪問(wèn)對(duì)象和訪問(wèn)的數(shù)據(jù),和運(yùn)維人員配合,可以設(shè)置黑名單限制服務(wù)。

緩存擊穿

key 對(duì)應(yīng)的數(shù)據(jù)存在,但在 redis 中過(guò)期,此時(shí)若有大量并發(fā)請(qǐng)求過(guò)來(lái),這些請(qǐng)求發(fā)現(xiàn)緩存過(guò)期一般都會(huì)從后端DB 加載數(shù)據(jù)并回設(shè)到緩存,這個(gè)時(shí)候大并發(fā)的請(qǐng)求可能會(huì)瞬間把后端 DB 壓垮。

如何解決

  • 預(yù)先設(shè)置熱門數(shù)據(jù)
  • redis 高峰訪問(wèn)之前,把一些熱門數(shù)據(jù)提前存入到 redis 里面,加大這些熱門數(shù)據(jù) key 的時(shí)長(zhǎng)。
  • 實(shí)時(shí)調(diào)整
  • 現(xiàn)場(chǎng)監(jiān)控哪些數(shù)據(jù)熱門,實(shí)時(shí)調(diào)整 key 的過(guò)期時(shí)長(zhǎng)。
  • 使用鎖

緩存雪崩

緩存雪崩是指在我們?cè)O(shè)置緩存時(shí)采用了相同的過(guò)期時(shí)間,導(dǎo)致緩存在某一時(shí)刻同時(shí)失效,請(qǐng)求全部轉(zhuǎn)發(fā)到DB,DB瞬時(shí)壓力過(guò)重雪崩。 

解決

構(gòu)建多級(jí)緩存架構(gòu) 

  • nginx 緩存 + redis 緩存 + 其他緩存(ehcache等)

使用鎖或隊(duì)列:

  • 用加鎖或者隊(duì)列的方式保證來(lái)保證不會(huì)有大量的線程對(duì)數(shù)據(jù)庫(kù)一次性進(jìn)行讀寫,從而避免失效時(shí)大量的并發(fā)請(qǐng)求落到底層存儲(chǔ)系統(tǒng)上。不適用高并發(fā)情況。

設(shè)置過(guò)期標(biāo)志更新緩存:

  • 記錄緩存數(shù)據(jù)是否過(guò)期(設(shè)置提前量),如果過(guò)期會(huì)觸發(fā)通知另外的線程在后臺(tái)去更新實(shí)際 key 的緩存。

將緩存失效時(shí)間分散開:

  • 比如我們可以在原有的失效時(shí)間基礎(chǔ)上增加一個(gè)隨機(jī)值,比如 1~5 分鐘隨機(jī),這樣每一個(gè)緩存的過(guò)期時(shí)間的重復(fù)率就會(huì)降低,就很難引發(fā)集體失效的事件。

總結(jié)

  • 穿透:緩存不存在,數(shù)據(jù)庫(kù)不存在,高并發(fā),少量key
  • 擊穿:緩存不存在,數(shù)據(jù)庫(kù)存在,高并發(fā),少量key
  • 雪崩:緩存不存在,數(shù)據(jù)庫(kù)存在,高并發(fā),大量key

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis如何實(shí)現(xiàn)刷票過(guò)濾

    Redis如何實(shí)現(xiàn)刷票過(guò)濾

    這篇文章主要介紹了Redis如何實(shí)現(xiàn)刷票過(guò)濾問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 基于Redission的分布式鎖實(shí)戰(zhàn)

    基于Redission的分布式鎖實(shí)戰(zhàn)

    本文主要介紹了基于Redission的分布式鎖實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Redis緩存雪崩原理、防御策略與工程實(shí)踐指南

    Redis緩存雪崩原理、防御策略與工程實(shí)踐指南

    緩存雪崩 是指在某一時(shí)刻,大量緩存 Key 同時(shí)失效,導(dǎo)致所有請(qǐng)求穿透到后端數(shù)據(jù)庫(kù),瞬間壓垮數(shù)據(jù)庫(kù)服務(wù),進(jìn)而引發(fā)整個(gè)系統(tǒng)雪崩式崩潰的現(xiàn)象,本文給大家介紹Redis緩存雪崩深度解析:原理、防御策略與工程實(shí)踐,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • Linux下安裝Redis并設(shè)置相關(guān)服務(wù)

    Linux下安裝Redis并設(shè)置相關(guān)服務(wù)

    這篇文章主要為大家介紹了Linux下安裝Redis并設(shè)置相關(guān)服務(wù),感興趣的小伙伴們可以參考一下
    2016-01-01
  • Redis bgsave的使用小結(jié)

    Redis bgsave的使用小結(jié)

    BGSAVE是Redis用于生成 RDB 持久化文件的核心操作,本文就來(lái)詳細(xì)的介紹一下Redis bgsave的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • 淺談Redis中bind的坑

    淺談Redis中bind的坑

    本文主要介紹了淺談Redis中bind的坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • redis設(shè)置密碼并修改查看的幾種實(shí)現(xiàn)過(guò)程

    redis設(shè)置密碼并修改查看的幾種實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了redis設(shè)置密碼并修改查看的幾種實(shí)現(xiàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-06-06
  • 使用Redis的List實(shí)現(xiàn)緩存分頁(yè)信息

    使用Redis的List實(shí)現(xiàn)緩存分頁(yè)信息

    Redis List 是基于雙向鏈表實(shí)現(xiàn)的有序集合(按插入順序排序),借助 lrange 命令可快速實(shí)現(xiàn)分頁(yè)查詢,相比傳統(tǒng)數(shù)據(jù)庫(kù)(如 MySQL)的 limit offset 分頁(yè),Redis List 分頁(yè)在熱點(diǎn)數(shù)據(jù)、小范圍分頁(yè)場(chǎng)景下性能更穩(wěn)定,本文給大家介紹了如何使用Redis的List實(shí)現(xiàn)緩存分頁(yè)信息
    2026-02-02
  • Redis熱點(diǎn)Key問(wèn)題分析與解決方案

    Redis熱點(diǎn)Key問(wèn)題分析與解決方案

    文章主要介紹了Redis熱點(diǎn)Key的概念、危害、產(chǎn)生原因以及如何檢測(cè)和解決熱點(diǎn)Key問(wèn)題,熱點(diǎn)Key會(huì)導(dǎo)致Redis節(jié)點(diǎn)負(fù)載過(guò)高、集群負(fù)載不均、性能下降、數(shù)據(jù)不一致和緩存擊穿等問(wèn)題,解決熱點(diǎn)Key問(wèn)題的方法包括數(shù)據(jù)分片、讀寫分離、緩存預(yù)熱、限流和熔斷降級(jí)
    2025-01-01
  • redis慢查詢?nèi)罩镜脑L問(wèn)和管理方式

    redis慢查詢?nèi)罩镜脑L問(wèn)和管理方式

    這篇文章主要介紹了redis慢查詢?nèi)罩镜脑L問(wèn)和管理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論

凌海市| 高邑县| 乐昌市| 万州区| 会宁县| 灵寿县| 纳雍县| 遂川县| 包头市| 威远县| 吉首市| 织金县| 德惠市| 晋江市| 灵台县| 宁国市| 古蔺县| 建瓯市| 会昌县| 绥阳县| 贡山| 虎林市| 灌阳县| 卓资县| 沙坪坝区| 弥勒县| 祁连县| 甘孜县| 遂宁市| 桐城市| 临漳县| 南郑县| 徐闻县| 长汀县| 伽师县| 罗定市| 嘉善县| 临海市| 灵川县| 太保市| 龙泉市|