網站建設速成基本原理
分布式緩存
回顧網站架構演化歷程,當網站遇到性能瓶頸時,第一個想到的解決方案就是使用緩存。在整個網站應用中,緩存幾乎無所不在,既存在于瀏覽器,也存在于應用服務器和數據庫服務器;既可以對數據緩存,也可以對文件緩存,還可以對頁面片段緩存。合理使用緩存,對網站性能優化意義重大。
網站性能優化第一定律:優先考慮使用緩存優化性能。
緩存的基本原理
緩存指將數據存儲在相對較高訪問速度的存儲介質中,以供系統處理。一方面緩存訪問速度快,可以減少數據訪問的時間,另一方面如果緩存的數據是經過計算處理得到的,那么被緩存的數據無需重復計算即可直接使用,因此緩存還起到減少計算時間的作用。
緩存的本質是一個內存Hash表,網站應用中,數據緩存以一對Key、Value的形式存儲在內存Hash表中。Hash表數據讀寫的時間復雜度為0 ( 1 ),圖4.7為一對KV在Hash表中的存儲。
計算KV對中Key的HashCode對應的Hash表索引,可快速訪問Hash表中的數據。許多語言支持獲得任意對象的HashCode,可以把HashCode理解為對象的唯一標示符,Java語言中Hashcode方法包含在根對象Object中,其返回值是一個Int。然后通過Hashcode計算Hash表的索引下標,最簡單的是余數法,使用Hash表數組長度對Hashcode求余,余數即為Hash表索引,使用該索引可直接訪問得到Hash表中存儲的KV對。Hash表是軟件開發中常用到的一種數據結構,其設計思想在很多場景下都可以應用。