亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

memcache分布式緩存方法

文檔序號(hào):7824649閱讀:283來(lái)源:國(guó)知局
專利名稱:memcache分布式緩存方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種緩存方法,尤其涉及一種memcache分布式緩存方法。
背景技術(shù)
單臺(tái)服務(wù)器內(nèi)存有限,而且如果服務(wù)器down機(jī)的話,內(nèi)存中的數(shù)據(jù)會(huì)丟失,此時(shí)數(shù)據(jù)庫(kù)的壓力會(huì)很大,短時(shí)間內(nèi)無(wú)法迅速恢復(fù)緩存。此時(shí)就需要一種緩存冗余方案。所以需要用多臺(tái)服務(wù)器組成分布式解決單臺(tái)機(jī)內(nèi)存限制,數(shù)據(jù)冗余,及性能擴(kuò)展問(wèn)題。Memcache是一個(gè)非常優(yōu)秀的緩存加速系統(tǒng),和Squid的前端緩存加速不同,它是通過(guò)基于內(nèi)存緩存對(duì)象來(lái)減少數(shù)據(jù)庫(kù)查詢的方式改善網(wǎng)站系統(tǒng)的反應(yīng),而其中最吸引人的一個(gè)特性就是支持分布式部署;也就是說(shuō)可以在一群機(jī)器上建立一堆Memcache服務(wù),每個(gè)服務(wù)可以根據(jù)具體服務(wù)器的硬件配置使用不同大小的內(nèi)存塊,這樣一來(lái),理論上可以建立一個(gè)無(wú)限巨大的基于內(nèi)存的cache storage (緩存存儲(chǔ))系統(tǒng)。Memcache主要的cache機(jī)制是LRU (最近最少用)算法+超時(shí)失效。當(dāng)存數(shù)據(jù)到Memcache中,可以指定該數(shù)據(jù)在緩存中可以呆多久,永久或一個(gè)時(shí)間段。如果Memcache的內(nèi)存不夠用了,過(guò)期的緩存單元會(huì)優(yōu)先被替換,接著就輪到最老的未被使用的緩存單元。

