新聞中心
緩存穿透是指惡意客戶(hù)端攻擊,經(jīng)常會(huì)傳入一些不存在的KEY,從而引起后臺(tái)的大量查詢(xún),損耗大量的資源,使服務(wù)器陷入困境,這種挑戰(zhàn)在緩存技術(shù)面前是一個(gè)無(wú)法避開(kāi)的話(huà)題,,如何防止由于緩存穿透而帶來(lái)的資源浪費(fèi),讓緩存技術(shù)真正實(shí)現(xiàn)起來(lái)性能成為DBA,系統(tǒng)架構(gòu)人員和部署高速性能的架構(gòu)師一直在努力的追求。

在市面上,緩存的技術(shù)一般集中在一下幾種,比如 Memcached、Ehcache,還有更多的解決方案,比如Redis,表面看起來(lái)都提供緩存的能力,但是從另一方面來(lái)說(shuō),他們的實(shí)現(xiàn)機(jī)制還是有不同的。以Redis來(lái)說(shuō),他同時(shí)擁有下面幾個(gè)特點(diǎn):
– 利用哈希表實(shí)現(xiàn)鍵值對(duì)存儲(chǔ),并且內(nèi)部具有哈希沖突處理方案,這一點(diǎn)在處理緩存穿透時(shí)特別有用;
– 可以自定義存儲(chǔ)時(shí)間,比如指定某個(gè)緩存超時(shí)期失效,有效的保證緩存中具有新鮮的數(shù)據(jù);
– 支持事務(wù)功能,可以按照指定的條件來(lái)更新緩存,也就是樂(lè)觀(guān)鎖,也有可能利用悲觀(guān)鎖的方式來(lái)實(shí)現(xiàn)防止緩存穿透的目的;
– 支持BloomFilte,實(shí)現(xiàn)快速查詢(xún)緩存數(shù)據(jù),這一點(diǎn)也能影響極大的查詢(xún)效率。
另外,在Redis的實(shí)現(xiàn)上,用戶(hù)可以使用圖形界面的形式來(lái)操作Redis,便于用戶(hù)的操作,讓提升性能變得更加容易,從而更加容易的實(shí)現(xiàn)緩存穿透的防御。
“`sql
//緩存超時(shí)期內(nèi),寫(xiě)入Key
SET KEY VALUE EX [秒]
//根據(jù) BloomFilter 快速檢測(cè)Key是否存在
EXISTS KEY
//使用樂(lè)觀(guān)鎖實(shí)現(xiàn)緩存穿透
MULTI
WATCH KEY
GET KEY
SET KEY VALUE
EXEC
Redis提供了多種實(shí)現(xiàn)防止緩存穿透的管理機(jī)制,是數(shù)據(jù)庫(kù)的高性能技術(shù)的一個(gè)重要角色,如果能夠正確的應(yīng)用,它可以發(fā)揮出極大的作用,在防止緩存穿透上也不在話(huà)下。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽(yáng)、重慶、貴陽(yáng)機(jī)房服務(wù)器托管租用。
文章題目:Redis讓緩存穿透無(wú)路可走(redis 防止緩存穿透)
文章出自:http://m.5511xx.com/article/dpppodd.html


咨詢(xún)
建站咨詢(xún)
