10個常見的快取使用誤區
在日常工作中,開發者經常利用快取來進行優化站點或優化應用程式。但在實際應用中,在使用快取時,總是那麼不盡如意。這什麼原因呢?本文,筆者收集了最為常見的十大快取誤區以及使用建議。我們一起來看下 :
1. 依賴預設的序列化。
預設的序列化處理方式可能會消耗大量的CPU資源,特別是處理複雜型別資料時。所以建議要根據語音和環境的不同,採用最優化的序列化和反序列化方式。
2. 在單一快取中儲存大物件資料。
由於序列化和反序列化需要一定的資源開銷,處於併發負載時,大物件圖形資料的頻繁讀取有可能會讓伺服器的CPU崩潰。相反,不妨考慮把大物件資料打散為較小的子物件,之後再各自進行快取。根據你的需求讀取最小的資料單元。
3. 在不同程式間使用快取共享物件。
出現競態條件(Race conditions)時,當寫程式也參與其中,同時剛好程式的某部分也訪問同一緩衝物件,情況會變得更壞。採取外部鎖機制是有必要的。
4. 儲存資料後立馬進行快取。
千萬不要倉促行事,即使是剛寫入不久,當儲存資源緊張時,一個快取足以阻礙程式執行。所以用程式碼來進行快取空值返回檢查是很有必要的。
5. 使用巢狀物件儲存全集合。
由於序列化的影響,執行一次全集合儲存會導致程式執行變慢。有鑑於此,單獨對獨立物件進行快取可以實現分開讀取,減少序列化影響。
6. 對父子物件採取統一與單獨混用的儲存方式。
有時候一個物件可能擁有兩個或更多的父物件。根據統一物件本身的鍵進行快取以便不會把同一物件儲存於不同地方,這樣父物件可以按需訪問子物件。
7. 對配置資訊進行快取。
使用程式的本地靜態變數來儲存配置資料。快取資料訪問是有代價的,所以要儘可能把影響減到最低。
8. 對活性物件進行快取,例如:流,檔案,註冊資訊或者網路。
不要嘗試對上述等包含引用資訊的活性物件進行快取。因為當快取資料被刪除後,之前快取的活性物件不會被刪除,這樣會造成系統資源洩漏。
9. 對同一物件採取多鍵儲存。
這樣或許在使用一個鍵和索引號來進行訪問時帶來便利。如果一個快取是in-memory的,這樣做是可行的,因為快取中包含了同一物件的引用資訊,也就是說一旦該物件發生變更,都可以透過兩邊的訪問路徑進行檢視。如果是遠端(外部)快取,任何變更的發生都是不可見的,所以這樣會導致同步問題的產生。
10.在連續儲存中進行更新或刪除後沒有及時更新相應快取物件。
在一個遠端快取中,資料以拷貝方式儲存,所以當更新物件時,快取不會被同步更新。快取必須被明確指定,才能根據變更而進行更新。在in-memory快取中,一個物件發生的變更是對所有人可見的。在刪除時情況類似,刪除一個物件時,在快取中不會被同步刪除。這取決於程式本身如何確保快取物件被正確刪除。
英文出自:highscalability
相關文章
- 十個常見的快取使用誤區及建議快取
- 使用快取的9個誤區(上)快取
- 10個常見的Android 新手誤區Android
- 使用快取的 9 大誤區快取
- 使用快取的9大誤區快取
- 使用快取的9大誤區(下)快取
- PWA常見的快取策略快取
- 5 個常見的 Rails 開發誤區AI
- 使用代理IP常見的三大誤區
- 常見的ERP系統實施中的10個誤區
- 智慧應用中八個常見的誤區
- SOCKS代理的常見誤區
- 【譯】使用 Android Architecture Components 的五個常見誤區Android
- NodeJS 開發者的 10 個常見錯誤NodeJS
- 敏捷軟體測試常見的七個誤區敏捷
- 常見的資料分析誤區
- 使用Python時常見的9個錯誤Python
- Redis常見問題(快取雪崩)Redis快取
- Nginx 快取使用官方教程及常見問題解答Nginx快取
- Redis 面試常見問題———快取雪崩、快取擊穿以及快取穿透Redis面試快取穿透
- JavaScript的一些常見誤區JavaScript
- 招聘開發者常見的九大誤區
- 7個前端新手常見誤區,千萬要避開前端
- win XP“寫入快取失敗”的八個常見原因(轉)快取
- Redis 快取常見問題處理Redis快取
- Linux新手常見的7個認知誤區,你中了幾個?Linux
- Python程式設計師的10個常見錯誤Python程式設計師
- 談談資料安全常見的誤區
- 資料治理常見的誤區有哪些
- 美女程式設計師分享資料庫常見17個使用誤區 - Jaana程式設計師資料庫
- 使用 Promise 時的5個常見錯誤,你佔了幾個!Promise
- 常見的5個區塊鏈應用開發錯誤理解區塊鏈
- 快取常見問題及解決方案快取
- 常見資料分析誤區有哪些?
- 那些常見的Web前端學習誤區分享!Web前端
- Go常見錯誤第15篇:interface使用的常見錯誤和最佳實踐Go
- 中科三方:關於SSL證書的幾個常見誤區
- Code Review 常見的5個錯誤模式View模式