快取架構的存在使得客戶端訪問服務端時的速度得到很大的改進,因為當客戶端向服務端傳送請求的時候,先向快取層傳送請求,如果請求的資料存在於快取中,則直接將其返回。如果快取中沒有對應的資料就會實現快取穿透,去儲存層查詢,當在儲存層查詢到資料後會回寫到快取層,以便下次可以在快取層查詢相同資訊,同時返回給客戶端。當儲存器無法響應客戶端傳送的請求的時候,會觸發熔斷機制,即客戶端訪問服務端時,無論是否有資料都會直接返回,保證服務的可用性。
在實際看法的過程中,memcache和redis是兩種常用的快取中介軟體。但是它們各有自己的特點給和適用的場景。
memcache**層類似於雜湊結構,支援簡單的key-value結構的資料,不支援資料的持久化(即斷電或重啟後資料消失),不支援主從同步機制,也不支援分片操作(將較大資料分散儲存在多個物理結點的方案)。當伺服器宕機後,資料無法儲存在快取中。對於簡單的key-value操作可以使用memcache,記憶體的使用率會更高一點。
redis支援的資料型別比較豐富,支援磁碟持久化,支援類似於mysql的主從同步,同時在3.0版本後支援分片。
架構學習筆記 快取 快取穿透 快取雪崩 快取熱點
快取沒有生效,大量請求訪問某乙個key的資料 實際快取中並不存在該key的快取 然後都轉而降級查詢db 去了,最終的結果是db查詢壓力增大。可能的發生場景 解決辦法快取失效後由於需要重新生成快取,在生成快取的時間內接收到的請求大量請求,引起系統效能驟然下降。解決辦法更新鎖機制 對快取更新進行加鎖保護...
快取架構設計
快取架構設計 需求分析 快取是一種提高系統讀效能的常見技術,對於讀多寫少的應用場景,我們經常使用快取來進行優化。例如對於使用者的餘額資訊表account uid,money 業務上的需求是 查詢使用者的餘額,select money from account where uid 佔99 的請求 更改...
memcached快取架構優化
基本架構 web nginx php php fpm 9000 memcached mysql 安裝memcache工具包 yum install memcached y systemctl start memcached 安裝memcache原始碼包 tar zxf memcache 4.0.5....