一種實現(xiàn)分布式緩存的方法、裝置及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及分布式緩存領域,尤其涉及一種實現(xiàn)分布式緩存的方法、裝置及系統(tǒng)。
【背景技術】
[0002]分布式緩存,是指將數(shù)據(jù)存儲到分布式緩存系統(tǒng)部署的各個緩存客戶端本地內存的緩存方法。分布式緩存系統(tǒng)通常由緩存服務器端和各個緩存客戶端組成。
[0003]為了實現(xiàn)數(shù)據(jù)同步,現(xiàn)有的分布式緩存系統(tǒng)通常由緩存服務器端將變更后的數(shù)據(jù)寫入數(shù)據(jù)源,再由緩存服務器端通知各個分布式緩存客戶端將變更后的數(shù)據(jù)刷新到客戶端本地。為了使緩存服務器端可以通知到緩存客戶端,通常需要在緩存服務器端的記錄表中記錄各個緩存客戶端的IP和主機名等信息,從而緩存服務器可以遍歷所記錄的IP和主機名,逐一向緩存客戶端發(fā)出通知。
[0004]但是,隨著緩存客戶端的數(shù)量日益增多,緩存服務器端發(fā)送通知的耗時越來越大,甚至可能導致有些緩存客戶端更新不及時。而且,經常會有緩存客戶端由于各種原因而下線,而緩存服務器端仍然按照記錄表向這些已下線的緩存客戶端發(fā)送通知,導致無法同步的緩存客戶端越來越多,最終威脅整個分布式緩存系統(tǒng)的穩(wěn)定性。
【發(fā)明內容】
[0005]有鑒于此,本申請的目的在于提供一種實現(xiàn)分布式緩存的方法、裝置及系統(tǒng)以實現(xiàn)及時更新緩存客戶端的緩存的目的。
[0006]在本申請實施例的第一個方面,提供了一種應用于分布式緩存系統(tǒng)的緩存客戶端側的實現(xiàn)分布式緩存的方法。例如,該方法可以包括:主動周期性地向分布式緩存系統(tǒng)的緩存服務器側發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求;接收所述緩存服務器側針對所述請求反饋的版本信息;根據(jù)所述版本信息,從數(shù)據(jù)源中獲取所述變更后數(shù)據(jù);將所獲取的變更后數(shù)據(jù)緩存到所述緩存客戶端側本地。
[0007]在本申請實施例的第二個方面,提供了一種配置于分布式緩存系統(tǒng)的緩存客戶端側的實現(xiàn)分布式緩存的裝置。例如,該裝置可以包括:主動請求單元,可以用于主動周期性地向分布式緩存系統(tǒng)的緩存服務器側發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求;接收版本單元,可以用于接收所述緩存服務器側針對所述請求反饋的版本信息;獲取數(shù)據(jù)單元,可以用于根據(jù)所述版本信息,從數(shù)據(jù)源中獲取所述變更后數(shù)據(jù);緩存更新單元,可以用于將所獲取的變更后數(shù)據(jù)緩存到所述緩存客戶端側本地。
[0008]在本申請實施例的第三個方面,提供了一種應用于分布式緩存系統(tǒng)的緩存服務器側的實現(xiàn)分布式緩存的方法。例如,該方法可以包括:接收分布式緩存系統(tǒng)的緩存客戶端側主動周期性地發(fā)出的獲取變更后數(shù)據(jù)的版本信息的請求;針對所述請求向所述緩存客戶端側反饋版本信息,以便所述緩存客戶端側根據(jù)版本信息,從數(shù)據(jù)源中獲取變更后數(shù)據(jù),以及,將所獲取的變更后數(shù)據(jù)緩存到所述緩存客戶端側本地。
[0009]在本申請實施例的第四個方面,提供了一種配置于分布式緩存系統(tǒng)的緩存服務器側的實現(xiàn)分布式緩存的裝置。例如,該裝置可以包括:接收請求單元,用于接收分布式緩存系統(tǒng)的緩存客戶端側主動周期性地發(fā)出的獲取變更后數(shù)據(jù)的版本信息的請求;版本反饋單元,用于針對所述請求向所述緩存客戶端側反饋版本信息,以便所述緩存客戶端側根據(jù)版本信息,從數(shù)據(jù)源中獲取變更后數(shù)據(jù),以及,將所獲取的變更后數(shù)據(jù)緩存到所述緩存客戶端側本地。
[0010]在本申請實施例的第五個方面,提供了一種分布式緩存系統(tǒng)。例如,該系統(tǒng)可以包括:緩存客戶端側,可以用于主動周期性地向分布式緩存系統(tǒng)的緩存服務器側發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求,接收所述緩存服務器側針對所述請求反饋的版本信息,根據(jù)所述版本信息,從數(shù)據(jù)源中獲取所述變更后數(shù)據(jù),將所獲取的變更后數(shù)據(jù)緩存到本地;緩存服務器側,可以用于接收分布式緩存系統(tǒng)的緩存客戶端側主動周期性地發(fā)出的獲取變更后數(shù)據(jù)的版本信息的請求,針對所述請求向所述緩存客戶端反饋版本信息。
[0011]可見本申請具有如下有益效果:
[0012]由于本申請實施例在緩存客戶端側主動周期性地向分布式緩存系統(tǒng)的緩存服務器側發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求,因此,可以主動從緩存服務器側獲得版本信息,根據(jù)版本信息從數(shù)據(jù)源中獲取變更后數(shù)據(jù),并進行緩存刷新,從而無需等待緩存服務器端逐一通知各個緩存客戶端,可以避免緩存服務器側發(fā)送大量通知導致的耗時問題,使緩存客戶端的緩存數(shù)據(jù)得以及時更新。
【附圖說明】
[0013]為了更清楚地說明本申請實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0014]圖1為本申請實施例公開的分布式緩存系統(tǒng)的結構示意圖之一;
[0015]圖2為本申請實施例公開的應用于緩存客戶端側的實現(xiàn)分布式緩存的方法流程不意圖;
[0016]圖3為本申請實施例涉及的變更后數(shù)據(jù)的示意圖;
[0017]圖4為本申請實施例公開的分布式緩存系統(tǒng)的結構示意圖之二 ;
[0018]圖5為本申請實施例公開的配置于緩存客戶端側的實現(xiàn)分布式緩存的裝置結構不意圖;
[0019]圖6為本申請實施例公開的應用于緩存服務器側的實現(xiàn)分布式緩存的方法流程不意圖;
[0020]圖7為本申請實施例公開的配置于緩存服務器側的實現(xiàn)分布式緩存的裝置結構示意圖。
【具體實施方式】
[0021 ] 為了使本技術領域的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
[0022]針對現(xiàn)有技術緩存服務器端依賴記錄表記錄的IP和主機名向緩存客戶端發(fā)送變更通知導致的緩存客戶端更新不及時的問題,本申請的發(fā)明人發(fā)現(xiàn)在緩存客戶端側主動周期性地向分布式緩存系統(tǒng)的緩存服務器側發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求,可以主動從緩存服務器側獲得版本信息,根據(jù)版本信息從數(shù)據(jù)源中獲取變更后數(shù)據(jù),并進行緩存刷新,從而無需等待緩存服務器端逐一通知各個緩存客戶端,可以避免緩存服務器側發(fā)送大量通知導致的耗時問題,使緩存客戶端的緩存數(shù)據(jù)得以及時更新。另外,由于緩存客戶端側主動從緩存服務器側獲取變更后數(shù)據(jù)的版本信息,因此,已經下線的緩存客戶端相當于自動取消了緩存更新的需求,因此,緩存客戶端的下線不會導致無法同步的緩存客戶端增多,使分布式緩存系統(tǒng)更加穩(wěn)定。
[0023]基于上述分析,本申請實施例提供了如下的實現(xiàn)分布式緩存的方法、裝置及系統(tǒng)。
[0024]例如,如圖1所示,為本申請實施例分布式緩存系統(tǒng)的組網示意圖。如圖1所示,本申請實施例分布式緩存系統(tǒng)可以包括緩存服務器側101,緩存客戶端側102的若干個緩存客戶端1021,以及數(shù)據(jù)源103。例如,數(shù)據(jù)源103可以為用于長期存儲數(shù)據(jù)的數(shù)據(jù)庫。緩存客戶端1021可以是部署在寄主服務器中的功能組件,用于提供數(shù)據(jù)緩存記錄功能。在一個分布式緩存系統(tǒng)中,可以包括多個寄主服務器,一個寄主服務器上可以部署一個或多個緩存客戶端。
[0025]下面,結合圖2對本申請實施例應用于緩存客戶端側的實現(xiàn)分布式緩存的方法進行詳細說明。例如,該方法可以包括:
[0026]S210、主動周期性地向分布式緩存系統(tǒng)的緩存服務器端發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求。
[0027]例如,在一些可能的實施方式中,所述緩存客戶端側可以設置有客戶端心跳觸發(fā)模塊。例如,可以一個寄主服務器設置一個客戶端心跳觸發(fā)模塊。該客戶端心跳觸發(fā)模塊可以與緩存服務器建立連接。由所述客戶端心跳觸發(fā)模塊以心跳的方式主動周期性地向分布式緩存系統(tǒng)的緩存服務器側發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求。再例如,在另一些可能的實施方式中,可以在緩存客戶端內設置定時器事件,由各個緩存客戶端通過自身的定時器事件分別主動周期性地向分布式緩存系統(tǒng)的緩存服務器端發(fā)出獲取變更后數(shù)據(jù)的版本信息的請求。
[0028]