10個(gè)常見的緩存使用誤區(qū)

2023-05-18    分類: 網(wǎng)站建設(shè)

在日常工作中,開發(fā)者經(jīng)常利用緩存來進(jìn)行優(yōu)化站點(diǎn)或優(yōu)化應(yīng)用程序。但在實(shí)際應(yīng)用中,在使用緩存時(shí),總是那么不盡如意。這什么原因呢?本文,筆者收集了最為常見的十大緩存誤區(qū)以及使用建議。我們一起來看下 :

1. 依賴默認(rèn)的序列化。

默認(rèn)的序列化處理方式可能會(huì)消耗大量的CPU資源,特別是處理復(fù)雜類型數(shù)據(jù)時(shí)。所以建議要根據(jù)語音和環(huán)境的不同,采用最優(yōu)化的序列化和反序列化方式。

2. 在單一緩存中存儲(chǔ)大對(duì)象數(shù)據(jù)。

由于序列化和反序列化需要一定的資源開銷,處于并發(fā)負(fù)載時(shí),大對(duì)象圖形數(shù)據(jù)的頻繁讀取有可能會(huì)讓服務(wù)器的CPU崩潰。相反,不妨考慮把大對(duì)象數(shù)據(jù)打散為較小的子對(duì)象,之后再各自進(jìn)行緩存。根據(jù)你的需求讀取最小的數(shù)據(jù)單元。

3. 在不同進(jìn)程間使用緩存共享對(duì)象。

出現(xiàn)競態(tài)條件(Race conditions)時(shí),當(dāng)寫進(jìn)程也參與其中,同時(shí)剛好程序的某部分也訪問同一緩沖對(duì)象,情況會(huì)變得更壞。采取外部鎖機(jī)制是有必要的。

4. 儲(chǔ)存數(shù)據(jù)后立馬進(jìn)行緩存。

千萬不要倉促行事,即使是剛寫入不久,當(dāng)存儲(chǔ)資源緊張時(shí),一個(gè)緩存足以阻礙程序運(yùn)行。所以用代碼來進(jìn)行緩存空值返回檢查是很有必要的。

5. 使用嵌套對(duì)象存儲(chǔ)全集合。

由于序列化的影響,執(zhí)行一次全集合存儲(chǔ)會(huì)導(dǎo)致程序運(yùn)行變慢。有鑒于此,單獨(dú)對(duì)獨(dú)立對(duì)象進(jìn)行緩存可以實(shí)現(xiàn)分開讀取,減少序列化影響。

6. 對(duì)父子對(duì)象采取統(tǒng)一與單獨(dú)混用的存儲(chǔ)方式。

有時(shí)候一個(gè)對(duì)象可能擁有兩個(gè)或更多的父對(duì)象。根據(jù)統(tǒng)一對(duì)象本身的鍵進(jìn)行緩存以便不會(huì)把同一對(duì)象存儲(chǔ)于不同地方,這樣父對(duì)象可以按需訪問子對(duì)象。

7. 對(duì)配置信息進(jìn)行緩存。

使用進(jìn)程的本地靜態(tài)變量來存儲(chǔ)配置數(shù)據(jù)。緩存數(shù)據(jù)訪問是有代價(jià)的,所以要盡可能把影響減到最低。

8. 對(duì)活性對(duì)象進(jìn)行緩存,例如:流,文件,注冊信息或者網(wǎng)絡(luò)。

不要嘗試對(duì)上述等包含引用信息的活性對(duì)象進(jìn)行緩存。因?yàn)楫?dāng)緩存數(shù)據(jù)被刪除后,之前緩存的活性對(duì)象不會(huì)被刪除,這樣會(huì)造成系統(tǒng)資源泄漏。

9. 對(duì)同一對(duì)象采取多鍵存儲(chǔ)。

這樣或許在使用一個(gè)鍵和索引號(hào)來進(jìn)行訪問時(shí)帶來便利。如果一個(gè)緩存是in-memory的,這樣做是可行的,因?yàn)榫彺嬷邪送粚?duì)象的引用信息,也就是說一旦該對(duì)象發(fā)生變更,都可以透過兩邊的訪問路徑進(jìn)行查看。如果是遠(yuǎn)程(外部)緩存,任何變更的發(fā)生都是不可見的,所以這樣會(huì)導(dǎo)致同步問題的產(chǎn)生。

10.在連續(xù)存儲(chǔ)中進(jìn)行更新或刪除后沒有及時(shí)更新相應(yīng)緩存對(duì)象。

在一個(gè)遠(yuǎn)程緩存中,數(shù)據(jù)以拷貝方式存儲(chǔ),所以當(dāng)更新對(duì)象時(shí),緩存不會(huì)被同步更新。緩存必須被明確指定,才能根據(jù)變更而進(jìn)行更新。在in-memory緩存中,一個(gè)對(duì)象發(fā)生的變更是對(duì)所有人可見的。在刪除時(shí)情況類似,刪除一個(gè)對(duì)象時(shí),在緩存中不會(huì)被同步刪除。這取決于程序本身如何確保緩存對(duì)象被正確刪除。

分享題目:10個(gè)常見的緩存使用誤區(qū)
地址分享:http://www.bm7419.com/news16/259966.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站策劃電子商務(wù)、ChatGPT微信小程序、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名