摘要:認識緩存緩存原意是指可以進行高速數據交換的存儲器。命中率指請求緩存次數與緩存返回正確結果次數的比例。如果相同,緩存直接使用副本相應訪問,而不用向服務器發(fā)送請求緩存內容應用情形有完整的過期時間和壽命控制頭,并且沒過期。
1. 認識緩存
緩存:
原意是指可以進行高速數據交換的存儲器。當cpu處理數據時,先到cache中尋找,如果數據已經讀取,就不需要去RAM中讀取了
在web開發(fā)中,緩存主要應用在以下幾個方面,PHP為例:
底層有cpu緩存,磁盤文件系統(tǒng)緩存
應用層有zend虛擬機變量緩存,有memcached這樣的key-value內存緩存
數據庫層有Table cache, thread cache, query cache
servlet容器層有Apache的緩存
瀏覽器緩存
這些緩存都是存放在內存或者硬盤中。一般的情況是需要速度的話存在內存中,需要持久性和數據量比較大時用硬盤緩存。
命中率:
指請求緩存次數與緩存返回正確結果次數的比例。
緩存最大數據量:
能處理的元素最大個數或能使用的最大存儲空間
緩存更新策略(緩存內存滿后,就會剔除老的緩存)
FIFO (first in first out)最先進入緩存的數據最先被清理出去
LFU (less frequently used) 最少是用的元素會被清理掉。需要換存有hit屬性
LRU (least recently used) 最近最少使用的元素被清理。需要有時間戳。
2. 緩存實例一個php程序運行完后,內存馬上釋放,基本所有數據都被銷毀,此時內存不存在php代碼中的數據,這和常住內存的java等語言有顯著區(qū)別。
優(yōu)點: 有效避免內存泄露,內存回收機制簡單。避免因為一個程序而連累整個服務器。
缺點: 無法服用已有數據,每個請求都重復執(zhí)行 請求--翻譯--執(zhí)行 過程
opcode(operation code)緩存就是虛擬機吧php代碼編譯成一種中間碼的結果緩存起來(硬盤或內存)。下一次運行到此頁面,直接解釋這些代碼就行了。省去Flex語法其進行語法編譯和大部分語法檢查
Mysql實例: Querycache 緩存客戶端提交給mysql的select語句的結果集。 就是把select語句和結果做hash映射后保存在一定的內存區(qū)域內
由瀏覽器來實現的,將瀏覽器在硬盤中存儲已經看過的網頁副本。
如果URL相同,緩存直接使用副本相應訪問,而不用向服務器發(fā)送請求
緩存內容應用情形:
有完整的過期時間和壽命控制頭,并且沒過期。 就是在expires和cache-control中的max-age值
瀏覽器已經使用過緩存副本,并且在一個會話中檢查過過期時間。例如后退,前進
如果緩存太舊了,會向服務器發(fā)送校驗請求。如果資源不變,則返回304,內容為空
內容整理自 《php核心技術與最佳實踐》
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8984.html
摘要:緩存詳解標簽空格分隔緩存緩存之于性能優(yōu)化請求更快通過將內容緩存在本地瀏覽器或距離最近的緩存服務器如,在不影響網站交互的前提下可以大大加快網站加載速度。強制緩存不發(fā)請求到服務器,協(xié)商緩存會發(fā)請求到服務器。參考瀏覽器協(xié)議緩存機制詳解 Web緩存詳解 標簽(空格分隔): 緩存 緩存之于性能優(yōu)化 請求更快:通過將內容緩存在本地瀏覽器或距離最近的緩存服務器(如CDN),在不影響網站交互的前提...
摘要:緩存詳解標簽空格分隔緩存緩存之于性能優(yōu)化請求更快通過將內容緩存在本地瀏覽器或距離最近的緩存服務器如,在不影響網站交互的前提下可以大大加快網站加載速度。強制緩存不發(fā)請求到服務器,協(xié)商緩存會發(fā)請求到服務器。參考瀏覽器協(xié)議緩存機制詳解 Web緩存詳解 標簽(空格分隔): 緩存 緩存之于性能優(yōu)化 請求更快:通過將內容緩存在本地瀏覽器或距離最近的緩存服務器(如CDN),在不影響網站交互的前提...
閱讀 3325·2021-11-19 11:36
閱讀 2926·2021-09-27 13:34
閱讀 1989·2021-09-22 15:17
閱讀 2403·2019-08-30 13:49
閱讀 753·2019-08-26 13:58
閱讀 1357·2019-08-26 10:47
閱讀 2536·2019-08-23 18:05
閱讀 598·2019-08-23 14:25