技術 技術方案優化策略 快取層面

2021-07-28 02:09:39 字數 621 閱讀 9910

兩種快取:

什麼情況適合用快取?

快取選型:

什麼時候更新快取?如何保證更新的可靠性和實時性?

更新快取的策略,需要具體問題具體分析。例如,目前約10萬個商品資料採用了redis作為快取服務,具體更新的策略有兩個:

快取滿了怎麼辦?

快取資料丟失怎麼辦?

如果不允許,就需要帶持久化功能的快取服務來支援,比如redis;

根據業務對丟失時間的容忍度,還可以選擇更具體的持久化策略,比如redis的rdb或者aof;

快取被擊穿怎麼辦?

「擊穿」:快取在某個時間點過期的時候,恰好在這個時間點對這個key有大量的併發請求過來,這些請求發現快取過期一般都會從後端db載入資料並回設到快取,這個時候大併發的請求可能會瞬間把後端db壓垮;

方案:在快取失效的時候(判斷拿出來的值為空),不是立即去load db,而是先使用快取工具的某些帶成功操作返回值的操作(比如redis的setnx或者memcache的add)去set乙個mutex key,當操作返回成功時,再進行load db的操作並回設快取;否則,就重試整個get快取的方法。

技術 技術方案優化策略 多執行緒與分布式

使用場景 離線任務 非同步任務 大資料任務 耗時較長任務的執行 適當地利用,可達到加速的效果。常用方案 1 單機多執行緒,可以引入執行緒池的機制,目標 2 多機多執行緒 分布式系統 引入乙個單獨的節點,作為排程器,其他的機器節點都作為執行器節點 排程器來負責拆分任務,和分發任務到合適的執行器節點 執...

快取的技術方案分析

1.最初級的快取不一致問題以及解決方案 問題 先修改資料庫,再刪除快取,如果刪除快取失敗了,那麼會導致資料庫中是新資料,快取中是舊資料,資料出現不一致 解決思路 先刪除快取,再修改資料庫,如果刪除快取成功了,如果修改資料庫失敗了,那麼資料庫中是舊資料,快取中是空的,那麼資料不會不一致,因為讀的時候快...

nginx 優化之快取技術

利用nginx 的expire 快取技術,可以將伺服器端的 的一些內容或資料儲存在客戶端,當客戶端再向伺服器端發出請求的時候,伺服器端可以給客戶端頭資訊,告訴它哪幾個檔案,是上次還沒過期的,或是現在還沒修改的,讓客戶端直接呼叫原來的快取。這樣可以大大減少對伺服器的資料請求。expire可寫在loca...