直播系統(tǒng)代碼,系統(tǒng)緩存設(shè)計是基于數(shù)據(jù)庫瓶頸
凡是高訪問量的系統(tǒng)、平臺,緩存是必然離不開的,但是給直播系統(tǒng)代碼選一個適當(dāng)、高效的緩存方案卻不容易,那么接下來就要查看應(yīng)用系統(tǒng)緩存的設(shè)計應(yīng)該注意什么,比如緩存的類型、常見緩存系統(tǒng)的特點和數(shù)據(jù)指標(biāo)、緩存對象結(jié)構(gòu)設(shè)計等。
?

一、數(shù)據(jù)庫瓶頸問題
為什么說直播系統(tǒng)代碼的設(shè)計會受限于數(shù)據(jù)庫瓶頸呢?
1、首先關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)量比較小,以常用的MySQL為例,單表數(shù)據(jù)條數(shù)一般要控制在一定數(shù)量以內(nèi),如果業(yè)務(wù)很復(fù)雜的話,這個數(shù)量還會更低。
2、TPS,直播系統(tǒng)代碼開發(fā)過程中就會發(fā)現(xiàn),關(guān)系型數(shù)據(jù)庫在TPS上的瓶頸往往會比其他瓶頸更容易暴露,尤其是直播平臺這種用戶訪問量比較大的,每天大量的并發(fā)訪問,對數(shù)據(jù)庫的讀寫性能要求都很高。
3、響應(yīng)時間,正常情況下直播系統(tǒng)代碼的關(guān)系型數(shù)據(jù)響應(yīng)時間并不差,但在配置得當(dāng)?shù)那闆r下,及時面對更多的數(shù)據(jù)請求,也不會增加這個響應(yīng)時間。
?

二、緩存類型
1、本地緩存,屬于很常見的一種緩存方式,因為它實現(xiàn)方案簡單, 可以通過本地內(nèi)存或磁盤實現(xiàn),速度快成本低,在很多場景下都適用。
但對于直播系統(tǒng)代碼采用集群負(fù)載均衡時,本地緩存就很受限,當(dāng)數(shù)據(jù)庫數(shù)據(jù)發(fā)生變化時,平臺沒有簡單有效的方法能更新本地緩存,加上緩存的地時效性和高訪問量問題,成本就上去了。
2、分布式緩存,其應(yīng)用目的就是為了提供比RDB更高的TPS和擴(kuò)展性,同時有幫助直播系統(tǒng)代碼承擔(dān)了數(shù)據(jù)同步的壓力,優(yōu)秀的分布式緩存系統(tǒng)比如大家常見的Redis,能有效把壓力從數(shù)據(jù)庫轉(zhuǎn)移到緩存上。
?

3、數(shù)據(jù)庫緩存,指的是數(shù)據(jù)庫的查詢緩存,大部分?jǐn)?shù)據(jù)庫都是會提供的,每種數(shù)據(jù)庫的具體實現(xiàn)細(xì)節(jié)也會有所差異,不過基本的原理就是查詢語句對齊結(jié)果進(jìn)行緩存,如果利用好可以提高直播系統(tǒng)代碼數(shù)據(jù)庫的查詢效率。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任