国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

01緩存-緩存是什么

AaronYuan / 1173人閱讀

摘要:在這里所講的緩存是計(jì)算機(jī)設(shè)備的緩存。三緩存的特征命中率命中率返回正確結(jié)果數(shù)請(qǐng)求緩存次數(shù),命中率問題是緩存中的一個(gè)非常重要的問題,它是衡量緩存有效性的重要指標(biāo)。

前言:

對(duì)于工作經(jīng)驗(yàn)僅僅只有一年的我來說, 寫這篇文章有些吃力,并且感覺有些理解還不夠透徹,但是還是鉚足了勁想啃啃緩存這塊硬骨頭。緩存是性能優(yōu)化的一個(gè)必經(jīng)之路,可以說用好了緩存,性能優(yōu)化的路就走完一半了。


一、系統(tǒng)緩存

在知乎上找到這樣一篇講計(jì)算機(jī)緩存的文章計(jì)算機(jī)緩存Cache以及Cache Line詳解

存儲(chǔ)器是分層次的,離CPU越近的存儲(chǔ)器,速度越快,每字節(jié)的成本越高,同時(shí)容量也因此越小。寄存器速度最快,離CPU最近,成本最高,所以個(gè)數(shù)容量有限,其次是高速緩存(緩存也是分級(jí),有L1,L2等緩存),再次是主存(普通內(nèi)存),再次是本地磁盤。

在計(jì)算機(jī)中, CPU所需要的數(shù)據(jù)全部都來自于內(nèi)存, 不管是在內(nèi)存本身的數(shù)據(jù)還是在磁盤上的數(shù)據(jù)還是存在網(wǎng)絡(luò)上的數(shù)據(jù), 最終終究是會(huì)讀取到內(nèi)存中去, 然后CPU才能夠得到數(shù)據(jù)并作出相應(yīng)的反應(yīng)。而在CPU和內(nèi)存之間就存在者另一種一種物理硬件就是緩存,緩存中往往存著CPU正在執(zhí)行的一些指令,這樣就會(huì)減少CPU對(duì)內(nèi)存訪問的次數(shù),從而加快CPU的執(zhí)行效率。在這里所講的緩存是計(jì)算機(jī)設(shè)備的緩存。

二、Web緩存

在應(yīng)用的客戶端或服務(wù)端緩存并不會(huì)有一個(gè)真正的物理設(shè)備來提高效率, 而是通過內(nèi)存或本地磁盤來進(jìn)行存儲(chǔ)緩存數(shù)據(jù)來減少雙端交互,減少被請(qǐng)求端的查詢操作,以此來減少被請(qǐng)求端的計(jì)算次數(shù),減輕被請(qǐng)求端的壓力。
按照應(yīng)用分的話,Web緩存大致可以分為:

數(shù)據(jù)庫緩存;

服務(wù)器端緩存(代理服務(wù)器緩存、CDN 緩存);

瀏覽器緩存。

瀏覽器緩存也包含很多內(nèi)容: HTTP 緩存、indexDB、cookie、localstorage 等等。
按照應(yīng)用場(chǎng)景進(jìn)行劃分, 還可以分為:

本地緩存;

分布式緩存。

三、緩存的特征

命中率
命中率=返回正確結(jié)果數(shù)/請(qǐng)求緩存次數(shù),命中率問題是緩存中的一個(gè)非常重要的問題,它是衡量緩存有效性的重要指標(biāo)。命中率越高,表明緩存的使用率越高。

最大元素
緩存中可以存放的最大元素的數(shù)量,一旦緩存中元素?cái)?shù)量超過這個(gè)值(或者緩存數(shù)據(jù)所占空間超過其最大支持空間),那么將會(huì)觸發(fā)緩存啟動(dòng)清空策略根據(jù)不同的場(chǎng)景合理的設(shè)置最大元素值往往可以一定程度上提高緩存的命中率,從而更有效的時(shí)候緩存。

清空策略
如上描述,緩存的存儲(chǔ)空間有限制,當(dāng)緩存空間被用滿時(shí),如何保證在穩(wěn)定服務(wù)的同時(shí)有效提升命中率?這就由緩存清空策略來處理,設(shè)計(jì)適合自身數(shù)據(jù)特征的清空策略能有效提升命中率。常見的一般策略有:

FIFO(first in first out)
先進(jìn)先出策略,最先進(jìn)入緩存的數(shù)據(jù)在緩存空間不夠的情況下(超出最大元素限制)會(huì)被優(yōu)先被清除掉,以騰出新的空間接受新的數(shù)據(jù)。策略算法主要比較緩存元素的創(chuàng)建時(shí)間。在數(shù)據(jù)實(shí)效性要求場(chǎng)景下可選擇該類策略,優(yōu)先保障最新數(shù)據(jù)可用。

