在線直播系統(tǒng)源碼,圍繞緩存做了哪些工作?
在線直播系統(tǒng)源碼保證高并發(fā)性能是離不開緩存的作用的,像系統(tǒng)中訪問比較頻繁的數(shù)據(jù)、熱點(diǎn)數(shù)據(jù)等都可以放在緩存中,當(dāng)用戶發(fā)起該類數(shù)據(jù)的訪問請(qǐng)求,直接從緩存中讀取即可。在在線直播系統(tǒng)源碼的開發(fā)中,圍繞緩存還做了哪些工作呢?

一、緩存回收策略
評(píng)估在線直播系統(tǒng)源碼中緩存效果的關(guān)鍵指標(biāo)就是緩存命中率,為了提升該指標(biāo)則需要通過緩存回收策略審視緩存中相關(guān)數(shù)據(jù)存在的必要性。常用的緩存回收策略有以下幾種:
1、基于空間
主要是指當(dāng)緩存的數(shù)據(jù)超過在線直播系統(tǒng)源碼中緩存設(shè)置的存儲(chǔ)空間大小時(shí),就按照既定的策略淘汰數(shù)據(jù)。
2、基于容量
主要是指當(dāng)緩存的數(shù)據(jù)超過在線直播系統(tǒng)源碼中緩存涉及自的數(shù)量條目上限時(shí),則按照策略淘汰。
3、基于時(shí)間
主要是指當(dāng)緩存中的數(shù)據(jù)超過緩存設(shè)置的存活時(shí)間或在一定時(shí)間內(nèi)都沒有被訪問,則會(huì)被移除。
4、基于算法
在線直播系統(tǒng)源碼經(jīng)常會(huì)用到的淘汰算法有三種,分別是先進(jìn)先出算法、最不常用算法、最近最少被使用算法。

二、緩存問題及解決方式
1、緩存穿透
當(dāng)用戶請(qǐng)求訪問的數(shù)據(jù)既不存在于在線直播系統(tǒng)源碼的緩存中,也不存在于數(shù)據(jù)庫中時(shí),系統(tǒng)為了做出響應(yīng)依舊會(huì)每次對(duì)數(shù)據(jù)庫進(jìn)行查詢的情況,緩存穿透會(huì)導(dǎo)致數(shù)據(jù)庫壓力的增加,通常我們會(huì)通過設(shè)置緩存空值的方式進(jìn)行解決。
2、緩存擊穿
主要是指在線直播系統(tǒng)源碼在高并發(fā)場(chǎng)景下,大量的請(qǐng)求同時(shí)查詢同一個(gè)在緩存中已經(jīng)失效的數(shù)據(jù)時(shí),就會(huì)導(dǎo)致同一時(shí)間數(shù)據(jù)庫承受大量的查詢壓力。為了避免在某一時(shí)刻數(shù)據(jù)庫請(qǐng)求量過大,可以采用分布式鎖的方式進(jìn)行優(yōu)化。
3、緩存雪崩
主要是指在線直播系統(tǒng)源碼中某一時(shí)刻大量緩存失效的情況,為了避免該問題的出現(xiàn)導(dǎo)致系統(tǒng)崩潰,可以對(duì)緩存中的數(shù)據(jù)設(shè)置不同的失效時(shí)間,或者采用分布式鎖,亦或者采用定時(shí)任務(wù)對(duì)快要失效的數(shù)據(jù)進(jìn)行更新。

除了上述內(nèi)容外,在線直播系統(tǒng)源碼圍繞緩存其實(shí)還做了很多工作,像保證緩存數(shù)據(jù)的一致性、更新緩存的原子性等。緩存既然在在線直播系統(tǒng)源碼這么重要,那我們肯定要充分發(fā)揮其作用,創(chuàng)造更多價(jià)值。
聲明:本文由云豹科技原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者名及原文鏈接,否則視為侵權(quán)