久久久久国产精品熟女影院_天天躁日日躁狠狠躁欧美老妇 理论片中文字幕-91亚洲国产成人久久精品网站-视频国

頁面輸出緩存是現(xiàn)在互聯(lián)網(wǎng)應(yīng)用普遍采用的技術(shù)方案,因?yàn)轫撁孑敵鼍彺娴男阅芘c負(fù)載能力與靜態(tài) HTML 接近,但不需要像靜態(tài) HTM L文件一樣必須事先生成才能訪問,而是在第一次訪問頁面時(shí)生成。

頁面輸出緩存的原理

系統(tǒng)處理客戶端的請求時(shí),先看看有沒有相應(yīng)的頁面輸出緩存,如果有緩存且沒有過期,就直接讀取緩存并返回頁面 HTML 代碼給客戶端;如果沒有緩存,或緩存已經(jīng)過期,則執(zhí)行完整的頁面解析過程,返回頁面 HTML 代碼給客戶端,并將頁面 HTML 代碼保存到緩存中,這樣下次再處理同樣的請求時(shí)就直接從緩存讀取并返回給客戶端了。

這一原理和數(shù)據(jù)緩存非常類似。事實(shí)上,我們可以將頁面輸出緩存理解成一種特殊的數(shù)據(jù)緩存。

頁面輸出緩存和數(shù)據(jù)緩存的主要區(qū)別

數(shù)據(jù)格式差異
頁面輸出緩存,緩存的是整個(gè)解析后的頁面 HTML 代碼;而數(shù)據(jù)緩存,一般緩存的是頁面中要調(diào)用的各個(gè)對象(比如各種 參數(shù)配置、所有站點(diǎn)信息、所有節(jié)點(diǎn)信息、所有權(quán)限數(shù)據(jù)等)。
存儲(chǔ)位置差異
在我們系統(tǒng)中,頁面輸出緩存是以緩存文件方式保存在硬盤中的,類似于生成 HTML 功能的 HTML 文件;數(shù)據(jù)緩存一般是保存在內(nèi)存中的,或者使用分布式緩存系統(tǒng)來保存。
數(shù)據(jù)量差異
頁面輸出緩存的數(shù)量非常非常多,假如我們有50萬篇文章、10萬個(gè)節(jié)點(diǎn)列表及分頁,要為 PC/手機(jī)/PAD 三種設(shè)備緩存,則會(huì)有超過(50+10)X3=180萬個(gè)頁面輸出緩存文件;而數(shù)據(jù)緩存的數(shù)量一般在幾百個(gè)即可,相對于頁面輸出緩存來說,少得多。

功能特性

緩存策略

支持針對不同頁面配置不同的緩存策略和緩存失效策略。

攻擊防護(hù)

系統(tǒng)針對緩存穿透、緩存雪崩、緩存擊穿等情況都做了防范。

系統(tǒng)能夠防護(hù)各種潛在的緩存攻擊行為,如窮舉訪問不存在的頁面等。

手工清理緩存

支持手動(dòng)清理站點(diǎn)首頁緩存、所有節(jié)點(diǎn)緩存、所有內(nèi)容緩存、全站頁面緩存以及未發(fā)布內(nèi)容的頁面緩存。

支持在站點(diǎn)管理、節(jié)點(diǎn)管理、內(nèi)容采編發(fā)中分別清理指定的站點(diǎn)、節(jié)點(diǎn)、內(nèi)容的頁面輸出緩存。

自動(dòng)按需清理緩存

在執(zhí)行添加、修改、刪除、審核通過、取消審核、發(fā)布、取消發(fā)布、移動(dòng)等操作時(shí),系統(tǒng)會(huì)自動(dòng)清理對應(yīng)頁面的緩存文件,包括內(nèi)容頁、列表頁和站點(diǎn)首頁等。

