摘要:認(rèn)識(shí)緩存緩存原意是指可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器。命中率指請(qǐng)求緩存次數(shù)與緩存返回正確結(jié)果次數(shù)的比例。如果相同,緩存直接使用副本相應(yīng)訪問(wèn),而不用向服務(wù)器發(fā)送請(qǐng)求緩存內(nèi)容應(yīng)用情形有完整的過(guò)期時(shí)間和壽命控制頭,并且沒(méi)過(guò)期。
1. 認(rèn)識(shí)緩存
緩存:
原意是指可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器。當(dāng)cpu處理數(shù)據(jù)時(shí),先到cache中尋找,如果數(shù)據(jù)已經(jīng)讀取,就不需要去RAM中讀取了
在web開(kāi)發(fā)中,緩存主要應(yīng)用在以下幾個(gè)方面,PHP為例:
底層有cpu緩存,磁盤(pán)文件系統(tǒng)緩存
應(yīng)用層有zend虛擬機(jī)變量緩存,有memcached這樣的key-value內(nèi)存緩存
數(shù)據(jù)庫(kù)層有Table cache, thread cache, query cache
servlet容器層有Apache的緩存
瀏覽器緩存
這些緩存都是存放在內(nèi)存或者硬盤(pán)中。一般的情況是需要速度的話存在內(nèi)存中,需要持久性和數(shù)據(jù)量比較大時(shí)用硬盤(pán)緩存。
命中率:
指請(qǐng)求緩存次數(shù)與緩存返回正確結(jié)果次數(shù)的比例。
緩存最大數(shù)據(jù)量:
能處理的元素最大個(gè)數(shù)或能使用的最大存儲(chǔ)空間
緩存更新策略(緩存內(nèi)存滿后,就會(huì)剔除老的緩存)
FIFO (first in first out)最先進(jìn)入緩存的數(shù)據(jù)最先被清理出去
LFU (less frequently used) 最少是用的元素會(huì)被清理掉。需要換存有hit屬性
LRU (least recently used) 最近最少使用的元素被清理。需要有時(shí)間戳。
2. 緩存實(shí)例 -- Opcode緩存:一個(gè)php程序運(yùn)行完后,內(nèi)存馬上釋放,基本所有數(shù)據(jù)都被銷(xiāo)毀,此時(shí)內(nèi)存不存在php代碼中的數(shù)據(jù),這和常住內(nèi)存的java等語(yǔ)言有顯著區(qū)別。
優(yōu)點(diǎn): 有效避免內(nèi)存泄露,內(nèi)存回收機(jī)制簡(jiǎn)單。避免因?yàn)橐粋€(gè)程序而連累整個(gè)服務(wù)器。
缺點(diǎn): 無(wú)法服用已有數(shù)據(jù),每個(gè)請(qǐng)求都重復(fù)執(zhí)行 請(qǐng)求--翻譯--執(zhí)行 過(guò)程
opcode(operation code)緩存就是虛擬機(jī)吧php代碼編譯成一種中間碼的結(jié)果緩存起來(lái)(硬盤(pán)或內(nèi)存)。下一次運(yùn)行到此頁(yè)面,直接解釋這些代碼就行了。省去Flex語(yǔ)法其進(jìn)行語(yǔ)法編譯和大部分語(yǔ)法檢查-- MySQL緩存
Mysql實(shí)例: Querycache 緩存客戶端提交給mysql的select語(yǔ)句的結(jié)果集。 就是把select語(yǔ)句和結(jié)果做hash映射后保存在一定的內(nèi)存區(qū)域內(nèi)
-- 客戶端緩存由瀏覽器來(lái)實(shí)現(xiàn)的,將瀏覽器在硬盤(pán)中存儲(chǔ)已經(jīng)看過(guò)的網(wǎng)頁(yè)副本。
如果URL相同,緩存直接使用副本相應(yīng)訪問(wèn),而不用向服務(wù)器發(fā)送請(qǐng)求
緩存內(nèi)容應(yīng)用情形:
有完整的過(guò)期時(shí)間和壽命控制頭,并且沒(méi)過(guò)期。 就是在expires和cache-control中的max-age值
瀏覽器已經(jīng)使用過(guò)緩存副本,并且在一個(gè)會(huì)話中檢查過(guò)過(guò)期時(shí)間。例如后退,前進(jìn)
如果緩存太舊了,會(huì)向服務(wù)器發(fā)送校驗(yàn)請(qǐng)求。如果資源不變,則返回304,內(nèi)容為空
內(nèi)容整理自 《php核心技術(shù)與最佳實(shí)踐》
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61978.html
摘要:認(rèn)識(shí)緩存緩存原意是指可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器。命中率指請(qǐng)求緩存次數(shù)與緩存返回正確結(jié)果次數(shù)的比例。如果相同,緩存直接使用副本相應(yīng)訪問(wèn),而不用向服務(wù)器發(fā)送請(qǐng)求緩存內(nèi)容應(yīng)用情形有完整的過(guò)期時(shí)間和壽命控制頭,并且沒(méi)過(guò)期。 1. 認(rèn)識(shí)緩存 緩存:原意是指可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器。當(dāng)cpu處理數(shù)據(jù)時(shí),先到cache中尋找,如果數(shù)據(jù)已經(jīng)讀取,就不需要去RAM中讀取了 在web開(kāi)發(fā)中,緩存主要...
摘要:緩存詳解標(biāo)簽空格分隔緩存緩存之于性能優(yōu)化請(qǐng)求更快通過(guò)將內(nèi)容緩存在本地瀏覽器或距離最近的緩存服務(wù)器如,在不影響網(wǎng)站交互的前提下可以大大加快網(wǎng)站加載速度。強(qiáng)制緩存不發(fā)請(qǐng)求到服務(wù)器,協(xié)商緩存會(huì)發(fā)請(qǐng)求到服務(wù)器。參考瀏覽器協(xié)議緩存機(jī)制詳解 Web緩存詳解 標(biāo)簽(空格分隔): 緩存 緩存之于性能優(yōu)化 請(qǐng)求更快:通過(guò)將內(nèi)容緩存在本地瀏覽器或距離最近的緩存服務(wù)器(如CDN),在不影響網(wǎng)站交互的前提...
摘要:緩存詳解標(biāo)簽空格分隔緩存緩存之于性能優(yōu)化請(qǐng)求更快通過(guò)將內(nèi)容緩存在本地瀏覽器或距離最近的緩存服務(wù)器如,在不影響網(wǎng)站交互的前提下可以大大加快網(wǎng)站加載速度。強(qiáng)制緩存不發(fā)請(qǐng)求到服務(wù)器,協(xié)商緩存會(huì)發(fā)請(qǐng)求到服務(wù)器。參考瀏覽器協(xié)議緩存機(jī)制詳解 Web緩存詳解 標(biāo)簽(空格分隔): 緩存 緩存之于性能優(yōu)化 請(qǐng)求更快:通過(guò)將內(nèi)容緩存在本地瀏覽器或距離最近的緩存服務(wù)器(如CDN),在不影響網(wǎng)站交互的前提...
摘要:基礎(chǔ)架構(gòu)最簡(jiǎn)單的網(wǎng)絡(luò)由一個(gè)服務(wù)器和幾臺(tái)緩存服務(wù)器組成當(dāng)用戶點(diǎn)擊網(wǎng)站頁(yè)面上的內(nèi)容,經(jīng)過(guò)本地系統(tǒng)解析,系統(tǒng)會(huì)最終將域名的解析權(quán)交給指向的專(zhuān)用服務(wù)器。用戶向緩存服務(wù)器發(fā)起請(qǐng)求,緩存服務(wù)器響應(yīng)用戶請(qǐng)求,將用戶所需內(nèi)容傳送到用戶終端。 CDN全稱(chēng):Content Delivery Network或Content Ddistribute Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)showImg(https:/...
閱讀 2260·2021-11-22 09:34
閱讀 2035·2021-09-22 15:22
閱讀 2032·2019-08-29 15:05
閱讀 2122·2019-08-26 10:43
閱讀 3419·2019-08-26 10:26
閱讀 901·2019-08-23 18:29
閱讀 3532·2019-08-23 16:42
閱讀 2007·2019-08-23 14:46