什麼是快取,其作用是什麼(快取的工作原理)

快取主要用來存放那些讀寫比很高、很少變化的資料,如商品的類目資訊,熱門詞的搜尋列表資訊,熱門商品資訊等。應用程式讀取資料時,先到快取中讀取,如果讀取不到或資料已失效,再訪問資料庫,並將資料寫入快取。

快取的本質是一個記憶體Hash 表,網站應用中,資料快取以一對Key、Value 的形式儲存在記憶體Hash表中。通過計算KV對中Key的HashCode對應的Hash表索引,可快速訪問Hash表中的資料。

許多語言支援獲得任意物件的HashCode,可以把HashCode理解為物件的唯一標示符 ,Java語言中Hashcode方法包含在根物件Object中,其返回值是一個 Int。然後通過Hasheode計算Hash表的索引下標,最簡單的是餘數法,使用Hash表陣列長度對Hashcode 求餘,餘數即為Hash表索引,使用該索引可直接訪問得到Hash表中儲存的KV對。Hash表是軟體開發中常用到的一種資料結構,其設計思想在很多場景下都可以應用。