當(dāng)在節(jié)點(diǎn)A的模板中調(diào)用了跨上下級關(guān)系的節(jié)點(diǎn) B 的內(nèi)容時(shí),系統(tǒng)會(huì)自動(dòng)識別并維護(hù)節(jié)點(diǎn)間的關(guān)聯(lián)關(guān)系。因此,在節(jié)點(diǎn) B 進(jìn)行添加、審核、發(fā)布等操作時(shí),不僅會(huì)自動(dòng)清理節(jié)點(diǎn)B的頁面緩存,還會(huì)同步清理節(jié)點(diǎn) A 的頁面緩存,避免因遺漏清理導(dǎo)致節(jié)點(diǎn) A 的列表頁面無法及時(shí)更新。

當(dāng)模板文件發(fā)生改變時(shí)自動(dòng)清理調(diào)用了此模板的相關(guān)頁面的頁面輸出緩存。

主動(dòng)更新頁面輸出緩存

在清理緩存的時(shí),系統(tǒng)會(huì)創(chuàng)建更新緩存的任務(wù)及其詳細(xì)信息。讓另外部署的緩存更新工具來訪問后臺(tái)服務(wù)器,從而及時(shí)將相應(yīng)的頁面創(chuàng)建好頁面輸出緩存,這樣就與生成 HTML 的機(jī)制類似,從而極大提高整個(gè)系統(tǒng)的負(fù)載能力。此外,系統(tǒng)支持生成任務(wù)的優(yōu)先級控制,以便在不同應(yīng)用場景中靈活處理 HTML 生成的優(yōu)先次序。系統(tǒng)還支持對任務(wù)及其詳細(xì)信息進(jìn)行排重處理,以減少對服務(wù)器資源的無效消耗。

數(shù)據(jù)庫共享緩存

在多服務(wù)器負(fù)載均衡的部署環(huán)境中,各服務(wù)器可以通過數(shù)據(jù)庫共享緩存數(shù)據(jù)。一旦其中一臺(tái)服務(wù)器生成了緩存,其余服務(wù)器能夠直接從數(shù)據(jù)庫中獲取共享的緩存,并將其轉(zhuǎn)化為本地文件緩存,從而避免重新執(zhí)行完整的頁面解析過程。這種方法大大提高了整個(gè)系統(tǒng)的負(fù)載能力。

多服務(wù)器同步清理

在分布式部署環(huán)境中,支持通過消息隊(duì)列讓所有服務(wù)器同步清理頁面輸出緩存。

查看清理任務(wù)

支持在后臺(tái)查看更新緩存任務(wù)及任務(wù)進(jìn)度。

頁面輸出緩存相比生成靜態(tài) HTML 的優(yōu)勢

