国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法

      文檔序號:7862361閱讀:670來源:國知局
      專利名稱:一種基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于緩存數(shù)據(jù)服務(wù)技術(shù)領(lǐng)域,涉及一種基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法。
      背景技術(shù)
      Memcached是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提供動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站更快的運(yùn)行速度。但是,Memcached作為集中式緩存服務(wù)端,其本身是單實(shí)例的并沒有分布式功能,各個Memcached不會互相通信以共享信息。雖然Memcached支持多實(shí)例分布在多臺機(jī)器上,但僅僅只是解決了數(shù)據(jù)全部丟失的問題,當(dāng)其中一臺機(jī)器出錯以后,還是會導(dǎo)致部分?jǐn)?shù)據(jù)的丟失。
      故,針對上述現(xiàn)有技術(shù)存在的缺陷,實(shí)有必要進(jìn)行研究,提供一種方案,能夠保證Memcached在部分失效以后,數(shù)據(jù)還能夠依然使用。避免當(dāng)緩存不命中就去數(shù)據(jù)源獲取的策略在并發(fā)量較大的場景中很容易導(dǎo)致應(yīng)用系統(tǒng)崩潰的風(fēng)險。

      發(fā)明內(nèi)容
      為解決上述問題,本發(fā)明的目的在于提供一種基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法,以保證Memcached在部分失效以后,數(shù)據(jù)還能夠依然使用,避免了當(dāng)緩存不命中就去數(shù)據(jù)源獲取的策略在并發(fā)量較大的場景中很容易導(dǎo)致應(yīng)用系統(tǒng)崩潰的風(fēng)險。為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為
      一種基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法,包括如下步驟
      510:部署Memcached服務(wù)端;
      511:在應(yīng)用上配置Memcached集群;
      512:根據(jù)步驟Sll所示配置創(chuàng)建統(tǒng)一的緩存管理器CacheManager,并提供相應(yīng)的數(shù)據(jù)操作接口。進(jìn)一步地,所述步驟SlO包括有步驟
      SlOl :啟動部署在一臺服務(wù)器上的多個Memcached服務(wù)端或者部署在多個機(jī)器上的Memcached 服務(wù)端。進(jìn)一步地,所述步驟Sll包括有如下步驟
      5110:根據(jù)各個服務(wù)器IP地址、Memcached服務(wù)器監(jiān)聽端口號配置socket連接池;
      5111:將配置的Memcached客戶端組建為集群。本發(fā)明基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法通過于客戶端將部署在一臺機(jī)器上的多個Memcached服務(wù)端或者部署在多個機(jī)器上的Memcached服務(wù)端組成一個虛擬的服務(wù)端,調(diào)用者存取數(shù)據(jù)時只需調(diào)用相應(yīng)的接口后臺,這樣做既提高了單機(jī)的內(nèi)存利用率,也提供了向上擴(kuò)容的方式,能夠保證Memcached在部分失效以后,數(shù)據(jù)還能夠依然使用,避免了當(dāng)緩存不命中就去數(shù)據(jù)源獲取的策略在并發(fā)量較大的場景中很容易導(dǎo)致應(yīng)用系統(tǒng)崩潰的風(fēng)險。


      圖I是本發(fā)明一實(shí)施例的架構(gòu)框圖。
      具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請參照圖I所示,本發(fā)明基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法通過在客戶端將部署在一臺機(jī)器上的多個Memcached服務(wù)端或者部署在多個機(jī)器上的Memcached服務(wù)端組成一個虛擬的服務(wù)端,調(diào)用者存取數(shù)據(jù)時只需調(diào)用相應(yīng)的接口后臺,對于調(diào)用者來說則是完全屏蔽和透明的。這樣做既提高了單機(jī)的內(nèi)存利用率,也提供了向上擴(kuò)容的方 式。在調(diào)用Memcached客戶端向緩存服務(wù)器集群提交要緩存的數(shù)據(jù)時,可實(shí)現(xiàn)一份數(shù)據(jù)多處備份,能夠保證Memcached在部分失效以后,數(shù)據(jù)還能夠依然使用。避免了當(dāng)緩存不命中就去數(shù)據(jù)源獲取的策略在并發(fā)量較大的場景中很容易導(dǎo)致應(yīng)用系統(tǒng)崩潰的風(fēng)險。實(shí)現(xiàn)了緩存集群中各Memcached服務(wù)器之間數(shù)據(jù)的同步,其主要包括如下步驟
      510:部署Memcached服務(wù)端;
      SlOl :啟動部署在一臺服務(wù)器上的多個Memcached服務(wù)端或者部署在多個機(jī)器上的Memcached 服務(wù)端;
      511:在應(yīng)用上配置Memcached集群;
      5110:根據(jù)各個服務(wù)器IP地址、Memcached服務(wù)器監(jiān)聽端口號配置socket連接池;實(shí)現(xiàn)函數(shù)如下
      〈socketpool name=〃pool0〃>
      <servers>192. 168. I. 2:11211</servers)
      </socketpool>
      〈socketpool name=〃pooll〃>
      <servers>192.168.I.2:11212</servers>
      </socketpool>
      〈socketpool name=〃pool2〃>
      <servers>192.168.I. 3:11211</servers)
      </socketpool>
      5111:根據(jù)socket連接池配置相對應(yīng)進(jìn)行數(shù)據(jù)操作的Memcached客戶端;實(shí)現(xiàn)函數(shù)如下所示
      〈client name=〃mclient0〃 socketpool=〃poolO〃X/client>
      〈client name=〃mclientl〃 socketpool=〃pooll〃X/client>
      〈client name=〃mclient2〃 socketpool=〃pool2〃X/client>
      Slll:將配置的Memcached客戶端組建為集群;一個統(tǒng)一的虛擬服務(wù)端函數(shù)如下所
      示〈cluster name=〃cluster〃>
      <memCachedClients>mclientO,mclientl,mclient2</memCachedClients>
      〈/cluster〉
      S12:根據(jù)步驟Sll所示配置創(chuàng)建統(tǒng)一的緩存管理器CacheManager,并提供相應(yīng)的數(shù)據(jù)操作接口。在客戶端實(shí)現(xiàn)過程中根據(jù)存儲的主鍵做分區(qū)存儲,而這個區(qū)就是Memcached服務(wù)端的一個或者多個實(shí)例,以實(shí)現(xiàn)將部署在一臺機(jī)器上的多個Memcached服務(wù)端或者部署在多個機(jī)器上的Memcached服務(wù)端組成一個虛擬的集群。
      本發(fā)明創(chuàng)作應(yīng)用時,首先啟用本緩存機(jī)制的應(yīng)用需要操作緩存中的數(shù)據(jù),根據(jù)要進(jìn)行的操作調(diào)用緩存管理器CacheManager相應(yīng)的接口 ;然后CacheManager根據(jù)傳入的需要操作數(shù)據(jù)的key,按照其數(shù)據(jù)分配算法獲取配置在集群Cluster中的相應(yīng)緩存客戶端;當(dāng)獲得緩存客戶端Cache Client以后,執(zhí)行具體的Cache操作。其中,如果是讀取操作,當(dāng)不能命中時去集群其他緩存客戶端獲取數(shù)據(jù),如果獲取到數(shù)據(jù),嘗試寫入到本次獲得的緩存客戶端,并返回結(jié)果(達(dá)到數(shù)據(jù)恢復(fù)的作用);如果是更新操作,在本次獲取得的緩存客戶端執(zhí)行更新操作以后,立即返回,將更新集群其他緩存節(jié)點(diǎn)命令提交給客戶端的異步更新線程對列去異步執(zhí)行,如果是根據(jù)key來獲取Cache,那么異步執(zhí)行不會影響到此主鍵的查詢操作。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法,其特征在于,包括如下步驟 510:部署Memcached服務(wù)端; 511:在應(yīng)用上配置Memcached集群; 512:根據(jù)步驟Sll所示配置創(chuàng)建統(tǒng)一的緩存管理器CacheManager,并提供相應(yīng)的數(shù)據(jù)操作接口。
      2.如權(quán)利要求I所述基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法,其特征在于,所述步驟SlO包括有步驟 SlOl :啟動部署在一臺服務(wù)器上的多個Memcached服務(wù)端或者部署在多個機(jī)器上的Memcached 服務(wù)端。
      3.如權(quán)利要求2所述基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法,其特征在于,所述步驟Sll包括有如下步驟5110:根據(jù)各個服務(wù)器IP地址、Memcached服務(wù)器監(jiān)聽端口號配置socket連接池; 5111:將配置的Memcached客戶端組建為集群。
      全文摘要
      本發(fā)明公開了一種基于Memcached的分布式緩存數(shù)據(jù)同步實(shí)現(xiàn)方法,包括如下步驟S10部署Memcached服務(wù)端;S11在應(yīng)用上配置Memcached集群;S12根據(jù)步驟S11所示配置創(chuàng)建統(tǒng)一的緩存管理器CacheManager,并提供相應(yīng)的數(shù)據(jù)操作接口。本發(fā)明于客戶端將部署在一臺機(jī)器上的多個Memcached服務(wù)端或者部署在多個機(jī)器上的Memcached服務(wù)端組成一個虛擬的服務(wù)端,存取數(shù)據(jù)時只需調(diào)用相應(yīng)的接口后臺,提高了單機(jī)的內(nèi)存利用率,也提供了向上擴(kuò)容的方式,保證Memcached在部分失效以后,數(shù)據(jù)還能夠使用,避免了當(dāng)緩存不命中就去數(shù)據(jù)源獲取的策略容易導(dǎo)致系統(tǒng)崩潰的風(fēng)險。
      文檔編號H04L29/08GK102917036SQ20121037723
      公開日2013年2月6日 申請日期2012年10月8日 優(yōu)先權(quán)日2012年10月8日
      發(fā)明者崔永生, 紀(jì)之強(qiáng), 曹苗苗 申請人:浪潮齊魯軟件產(chǎn)業(yè)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1