兩種快取:
什麼情況適合用快取?
快取選型:
什麼時候更新快取?如何保證更新的可靠性和實時性?
更新快取的策略,需要具體問題具體分析。例如,目前約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...