摘要:瀏覽器緩存根據(jù)一套與服務器約定的規(guī)則進行工作檢查確定副本是否最新,通常只要一次會話。數(shù)據(jù)庫緩存是一類特殊的緩存,是數(shù)據(jù)庫自身的緩存機制。存儲成本當,系統(tǒng)會從數(shù)據(jù)庫或者其他數(shù)據(jù)源取出數(shù)據(jù),然后放入存儲,這個過程需要時間和空間,這就是緩存成本。
什么是緩存
存儲在計算機上的一個原始數(shù)據(jù)復制集,以便于訪問。 --維基百科
緩存是系統(tǒng)快速響應中的一種關(guān)鍵技術(shù),是一組被保存起來以備將來使用的東西,介于應用開發(fā)跟系統(tǒng)開發(fā)之間。
根據(jù)軟件系統(tǒng)中所處位置的不同,緩存大體可以分為三類:
客戶端緩存
服務器緩存
網(wǎng)絡中的緩存
根據(jù)規(guī)模和部署方式緩存也可以分為:
單體緩存
緩存集群
分布式緩存
客戶端緩存頁面緩存:
頁面自身的緩存或者離線應用緩存,頁面自身對某些元素或全部元素進行緩存,或服務端將靜態(tài)頁面或動態(tài)頁面的元素進行緩存。
頁面緩存是將之前渲染的頁面保存為文件,當用戶再次訪問時可以避開網(wǎng)絡連接,從而減少負載,提升性能和用戶體驗。
瀏覽器緩存:
根據(jù)一套與服務器約定的規(guī)則進行工作:檢查確定副本是否最新,通常只要一次會話。
補充------
app緩存
網(wǎng)絡中的緩存web代理緩存
邊緣緩存
服務端緩存數(shù)據(jù)庫緩存
數(shù)據(jù)庫屬于IO密集型的應用,主要負責數(shù)據(jù)的管理及存儲。數(shù)據(jù)庫緩存是一類特殊的緩存,是數(shù)據(jù)庫自身的緩存機制。
以mysql為例,mysql中使用了查詢緩沖機制,將SELECT語句和查詢結(jié)果存放在緩沖區(qū)中,以后對于同樣的SELECT語句,講直接從緩存區(qū)中讀取結(jié)果,以節(jié)省查詢時間,提高了sql查詢的效率。
平臺級緩存
在系統(tǒng)開發(fā)中,適當?shù)氖褂闷脚_級緩存往往可以取得事半功倍的效果。
在這里指用來寫帶有緩存特性的應用框架,或者可用于緩存功能的專用庫。
應用級緩存當平臺級緩存不能滿足系統(tǒng)性能要求時,就要考慮使用應用級緩存了。應用級緩存,需要開發(fā)者通過代碼來實現(xiàn)緩存機制,這里是nosql的勝場,無論是Redis還是MongoDB,以及Memcached都可以作為應用級存儲的重要技術(shù)。
緩存算法:在實現(xiàn)緩存應用的時候,需要了解緩存技術(shù)中的幾個術(shù)語。
緩存命中:請求的數(shù)據(jù)在緩存中。
沒有命中:cache miss,如果緩存中還有存儲空間,那么沒有命中的對象會被儲存到緩存中來。
存儲成本:當cache miss,系統(tǒng)會從數(shù)據(jù)庫或者其他數(shù)據(jù)源取出數(shù)據(jù),然后放入存儲,這個過程需要時間和空間,這就是緩存成本。
緩存失效:當存儲在緩存中的數(shù)據(jù)需要更新時,就以為著緩存中的這一數(shù)據(jù)失效了。
替代策略:當緩存沒有命中時,并且緩存容量已經(jīng)滿了,就需要在緩存中去除一條舊數(shù)據(jù),然后加入一條新數(shù)據(jù),替代的選擇就有替代策略決定。
Least-Recently-Used(LRU):最近被請求最少的對象
Least-Frequently-Used(LFU):訪問次數(shù)最少的對象
SIZE:占用空間最大的對象
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/62019.html
摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...
摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...
摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識點總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機制解讀抽象類與三大特征時間和時間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對象鎖和類鎖的區(qū)別,,優(yōu)缺點及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...
閱讀 1824·2021-11-24 09:39
閱讀 1758·2021-11-22 15:22
閱讀 1069·2021-09-27 13:36
閱讀 3415·2021-09-24 10:34
閱讀 3404·2021-07-26 23:38
閱讀 2685·2019-08-29 16:44
閱讀 1020·2019-08-29 16:39
閱讀 1182·2019-08-29 16:20