發(fā)明內(nèi)容
本發(fā)明的目的就是為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,提供一種memcache分布式緩存方法。本發(fā)明的目的通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
memcache分布式緩存方法,其特征在于包括以下步驟:步驟①,緩存獲取,采用客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器返回唯一鍵對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址,客戶端獲取第一個(gè)ip,再請(qǐng)求對(duì)應(yīng)的名字結(jié)點(diǎn)服務(wù)器,獲得對(duì)應(yīng)的緩存數(shù)據(jù),如果第一個(gè)ip中獲取不到數(shù)據(jù),則使用第下一個(gè)ip地址請(qǐng)求對(duì)應(yīng)的名字結(jié)點(diǎn)服務(wù)器,直到獲取到緩存數(shù)據(jù)遍歷完ip列表為止。步驟②,緩存寫入,客戶端從某個(gè)數(shù)據(jù)源獲取數(shù)據(jù),客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器,令名字結(jié)點(diǎn)服務(wù)器返回唯一鍵所對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址.步驟③,客戶端獲取第一個(gè)ip,將緩存寫入對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器??蛻舳酥灰渲妹纸Y(jié)點(diǎn)服務(wù)器,緩存結(jié)點(diǎn)服務(wù)器的ip返回是由名字結(jié)點(diǎn)服務(wù)器動(dòng)態(tài)返回的。上述的memcache分布式緩存方法,其中:客戶端用名字結(jié)點(diǎn)服務(wù)器做唯一鍵到緩存結(jié)點(diǎn)服務(wù)器的映射中,通過(guò)一致性hash算法,定時(shí)對(duì)緩存結(jié)點(diǎn)服務(wù)器進(jìn)行心跳檢測(cè)(判斷是否能正常訪問(wèn)),當(dāng)某臺(tái)緩存結(jié)點(diǎn)服務(wù)器不能訪問(wèn)時(shí),名字結(jié)點(diǎn)服務(wù)器會(huì)屏蔽此緩存結(jié)點(diǎn)服務(wù)器的訪問(wèn)(避免返回?zé)o效的給客戶端),發(fā)送報(bào)警信息給管理員及時(shí)排查問(wèn)題。進(jìn)一步地,上述的memcache分布式緩存方法,其中:所述的緩存結(jié)點(diǎn)服務(wù)器對(duì)應(yīng)擁有備份機(jī),將多個(gè)ip地址備份到備份機(jī)上。具體來(lái)說(shuō),客戶端根據(jù)備份算法將數(shù)據(jù)寫入名字服務(wù)器返回的ip列表對(duì)應(yīng)的服務(wù)器上,保持緩存數(shù)據(jù)至少有兩份。更進(jìn)一步地,上述的memcache分布式緩存方法,其中:步驟①所述的數(shù)據(jù)包括有數(shù)據(jù)庫(kù)、接口、文件。更進(jìn)一步地,上述的memcache分布式緩存方法,其中:步驟③如果ip有多個(gè),貝丨J客戶端可以根據(jù)緩存重要性,判斷緩存數(shù)據(jù)是否需要冗余,如果需要冗余,則根據(jù)對(duì)應(yīng)的算法寫入一個(gè)或多個(gè)ip對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器中。再進(jìn)一步地,上述的memcache分布式緩存方法,其中:所述的客戶端為memcachedjava客戶端。本發(fā)明技術(shù)方案的優(yōu)點(diǎn)主要體現(xiàn)在:有效解決了單臺(tái)機(jī)的內(nèi)存限制。同時(shí),可以有效解決數(shù)據(jù)冗余。并且,能夠提升性能擴(kuò)展。本發(fā)明的目的、優(yōu)點(diǎn)和特點(diǎn),將通過(guò)下面優(yōu)選實(shí)施例的非限制性說(shuō)明進(jìn)行解釋。這些實(shí)施例僅是應(yīng)用本發(fā)明技術(shù)方案的典型范例,凡采取等同替換或者等效變換而形成的技術(shù)方案,均落在本發(fā)明要求保護(hù)的范圍之內(nèi)。
具體實(shí)施例方式memcache分布式緩存方法,其與眾不同之處在于包括以下步驟:
首先是緩存獲取。具體來(lái)說(shuō),采用客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器返回唯一鍵對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址,客戶端獲取第一個(gè)ip,再請(qǐng)求對(duì)應(yīng)的名字結(jié)點(diǎn)服務(wù)器,獲得對(duì)應(yīng)的緩存數(shù)據(jù)。在此期間,如果第一個(gè)ip中獲取不到數(shù)據(jù),則使用第下一個(gè)ip地址請(qǐng)求對(duì)應(yīng)的名字結(jié)點(diǎn)服務(wù)器,直到獲取到緩存數(shù)據(jù)遍歷完ip列表為止。具體來(lái)說(shuō),為了實(shí)現(xiàn)較佳的效果,客戶端用名字結(jié)點(diǎn)服務(wù)器做唯一鍵到緩存結(jié)點(diǎn)服務(wù)器的映射中,通過(guò)一致性hash算法,定時(shí)對(duì)緩存結(jié)點(diǎn)服務(wù)器進(jìn)行心跳檢測(cè)(判斷是否能正常訪問(wèn)),當(dāng)某臺(tái)緩存結(jié)點(diǎn)服務(wù)器不能訪問(wèn)時(shí),名字結(jié)點(diǎn)服務(wù)器會(huì)屏蔽此緩存結(jié)點(diǎn)服務(wù)器的訪問(wèn)(避免返回?zé)o效的給客戶端),發(fā)送報(bào)警信息給管理員及時(shí)排查問(wèn)題。接著,進(jìn)行緩存寫入:客戶端從某個(gè)數(shù)據(jù)源獲取數(shù)據(jù),客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器,令名字結(jié)點(diǎn)服務(wù)器返回唯一鍵所對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址。然后,客戶端獲取第一個(gè)ip,將緩存寫入對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器。在上述構(gòu)成中,客戶端只要配置名字結(jié)點(diǎn)服務(wù)器,緩存結(jié)點(diǎn)服務(wù)器的ip返回是由名字結(jié)點(diǎn)服務(wù)器動(dòng)態(tài)返回的。具體來(lái)說(shuō),如果ip有多個(gè),則客戶端可以根據(jù)緩存重要性,判斷緩存數(shù)據(jù)是否需要冗余,如果需要冗余,則根據(jù)對(duì)應(yīng)的算法寫入一個(gè)或多個(gè)ip對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器中。就本發(fā)明一較佳的實(shí)施方式來(lái)看,緩存結(jié)點(diǎn)服務(wù)器對(duì)應(yīng)擁有備份機(jī),將多個(gè)ip地址備份到備份機(jī)上。具體來(lái)說(shuō),客戶端根據(jù)備份算法將數(shù)據(jù)寫入名字服務(wù)器返回的ip列表對(duì)應(yīng)的服務(wù)器上,保持緩存數(shù)據(jù)至少有兩份。同時(shí),為了便于處理,數(shù)據(jù)包括有數(shù)據(jù)庫(kù)、接口、文件。再者,為了實(shí)施便利,采用的客戶端為memcached java客戶端。它的特點(diǎn)是發(fā)布的比較早,網(wǎng)上的教程多,比較穩(wěn)定。同時(shí),協(xié)議簡(jiǎn)單,基于Iibevent的事件處理。且內(nèi)置內(nèi)存存儲(chǔ)方式,memcached不互相通信的分布式,不使用應(yīng)用程序內(nèi)存。結(jié)合本發(fā)明的實(shí)際使用情況來(lái)看,一致性hash算法對(duì)本發(fā)明的實(shí)施至關(guān)重要,其應(yīng)用有如下兩種情況:
1、一個(gè)服務(wù)器緩存結(jié)點(diǎn)服務(wù)器,如編號(hào)為m的緩存結(jié)點(diǎn)服務(wù)器mdown掉了(在實(shí)際應(yīng)用中必須要考慮這種情況),這樣所有映射到緩存結(jié)點(diǎn)服務(wù)器m的對(duì)象都會(huì)失效。由此,需要把緩存結(jié)點(diǎn)服務(wù)器m從所有緩存服務(wù)器的統(tǒng)稱中移除,這時(shí)候緩存服務(wù)器的數(shù)量是總數(shù)的N-1 臺(tái),映射公式變成了 hash (object)。/。(N-1)。2、由于訪問(wèn)加重,需要添加緩存結(jié)點(diǎn)服務(wù)器,這時(shí)候緩存結(jié)點(diǎn)服務(wù)器是N+1臺(tái),映射公式變成了 hash (object) %(N+1)。當(dāng)I或2其中的一個(gè)發(fā)生時(shí)突然之間幾乎所有的緩存服務(wù)器都失效了。對(duì)于服務(wù)器而言,這是一場(chǎng)災(zāi)難,洪水般的訪問(wèn)都會(huì)直接沖向后臺(tái)服務(wù)器。再來(lái)考慮第三個(gè)問(wèn)題,由于硬件能力越來(lái)越強(qiáng),此時(shí)便是一致性hash算法用武之地。這樣,在移除或添加一個(gè)緩存服務(wù)器時(shí),它能夠盡可能小的改變已存在唯一鍵映射關(guān)系,盡可能的滿足單調(diào)性的要求。通過(guò)上述的文字表述可以看出,采用本發(fā)明后,有效解決了單臺(tái)機(jī)的內(nèi)存限制。同時(shí),可以有效解決數(shù)據(jù)冗余。并且,能夠提升性能擴(kuò)展。
權(quán)利要求
1.memcache分布式緩存方法,其特征在于包括以下步驟: 步驟①,緩存獲取,采用客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器返回唯一鍵對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址,客戶端獲取第一個(gè)ip,再請(qǐng)求對(duì)應(yīng)的名字結(jié)點(diǎn)服務(wù)器,獲得對(duì)應(yīng)的緩存數(shù)據(jù),如果第一個(gè)ip中獲取不到數(shù)據(jù),則使用第下一個(gè)ip地址請(qǐng)求對(duì)應(yīng)的名字結(jié)點(diǎn)服務(wù)器,直到獲取到緩存數(shù)據(jù)遍歷完ip列表為止; 步驟②,緩存寫入,客戶端從某個(gè)數(shù)據(jù)源獲取數(shù)據(jù),客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器,令名字結(jié)點(diǎn)服務(wù)器返回唯一鍵所對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址; 步驟③,客戶端獲取第一個(gè)ip,將緩存寫入對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器。
2.根據(jù)權(quán)利要求1所述的memcache分布式緩存方法,其特征在于:所述步驟①中,客戶端用名字結(jié)點(diǎn)服務(wù)器做唯一鍵到緩存結(jié)點(diǎn)服務(wù)器的映射中,通過(guò)一致性hash算法,定時(shí)對(duì)緩存結(jié)點(diǎn)服務(wù)器進(jìn)行心跳檢測(cè),當(dāng)某臺(tái)緩存結(jié)點(diǎn)服務(wù)器不能訪問(wèn)時(shí),名字結(jié)點(diǎn)服務(wù)器會(huì)屏蔽此緩存結(jié)點(diǎn)服務(wù)器的訪問(wèn),發(fā)送報(bào)警信息給管理員及時(shí)排查問(wèn)題。
3.根據(jù)權(quán)利要求1所述的memcache分布式緩存方法,其特征在于:所述的緩存結(jié)點(diǎn)服務(wù)器對(duì)應(yīng)擁有備份機(jī),將多個(gè)ip地址備份到備份機(jī)上。
4.根據(jù)權(quán)利要求1所述的memcache分布式緩存方法,其特征在于:步驟①所述的數(shù)據(jù)包括有數(shù)據(jù)庫(kù)、接口、文件。
5.根據(jù)權(quán)利要求1所述的memcache分布式緩存方法,其特征在于:步驟③如果ip有多個(gè),則客戶端可以根據(jù)緩存重要性,判斷緩存數(shù)據(jù)是否需要冗余,如果需要冗余,則根據(jù)對(duì)應(yīng)的算法寫入一個(gè)或多個(gè)ip對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器中。
6.根據(jù)權(quán)利要求1所述的memcache分布式緩存方法,其特征在于:所述的客戶端為memcached java 客戶端。
全文摘要
本發(fā)明涉及一種memcache分布式緩存方法,其特點(diǎn)是包括以下步驟首先,緩存獲取,采用客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器返回唯一鍵對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址。接著,客戶端從某個(gè)數(shù)據(jù)源獲取數(shù)據(jù),客戶端通過(guò)請(qǐng)求名字結(jié)點(diǎn)服務(wù)器,令名字結(jié)點(diǎn)服務(wù)器返回唯一鍵所對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器的一個(gè)或多個(gè)ip地址。之后,客戶端獲取第一個(gè)ip,將緩存寫入對(duì)應(yīng)的緩存結(jié)點(diǎn)服務(wù)器。這樣,有效解決了單臺(tái)機(jī)的內(nèi)存限制。同時(shí),可以有效解決數(shù)據(jù)冗余。并且,能夠提升性能擴(kuò)展。
文檔編號(hào)H04L29/08GK103166997SQ201110418959
公開(kāi)日2013年6月19日 申請(qǐng)日期2011年12月15日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者王專, 吳志祥, 張海龍, 馬和平, 吳劍, 郭鳳林, 王曉鐘, 龐紹進(jìn) 申請(qǐng)人:同程網(wǎng)絡(luò)科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1