相比生成 HTML 方式,頁面輸出緩存機(jī)制具有如下優(yōu)勢:
  • 無需事先生成

    無需事先生成緩存,這樣即使沒有事先生成緩存,訪問頁面時(shí)也不會(huì)出現(xiàn)404錯(cuò)誤(頁面無法找到的提示);相比之下,生成靜態(tài) HTML 的主要缺點(diǎn)在于頁面必須提前生成,否則訪問時(shí)會(huì)報(bào)404錯(cuò)誤。

  • 邏輯簡單

    在清理緩存后,頁面會(huì)立即顯示最新的效果,這使得按需清理緩存的邏輯相對簡單得多。而對于靜態(tài) HTML 頁面,則需要重新生成文件才能看到最新的效果,因此不能刪除原有文件后再重新生成 HTML 文件,只能替換原有文件,這導(dǎo)致按需生成 HTML 的邏輯變得非常復(fù)雜。

  • 無需等待

    各種操作后幾乎可以無需要等待就可以看到效果。因?yàn)榍謇砭彺嫖募乃俣葮O快,所以后臺(tái)各種操作后最多只需要幾秒就完成了清理緩存操作,所以我們可以馬上看到效果。而生成 HTML 操作則比較耗時(shí)(單機(jī)環(huán)境下每秒只能生成1~10個(gè) HTML 頁面),在一些需要生成大量 HTML 的使用場景時(shí),往往要等上幾分鐘甚至幾個(gè)小時(shí)才能看到最新的效果。

  • 不容易出現(xiàn)垃圾緩存文件

    在移動(dòng)欄目、移動(dòng)內(nèi)容或關(guān)閉生成 HTML 等操作時(shí),系統(tǒng)會(huì)自動(dòng)清理相應(yīng)的緩存。此外,由于緩存文件都有一個(gè)有效期,即使偶爾存在垃圾緩存文件,過了有效期后也無法再訪問。如果確實(shí)發(fā)現(xiàn)垃圾緩存文件,只需清理一下全站緩存即可。而 HTML 生成機(jī)制則容易產(chǎn)生垃圾 HTML 文件,即使網(wǎng)站內(nèi)的其他頁面沒有鏈接指向這些文件,外部鏈接(如搜索引擎收錄的地址)仍可能指向這些垃圾 HTML 文件,導(dǎo)致它們?nèi)匀豢稍L問,從而引發(fā)意想不到的問題。某些情況下,這些問題可能嚴(yán)重到引發(fā)政治性錯(cuò)誤。這也是許多客戶從其他系統(tǒng)轉(zhuǎn)向我們系統(tǒng)的重要原因之一。

  • 清理垃圾緩存文件非常容易

    選擇一個(gè)沒有用戶訪問的時(shí)間段來清理全站緩存是比較簡單的操作。然而,清理垃圾HTML文件卻非常棘手。因?yàn)檎5?HTML 文件和垃圾 HTML 文件混雜在一起,為了確保網(wǎng)站的正常訪問,無法直接刪除所有的 HTML 文件。因此,無法執(zhí)行“刪除站點(diǎn) HTML 文件”這類操作。唯一可行的方案是重新生成整個(gè)站點(diǎn)的所有 HTML 頁面,然后手動(dòng)篩選出某個(gè)時(shí)間點(diǎn)之前的 HTML 文件并進(jìn)行刪除。

  • 管理員查看時(shí)自動(dòng)更新緩存

    通過特殊的設(shè)計(jì),管理員在查看前臺(tái)對應(yīng)頁面時(shí),能夠始終看到最新的內(nèi)容,并且此操作還會(huì)自動(dòng)刷新緩存。然而,由于生成 HTML 的機(jī)制特性,這種實(shí)時(shí)更新的功能無法實(shí)現(xiàn)。

  • 原生支持多屏優(yōu)化

    通過為每種設(shè)備生成相應(yīng)的頁面輸出緩存,實(shí)現(xiàn)了對不同設(shè)備的原生多屏優(yōu)化支持,同時(shí)不會(huì)影響系統(tǒng)的性能和負(fù)載能力。

  • 支持前臺(tái)訪問權(quán)限控制

    通過將權(quán)限檢查判斷與頁面解析/緩存讀取相分離的設(shè)計(jì)思路,系統(tǒng)能夠同時(shí)支持權(quán)限檢查和頁面輸出緩存功能,從而確保即使在需要進(jìn)行權(quán)限檢查的情況下,網(wǎng)站的性能和負(fù)載能力也幾乎不會(huì)受到影響。而靜態(tài) HTML 文件由于其固有的特性,無法實(shí)現(xiàn)訪問權(quán)限控制。

  • 支持前臺(tái) IP 訪問限定

    通過將 IP 訪問限定的檢查判斷與頁面解析/緩存讀取相分離的設(shè)計(jì)思路,系統(tǒng)能夠同時(shí)支持IP訪問限制檢查和頁面輸出緩存功能,從而確保在進(jìn)行 IP 訪問限制檢查時(shí),網(wǎng)站的性能和負(fù)載能力幾乎不受影響。而靜態(tài) HTML 文件由于其固有特性,無法實(shí)現(xiàn) IP 訪問限制功能。

×

用戶登錄