LFU(less frequently used)
最少使用策略,無論是否過期,根據(jù)元素的被使用次數(shù)判斷,清除使用次數(shù)較少的元素釋放空間。策略算法主要比較元素的hitCount(命中次數(shù))。在保證高頻數(shù)據(jù)有效性場(chǎng)景下,可選擇這類策略。

LRU(least recently used)
最近最少使用策略,無論是否過期,根據(jù)元素最后一次被使用的時(shí)間戳,清除最遠(yuǎn)使用時(shí)間戳的元素釋放空間。策略算法主要比較元素最近一次被get使用時(shí)間。在熱點(diǎn)數(shù)據(jù)場(chǎng)景下較適用,優(yōu)先保證熱點(diǎn)數(shù)據(jù)的有效性。

其他(除此之外,還有一些簡(jiǎn)單策略比如)
根據(jù)過期時(shí)間判斷,清理過期時(shí)間最長的元素;
根據(jù)過期時(shí)間判斷,清理最近要過期的元素;
隨機(jī)清理;
根據(jù)關(guān)鍵字(或元素內(nèi)容)長短清理等。
雖然從硬件介質(zhì)上來看,無非就是內(nèi)存和硬盤兩種,但從技術(shù)上,可以分成內(nèi)存、硬盤文件、數(shù)據(jù)庫。

存儲(chǔ)位置

內(nèi)存:將緩存存儲(chǔ)于內(nèi)存中是最快的選擇,無需額外的I/O開銷,但是內(nèi)存的缺點(diǎn)是沒有持久化落地物理磁盤,一旦應(yīng)用異常break down而重新啟動(dòng),數(shù)據(jù)很難或者無法復(fù)原。

硬盤:一般來說,很多緩存框架會(huì)結(jié)合使用內(nèi)存和硬盤,在內(nèi)存分配空間滿了或是在異常的情況下,可以被動(dòng)或主動(dòng)的將內(nèi)存空間數(shù)據(jù)持久化到硬盤中,達(dá)到釋放空間或備份數(shù)據(jù)的目的。

數(shù)據(jù)庫:前面有提到,增加緩存的策略的目的之一就是為了減少數(shù)據(jù)庫的I/O壓力。現(xiàn)在使用數(shù)據(jù)庫做緩存介質(zhì)是不是又回到了老問題上了?其實(shí),數(shù)據(jù)庫也有很多種類型,像那些不支持SQL,只是簡(jiǎn)單的key-value存儲(chǔ)結(jié)構(gòu)的特殊數(shù)據(jù)庫(如BerkeleyDB和Redis),響應(yīng)速度和吞吐量都遠(yuǎn)遠(yuǎn)高于我們常用的關(guān)系型數(shù)據(jù)庫等。

下一節(jié)將具體了解一下瀏覽器緩存。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/62120.html

相關(guān)文章

  • vue增加強(qiáng)緩存和版本號(hào)

    摘要:配置版本號(hào)管理在生產(chǎn)模式測(cè)試模式測(cè)試模式生產(chǎn)模式在配置了打包命令正式環(huán)境配版本號(hào)測(cè)試環(huán)境配版本號(hào)通過打包設(shè)置,版本號(hào)時(shí)間戳可以根據(jù)服務(wù)器設(shè)置強(qiáng)緩存,緩存靜態(tài)文件輸出重構(gòu)打包編譯后的文件名稱模塊名稱版本號(hào)時(shí)間戳 強(qiáng)緩存: 到底什么是強(qiáng)緩存?強(qiáng)在哪?其實(shí)強(qiáng)是強(qiáng)制的意思。當(dāng)瀏覽器去請(qǐng)求某個(gè)文件的時(shí)候,服務(wù)端就在respone header里面對(duì)改文件做了緩存配置。緩存的時(shí)間、緩存類型都由服...

    worldligang 評(píng)論0 收藏0
  • Nginx線程池性能提升9倍(Thread Pools in NGINX Boost Perform

    摘要:當(dāng)一個(gè)進(jìn)行需要處理阻塞操作時(shí),它會(huì)將這個(gè)任務(wù)交給線程池來完成。線程池配置如果你確信引入線程池對(duì)性能提升有效,那么咱們可以繼續(xù)了解一些調(diào)優(yōu)參數(shù)。這個(gè)錯(cuò)誤表示這個(gè)線程池消費(fèi)小于生產(chǎn),所以可以增加隊(duì)列長度,如果調(diào)整無效,說明系統(tǒng)達(dá)到了瓶頸。 五年級(jí)英語水平,端午家庭作業(yè)。 前言 Nginx以異步、事件驅(qū)動(dòng)的方式處理連接。傳統(tǒng)的方式是每個(gè)請(qǐng)求新起一個(gè)進(jìn)程或線程,Nginx沒這樣做,它通過非...

    incredible 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<