成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

01緩存-緩存是什么

AaronYuan / 1180人閱讀

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

前言:

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


一、系統(tǒng)緩存

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

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

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

二、Web緩存

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

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

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

瀏覽器緩存。

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

本地緩存;

分布式緩存。

三、緩存的特征

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

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

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

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

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

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

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

存儲位置

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

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

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

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

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

轉載請注明本文地址:http://systransis.cn/yun/62120.html

相關文章

  • vue增加強緩存和版本號

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

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

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

    incredible 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<