直播平臺(tái)搭建源碼,緩存可以強(qiáng)制執(zhí)行你聽說過嗎
緩存技術(shù)存在于多個(gè)場(chǎng)景中,不僅僅是直播平臺(tái)搭建源碼,從進(jìn)程內(nèi)緩存到分布式緩存再到反向代理服務(wù)器,緩存有很多種。其中緩存策略、算法也是層出不窮,在HTTP協(xié)議下,直播平臺(tái)搭建源碼常用的緩存方式有兩種,強(qiáng)制緩存和對(duì)比緩存。
?

一、強(qiáng)制緩存
當(dāng)直播平臺(tái)搭建源碼在本地緩存庫(kù)中保存了緩存信息后,緩存數(shù)據(jù)未失效的情況下,可以直接使用緩存數(shù)據(jù),否則就需要獲取數(shù)據(jù)。這種緩存機(jī)制看上去比較直接,那么如何判斷緩存數(shù)據(jù)是否失效呢?需要關(guān)注HTTP Header中的兩個(gè)字段,Expires和Cache。
Expires為服務(wù)端返回的過期時(shí)間,客戶端第一次請(qǐng)求服務(wù)器,服務(wù)器會(huì)返回資源的過期時(shí)間。如果客戶端再次請(qǐng)求服務(wù)器,會(huì)把請(qǐng)求時(shí)間與過期時(shí)間作比較。如果請(qǐng)求時(shí)間小于過期時(shí)間,那么說明緩存沒有過期,可以直接使用本地緩存庫(kù)信息;反之說明數(shù)據(jù)已經(jīng)過期,必須從服務(wù)器重新獲取信息,獲取完又會(huì)更新最新的過期時(shí)間。
Cache中有個(gè)max-age屬性,單位是秒,用來(lái)表示直播平臺(tái)搭建源碼緩存內(nèi)容在客戶端的過期時(shí)間。
?

二、對(duì)比緩存
需要對(duì)比直播平臺(tái)搭建源碼前后兩次緩存標(biāo)志來(lái)判斷是否使用緩存,用戶第一次請(qǐng)求時(shí),服務(wù)器會(huì)將緩存標(biāo)識(shí)與數(shù)據(jù)一起返回,平臺(tái)將兩者備份到本地緩存庫(kù)中,當(dāng)用戶再次請(qǐng)求時(shí),將備份的緩存標(biāo)識(shí)發(fā)送給服務(wù)器。
服務(wù)器根據(jù)緩存標(biāo)識(shí)進(jìn)行判斷,如果判斷數(shù)據(jù)沒有發(fā)生變化,把判斷成功狀態(tài)碼發(fā)送給平臺(tái)。這時(shí)平臺(tái)可以使用緩存的數(shù)據(jù)來(lái)進(jìn)行接下來(lái)的處理。
?

三、高性能對(duì)比
當(dāng)緩存做成分布式的時(shí)候,數(shù)據(jù)會(huì)根據(jù)一定的規(guī)律分配到每一個(gè)緩存應(yīng)用上,如果我們把這些緩存應(yīng)用叫做緩存節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)一般都可以緩存一定容量的數(shù)據(jù),如果需要緩存的數(shù)據(jù)量比較大,就需要庫(kù)造化弄多個(gè)緩存節(jié)點(diǎn)來(lái)實(shí)現(xiàn),不過直播平臺(tái)搭建源碼需要借助緩存代理服務(wù)器來(lái)解決這些問題。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任