Redis緩存主要異常及解決方案

1 導讀

Redis 是當前最流行的 NoSQL數據庫。Redis主要用來做緩存使用,在提高數據查詢效率、保護數據庫等方面起到了關鍵性的作用,很大程度上提高系統的性能。當然在使用過程中,也會出現一些異常情景,導致Redis失去緩存作用。

2 異常類型

異常主要有 緩存雪崩 緩存穿透 緩存擊穿。

2.1 緩存雪崩

2.1.1 現象

緩存雪崩是指大量請求在緩存中沒有查到數據,直接訪問數據庫,導致數據庫壓力增大,最終導致數據庫崩潰,從而波及整個系統不可用,好像雪崩一樣。

2.1.2 異常原因

  • 緩存服務不可用。
  • 緩存服務可用,但是大量KEY同時失效。

2.1.3 解決方案

1.緩存服務不可用
redis的部署方式主要有單機、主從、哨兵和 cluster模式。

  • 單機
    只有一臺機器,所有數據都存在這臺機器上,當機器出現異常時,redis將失效,可能會導致redis緩存雪崩。

  • 主從
    主從其實就是一臺機器做主,一個或多個機器做從,從節點從主節點復制數據,可以實現讀寫分離,主節點做寫,從節點做讀。
    優點:當某個從節點異常時,不影響使用。
    缺點:當主節點異常時,服務將不可用。

  • 哨兵
    哨兵模式也是一種主從,只不過增加了哨兵的功能,用于監控主節點的狀態,當主節點宕機之后會進行投票在從節點中重新選出主節點。
    優點:高可用,當主節點異常時,自動在從節點當中選擇一個主節點。
    缺點:只有一個主節點,當數據比較多時,主節點壓力會很大。

  • cluster模式
    集群采用了多主多從,按照一定的規則進行分片,將數據分別存儲,一定程度上解決了哨兵模式下單機存儲有限的問題。
    優點:高可用,配置了多主多從,可以使數據分區,去中心化,減小了單臺機子的負擔.
    缺點:機器資源使用比較多,配置復雜。

  • 小結
    從高可用得角度考慮,使用哨兵模式和cluster模式可以防止因為redis不可用導致的緩存雪崩問題。

2.大量KEY同時失效
可以通過設置永不失效、設置不同失效時間、使用二級緩存和定時更新緩存失效時間

  • 設置永不失效
    如果所有的key都設置不失效,不就不會出現因為KEY失效導致的緩存雪崩問題了。redis設置key永遠有效的命令如下:
    PERSIST key
    缺點:會導致redis的空間資源需求變大。

  • 設置隨機失效時間
    如果key的失效時間不相同,就不會在同一時刻失效,這樣就不會出現大量訪問數據庫的情況。
    redis設置key有效時間命令如下:
    Expire key
    示例代碼如下,通過RedisClient實現

