日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis缓存设计要点随谈

發布時間:2023/12/4 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis缓存设计要点随谈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在高并發系統中,緩存是必不可少的一部分。沒有緩存對系統的加速和阻擋大量的請求直接落到系統的數據庫,系統是很難撐住高并發的沖擊。所以緩存設計是系統很關鍵的一環。

1、緩存更新

緩存的數據一般都是有有效期的,過了一段時間之后就會失效,再次訪問時需要重新加載。緩存的失效是為了保證與數據源真實的數據保證一致性和緩存空間的有效利用性。

緩存更新一般分為3種

1、空間有限,當達到最大值時? 根據系統的設置規則直接過期的,

比如最少使用、隨機等一些過期策略。

2、緩存設置了過期時間的。

3、數據庫更新了,主動更新緩存數據的。

一般的話?低一致性要求的符合1和2即可。

高一致性的符合2和3的方式。

2、緩存穿透

緩存穿透指的是查詢一個不存在的數據,進而導致每次都落到數據庫里面去查詢。

1、解決辦法主要是緩存一個空數據,并且設置一個較短的有效期,避免每次都命中數據庫。

2、針對查詢的鍵key 規則進行校驗,比如 id_{N}

N數據? ?可以對N的格式和范圍進行校驗,不符合的直接返回,不往下走。

這種一般是在緩存key不存在且數據庫不存在的情況下發生。

3、緩存雪崩

緩存雪蹦指的是同一時間大量緩存過期或者緩存不可用,導致大量的請求進入數據層。

針對這種情況一般是?

1 設置緩存的過期時間,一般需要再加些隨機數,避免過期時間大家都一樣。

2、保證緩存服務的高可用。

3、緩存擊穿:

指的是單個key在緩存中查不到,去數據庫查詢,如果數據庫數據量大并且是高并發的情況下那么就可能會造成數據庫壓力過大而崩潰。

解決辦法

1 使用鎖機制確保緩存生成過程是單線程在操作,其他線程需等待、重試。

2、利用redis add 特性 直接加鎖,其他請求進來,判斷是進行中的直接return.

總結

以上是生活随笔為你收集整理的redis缓存设计要点随谈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。