400-638-8808
|
微信公眾號





穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級功能

智能反垃圾郵件技術(shù)
易管理 免維護(hù)


服務(wù)器減壓,你不得不知的緩存使用技巧
為什么使用緩存
一般情況下,在訪問量達(dá)到一定規(guī)模后,數(shù)據(jù)庫的讀寫會成為一個瓶頸,我們會采用一些手段來對數(shù)據(jù)庫減壓,讓它可以正常的工作。可以考慮的手段包括讀寫分離、添加緩存服務(wù)器等,讀寫分離是為了盡量將對數(shù)據(jù)庫的讀寫動作分開,減少互相之間的影響;添加緩存是為了讀庫的時候,減少直接讀取數(shù)據(jù)庫的動作,將查詢的結(jié)果存放在緩存中,用戶的請求被隔絕在數(shù)據(jù)庫以外,從而減少數(shù)據(jù)庫的壓力。
這是一個理想狀況下緩存工作的方式,但僅僅是理想

緩存穿透
所謂緩存穿透,是說用戶請求在緩存系統(tǒng)中查找結(jié)果時候失效,接下來去后端存儲系統(tǒng)中查找數(shù)據(jù),這個時候,如果數(shù)據(jù)不存在,而且這個訪問也比較大的情況下,大量的訪問會直接命中數(shù)據(jù)庫,這時候負(fù)責(zé)存儲的服務(wù)器就悲劇了(如果左圖),所以我們就需要做一些努力,使得當(dāng)數(shù)據(jù)不存在,往緩存中寫入一個標(biāo)志抑或?qū)⒖盏牟樵兘Y(jié)果存入緩存,減少這種無用的請求頻繁命中數(shù)據(jù)庫的情況(如右圖)

也可以將確認(rèn)為空或者空的查詢結(jié)果存儲到單獨的緩存區(qū)域中。
緩存雪崩
這是另外一個問題,當(dāng)系統(tǒng)使用的緩存發(fā)生意外(網(wǎng)絡(luò)失敗、宕機(jī)、服務(wù)掛掉、緩存集體丟失等等)之后,緩存集體失效,導(dǎo)致短時間內(nèi)請求都到達(dá)數(shù)據(jù)庫(數(shù)據(jù)存儲層),使得數(shù)據(jù)庫壓力山大進(jìn)而crash掉。
為了預(yù)防這種情況,我們采用一下幾種方式:
1、我們采用多實例的方式來保證緩存的高可用性,盡量避免當(dāng)個別實例出現(xiàn)問題之后,引起全局緩存的問題。這類方案很多,比如memcache的一致性hash,redis的cluster機(jī)制,來避免單點的故障,這類資料可以搜索一下關(guān)于redis或者memcache的高可用方案。
2、降級機(jī)制。這個方法在很多高可用設(shè)計中可能也有描述,簡單一點說就是我們將用戶與用戶之間,資源與資源之間進(jìn)行隔離,當(dāng)某一部分?jǐn)?shù)據(jù)產(chǎn)生問題之后或者對某一部分的請求到達(dá)一個閥值之后,根據(jù)預(yù)設(shè)的機(jī)制,對請求只返回?zé)狳c數(shù)據(jù),保證客戶端不會產(chǎn)生天窗或者說一直無法響應(yīng)的問題。
3、加鎖。對于到達(dá)的請求,我們用鎖的機(jī)制,來盡量使它們排隊處理從而減少對數(shù)據(jù)庫產(chǎn)生并發(fā)?梢詤⒖嫉逆i方案有兩種,一種是使用全局鎖或者字符串鎖等方案,是一個請求進(jìn)行操作的時候,其他的請求處于等待狀態(tài),當(dāng)這個請求處理完畢之后進(jìn)行下一步的業(yè)務(wù)處理,但是這樣的話如果一個請求掛掉,會對后面排隊的請求產(chǎn)生影響,而且請求的處理可能不會短時間處理完畢,會導(dǎo)致請求阻塞的時間過長等問題,第二種方案就是在進(jìn)行操作的時候,其他請求進(jìn)來的時候判斷是否有鎖存在,如果存在直接跳過處理,返回?zé)狳c數(shù)據(jù)。

需要說的是降級機(jī)制未必要放到圖中這個位置,也可以放在緩存之前或其他的位置,它的主要目的是當(dāng)出現(xiàn)問題時候隔離掉出現(xiàn)問題的資源不影響客戶端的內(nèi)容或者使一部分用戶的請求無法到達(dá)真正的業(yè)務(wù)邏輯從而減少業(yè)務(wù)處理的壓力。
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國服務(wù)器 韓國服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺灣服務(wù)器云服務(wù)器
香港云主機(jī) 美國云主機(jī) 韓國云主機(jī) 新加坡云主機(jī) 臺灣云主機(jī) 日本云主機(jī) 德國云主機(jī) 全球云主機(jī)高防專線
海外高防IP 海外無限防御 SSL證書 高防CDN套餐 全球節(jié)點定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團(tuán)隊建設(shè) 加入天下數(shù)據(jù) 媒體報道 榮譽(yù)資質(zhì) 付款方式關(guān)注我們
微信公眾賬號
新浪微博
天下數(shù)據(jù)手機(jī)站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國服務(wù)器、海外云主機(jī)、海外vps主機(jī)租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證》 ISP證:粵ICP備07026347號
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運(yùn)營)聯(lián)合版權(quán)
深圳總部:中國.深圳市南山區(qū)深圳國際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號建安商業(yè)大廈7樓
7×24小時服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品