/**
* 隨機設置小于30分鐘的失效時間
* @param redisKey
* @param value
*/
private void setRandomTimeForReidsKey(String redisKey,String value){
//隨機函數
Random rand = new Random();
//隨機獲取30分鐘內(30*60)的隨機數
int times = rand.nextInt(1800);
//設置緩存時間(緩存的key,緩存的值,失效時間:單位秒)
redisCl

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215937.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【sqli靶場】第二關和第三關通關思路

目錄 前言 一、sqli靶場第二關 1.1 判斷注入類型 1.2 判斷數據表中的列數 1.3 使用union聯合查詢 1.4 使用group_concat()函數 1.5 爆出users表中的列名 1.6 爆出users表中的數據 二、sqli靶場第三關 2.1 判斷注入類型 2.2 觀察報錯 2.3 判斷數據表中的列數 2.4 使用union聯合…

Emutouch學習筆記

1 項目依賴 DeviceFarmer/minitouch 1.1 確認submodule引用的 commit ID git submodule status1.2 更新子模塊到最新版本 git submodule init && git submodule update --remote

Android:監聽開機廣播自己喚醒

要通過代碼獲取安卓系統的開機廣播消息,并在收到消息后拉起當前apk,您可以使用以下步驟: 創建一個廣播接收器(Broadcast Receiver)來接收開機廣播消息。在接收到開機廣播消息時,您可以在接收器中編寫代碼來…

什么是 web 組態?web 組態與傳統組態的區別是什么?

組態軟件是一種用于控制和監控各種設備的軟件,也是指在自動控制系統監控層一級的軟件平臺和開發環境。這類軟件實際上也是一種通過靈活的組態方式,為用戶提供快速構建工業自動控制系統監控功能的、通用層次的軟件工具。通常用于工業控制,自動…

Spring Boot整合 Spring Security

Spring Boot整合 1、RBAC 權限模型 RBAC模型(Role-Based Access Control:基于角色的訪問控制) 在RBAC模型里面,有3個基礎組成部分,分別是:用戶、角色和權限,它們之間的關系如下圖所示 SELECT…

02.類模板

2、類模板 2.1 類模板語法 建立一個通用類&#xff0c;類中的成員、數據類型可以不具體制定&#xff0c;用一個虛擬的類型來代表。 template<typename T> // 類template&#xff1a;聲明創建模板typename&#xff1a;表名其后面的符號是一種數據類型&#xff0c;可以用 …

【算法】算法題-20231211

這里寫目錄標題 一、387. 字符串中的第一個唯一字符二、1189. “氣球” 的最大數量三、1221. 分割平衡字符串 一、387. 字符串中的第一個唯一字符 簡單 給定一個字符串 s &#xff0c;找到 它的第一個不重復的字符&#xff0c;并返回它的索引 。如果不存在&#xff0c;則返回…

算法通關村第十五關 | 青銅 | 用4KB內存尋找重復元素

處理海量數據的思路 1.使用位存儲&#xff1a;占用的空間是存整數的 1/8 。 2.分塊&#xff1a;也叫外部排序&#xff0c;將大文件劃分為若干小塊&#xff0c;先處理小塊再逐步得到想要的結果&#xff0c;需要至少遍歷兩次全部序列&#xff0c;是用時間換空間的方法。 3.堆&…

Mockjs 增、刪、改、查(分頁、多條件查詢)

查&#xff08;分頁、多條件查詢&#xff09;&#xff1a; 關鍵代碼&#xff1a; Mock.mock(/vue-table-list/tableLinkage/list, post, (option) > {// console.log("&#x1f680; ~ file: tableLinkage.js:66 ~ Mock.mock ~ option:", option)const params J…

MFC畫折線圖,基于x64系統

由于項目的需要&#xff0c;需要畫一個折線圖。 傳統的Teechart、MSChart、HighSpeedChart一般是只能配置在x86系統下&#xff0c;等到使用x64系統下運行就是會報出不知名的錯誤&#xff0c;這個地方讓人很苦惱。 我在進行配置的過程之中&#xff0c;使用Teechart將x86配置好…

基于Java SSM框架實現班級同學錄、聚會報名網站系統項目【項目源碼+論文說明】

基于java的SSM框架實現班級同學錄聚會報名網站系統演示 摘要 21世紀的今天&#xff0c;隨著社會的不斷發展與進步&#xff0c;人們對于信息科學化的認識&#xff0c;已由低層次向高層次發展&#xff0c;由原來的感性認識向理性認識提高&#xff0c;管理工作的重要性已逐漸被人…

程序員考公筆記之邏輯判斷(圖形推理)

文章目錄 寫在前面1、邏輯判斷1.1、圖形推理1.1.1、位置類1.1.2、樣式類1.1.3、數量類1.1.4、屬性類1.1.5、六面體 寫在前面 1、邏輯判斷 1.1、圖形推理 觀察&#xff1a;先宏觀&#xff0c;再微觀 圖形推理的命題形式&#xff1a; 一組式 觀察路徑&#xff1a;順序看(考最…

解決方案- 材料吸波、屏蔽性能測試系統 (10MHz~500GHz)

材料吸波、屏蔽性能測試系統 &#xff08;10MHz~500GHz&#xff09; 材料電磁參數綜合測試解決方案 材料吸波、屏蔽性能測試系統測試頻率范圍可達10MHz&#xff5e;500GHz&#xff0c;可實現材料反射率、屏蔽性能特性參數測試。系統由矢量網絡分析儀、測試夾具、系統軟件等組…

申論筆記(思路技巧)

文章目錄&#xff1a; 一&#xff1a;福利 二&#xff1a;常見題型 1.歸納概括題 2.提出對策/措施/建議題 2.1 找到對策的來源 2.2 提煉對策 2.3 明確是否需要先概括問題 2.4 對策表述三部曲 3.綜合分析題 3.1 綜合分析最大的難點 3.2 分析問題的技巧 4.應用文/公文…

力扣每日一題day34[110. 平衡二叉樹]

給定一個二叉樹&#xff0c;判斷它是否是高度平衡的二叉樹。 本題中&#xff0c;一棵高度平衡二叉樹定義為&#xff1a; 一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1 。 示例 1&#xff1a; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&#xff1a;t…

wappalyzer基于插件的網站開發技術解析工具

一、wappalyzer 解釋&#xff1a;這是一款強大的工具&#xff0c;其主要能提供一種快速、可靠地檢測網站所使用技術棧的方法&#xff0c;也就說說&#xff0c;服務器發來的信息都會被它剖析&#xff0c;然后分析出前端的技術棧&#xff0c;有時后端所使用的技術棧如果網頁特征…

[ 藍橋杯Web真題 ]-冬奧大抽獎

目錄 介紹 準備 目標 規定 思路 知識補充 解法參考 介紹 藍橋云課慶冬奧需要舉行一次抽獎活動&#xff0c;我們一起做一個頁面提供給云課冬奧抽獎活動使用。 準備 開始答題前&#xff0c;需要先打開本題的項目代碼文件夾&#xff0c;目錄結構如下&#xff1a; ├──…

甲醛處理企業網站效果如何

甲醛往往是新裝房間主所擔心的問題&#xff0c;而甲醛處理公司則可以處理甲醛問題&#xff0c;市場需求也比較高&#xff0c;雖然具備同城服務屬性&#xff0c;但外地或連鎖經營也非常適合&#xff0c;而品牌們也遇到一些痛點&#xff1a; 1、品牌宣傳拓客難 甲醛處理公司也需…

公司app定制開發 ,打造專屬企業移動應用

公司app定制&#xff1a;打造專屬企業移動應用 在當今數字化時代&#xff0c;移動應用已經成為了人們生活中不可或缺的一部分&#xff0c;越來越多的企業也意識到了移動應用對于企業形象和業務拓展的重要性&#xff0c;為了滿足企業的需求&#xff0c;公司app定制服務應運而生…

基于查表法的水流量算法設計與實現

寫在前面 本文分享的是一種基于查表法的水流量的算法方案設計與實現&#xff0c;算法簡單易懂&#xff0c;主要面向初學者&#xff0c;有兩個目的&#xff1a;一是給初學者一些算法設計的思路引導&#xff1b;二是引導初學者學習怎樣用C語言編程實現。 一、設計需求 基于“19…