亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Redis 緩存問題及解決

 更新時間:2024年07月01日 11:59:38   作者:重慶大傑  
網(wǎng)上收集的一些經(jīng)典特效,這里因為篇幅較長,不加整理了,想運行的代碼的朋友可以點擊textarea中,全選復制即可。

一,緩存穿透(key在數(shù)據(jù)庫不存在)

  • 當數(shù)據(jù)既不在緩存中,也不在數(shù)據(jù)庫中,導致請求訪問緩存沒數(shù)據(jù),訪問數(shù)據(jù)庫也沒數(shù)據(jù),即 每次都一穿到底。

  • 當有大量這樣的請求到來時,數(shù)據(jù)庫的壓力驟增。

解決:

  1. 對請求過濾:參數(shù)檢查、黑名單、白名單等,直接拒絕。

  2. 緩存空值:對查詢不存在的數(shù)據(jù)也緩存下來(值為null),并設置較短過期時間。

  3. 使用布隆過濾器快速判斷數(shù)據(jù)是否存在,避免通過查詢數(shù)據(jù)庫來判斷(使用bitmaps實現(xiàn)):在寫入數(shù)據(jù)庫數(shù)據(jù)時,使用布隆過濾器做個標記,然后在用戶請求發(fā)現(xiàn)緩存沒有值時,查詢布隆過濾器快速判斷數(shù)據(jù)是否存在。

二,緩存擊穿(熱點key過期)

對于熱點數(shù)據(jù),當緩存失效的一瞬間,所有的請求都被下放到數(shù)據(jù)庫去請求更新緩存,數(shù)據(jù)庫被壓垮。

解決:

  1. 訪問數(shù)據(jù)庫加分布式鎖:獲得鎖的那個線程才能去訪問數(shù)據(jù)庫,并寫回緩存,其他線程等待。

  2. 熱點數(shù)據(jù)不過期:由后臺異步更新緩存,或者在熱點數(shù)據(jù)即將過期前,提前通知后臺線程更新緩存以及重新設置過期時間。

三,緩存雪崩(大量key同時過期)

當大量緩存在同一時間過期,如果此時有大量的用戶請求,瞬間所有的請求都被下放到數(shù)據(jù)庫,數(shù)據(jù)庫就崩掉了。

解決:

  1. 將緩存失效時間隨機打散  在原有的失效時間基礎上增加一個隨機值(比如1到10分鐘)這樣每個緩存的過期時間都不重復了,也就降低了緩存集體失效的概率。

  2. 緩存設置為不過期  通過后臺服務來更新緩存數(shù)據(jù)。

相關(guān)文章

  • Redis 哨兵機制及配置實現(xiàn)

    Redis 哨兵機制及配置實現(xiàn)

    本文主要介紹了Redis 哨兵機制及配置實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 解決Redis連接無法正常釋放的問題

    解決Redis連接無法正常釋放的問題

    這篇文章主要介紹了解決Redis連接無法正常釋放的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • redis-cli創(chuàng)建redis集群的實現(xiàn)

    redis-cli創(chuàng)建redis集群的實現(xiàn)

    本文主要介紹了redis-cli創(chuàng)建redis集群的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Redis基本數(shù)據(jù)類型Set常用操作命令

    Redis基本數(shù)據(jù)類型Set常用操作命令

    這篇文章主要為大家介紹了Redis基本數(shù)據(jù)類型Set常用操作命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Redis總結(jié)筆記(二):C#連接Redis簡單例子

    Redis總結(jié)筆記(二):C#連接Redis簡單例子

    這篇文章主要介紹了Redis總結(jié)筆記(二):C#連接Redis簡單例子,需要的朋友可以參考下
    2015-01-01
  • Redis 在真實世界的 5 個用法

    Redis 在真實世界的 5 個用法

    Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API這篇文章主要介紹了Redis 在真實世界的 5 個用法,需要的朋友可以參考下
    2018-03-03
  • 使用Jedis面臨的非線程安全問題詳解

    使用Jedis面臨的非線程安全問題詳解

    網(wǎng)上都說jedis實例是非線程安全的,常常通過JedisPool連接池去管理實例,在多線程情況下讓每個線程有自己獨立的jedis實例,但都沒有具體說明為啥jedis實例時非線程安全的,本文就來和大家詳細說說
    2022-12-12
  • 使用 Redis 流實現(xiàn)消息隊列的代碼

    使用 Redis 流實現(xiàn)消息隊列的代碼

    這篇文章主要介紹了使用 Redis 流實現(xiàn)消息隊列,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Redis 命令整理并說明如何使用

    Redis 命令整理并說明如何使用

    這篇文章主要介紹了Redis 命令整理并說明如何使用的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Redis實現(xiàn)持久化的方式匯總

    Redis實現(xiàn)持久化的方式匯總

    Redis是一種高級key-value數(shù)據(jù)庫。它跟memcached類似,不過數(shù)據(jù)可以持久化,而且支持的數(shù)據(jù)類型很豐富。今天我們就來看看如何實現(xiàn)Redis持久化,需要的朋友可以參考下
    2022-10-10

最新評論