您好,登錄后才能下訂單哦!
本篇內容介紹了“緩存時有哪些問題”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
系統先從緩存中獲取數據,如果成功獲取到數據,則直接返回數據;
若沒有獲取到,則從數據庫中獲取,從數據庫中正常獲取之后,把數據更新進緩存中,返回正常數據;
若從數據庫中也沒有獲取到數據,則返回空數據。
原有緩存失效,最新緩存數據未進入緩存期間,原本所有從緩存獲取數據的請求都去查詢數據庫了。
對數據庫CPU和內存造成巨大壓力,嚴重會造成數據庫宕機。
解決方案:
緩存數據的過期時間設置隨機,避免同一時間大量緩存過期。
如果緩存數據是分布式部署,則將熱點數據均勻分布在不同的緩存數據庫中。
設置熱點數據永不過期
指的是用戶所查詢的數據,數據庫中不存在,緩存中也不存在。但是用戶不斷進行查詢,導致數據庫壓力過大。
解決方案:
接口層增加校驗,對于查詢數據進行基礎校驗,不符合規則的,直接拒絕。
從緩存取不到的數據,在數據庫中也查不到,則可以將key-value對寫成key-null,緩存起來。
系統上線后,將相關的緩存數據直接加載到緩存系統,可以避免在用戶請求的時候,先查詢數據庫,然后再將
數據緩存的問題。
除了緩存服務器自帶的緩存失效策略之外,我們還可以具體的業務場景,進行自定義緩存淘汰。
常見的策略如下:
定時清理過期的緩存。
當用戶請求數據的時候,判斷這個請求用到的緩存是否過期,過期的話,直接更新緩存。
當訪問量劇增,服務出現問題的時候,或者非核心服務影響到核心流程的性能時,仍然需要保證服務可用,即時是有損服務的。
系統可以根據一些關鍵數據進行自動降級,也可以配置開關實現人工降級。
降級的最終目的是保證核心服務可用。
有些服務因為網絡抖動或者服務正在上線而超時,進行降級。
有些服務在一段時間內成功率有波動,可以自動降級或者人工降級,發送系統告警
服務不可用或者服務數據混亂,需要緊急人工降級
“緩存時有哪些問題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。