數據管理方法和裝置與流程
2023-04-28 10:59:46

本發明涉及網際網路技術領域,尤其涉及一種數據管理方法和裝置。
背景技術:
現在,對於應用的本地緩存管理,如果是靜態數據,直接使用內存緩存即可,但是後續如果有新增或是變更的可能,就需要有實時生效的功能。另外,每個緩存刷新的時機需要可控,否則可能會有兼容性問題。現有技術中,一般通過一張緩存管理表和一個容器內的定時任務實現上述目的,具體地,定時任務掃描表中所有狀態為等待刷新(wait_for_refresh)的數據,然後從存儲處獲取最新的數據,更新本地緩存,然後將緩存狀態更新為刷新結束(refresh_finish)。
但是,當集群中有多臺機器時,集群中的所有機器共用這個緩存管理表,第一臺機器更新完成後,將緩存的記錄狀態更新為refresh_finish,其它機器過來時,發現沒有wait_for_refresh的數據了,就不會更新本地的緩存數據了,此時將會出現集群中,永遠只有一臺機器能夠刷新最新的緩存。
技術實現要素:
本發明的目的旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本發明的第一個目的在於提出一種數據管理方法。該方法通過伺服器的標識信息對該伺服器的數據進行標識,從而對於靜態配置類數據,可以實現每臺伺服器都有自身獨特的配置,對於動態管理類數據,可以實現每臺伺服器獨立刷新自身對應的緩存數據,不同的伺服器刷新互不影響。
本發明的第二個目的在於提出一種數據管理裝置。
為了實現上述目的,本發明第一方面實施例的數據管理方法,包括:根據伺服器的標識信息從緩存管理表中獲得所述伺服器的標識信息對應的緩存記錄;從所述伺服器的標識信息對應的緩存記錄中獲得狀態為等待刷新的緩存記錄;根據所述狀態為等待刷新的緩存記錄中的緩存名稱刷新所述緩存名稱對應的緩存數據。
本發明實施例的數據管理方法,根據伺服器的標識信息從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄之後,從上述伺服器的標識信息對應的緩存記錄中獲得狀態 為等待刷新的緩存記錄,然後根據狀態為等待刷新的緩存記錄中的緩存名稱刷新上述緩存名稱對應的緩存數據,從而對於動態管理類數據,可以實現每臺伺服器獨立刷新自身對應的緩存數據,不同的伺服器刷新互不影響。
為了實現上述目的,本發明第二方面實施例的數據管理方法,包括:根據伺服器的標識信息在資料庫中查找所述伺服器的標識信息對應的配置數據;如果查找到,則加載所述伺服器的標識信息對應的配置數據。
本發明實施例的數據管理方法,如果在資料庫中查找到伺服器的標識信息對應的配置數據,則加載上述伺服器的標識信息對應的配置數據,從而對於靜態配置類數據,可以實現每臺伺服器都有自身獨特的配置。
為了實現上述目的,本發明第三方面實施例的數據管理裝置,包括:獲得模塊,用於根據伺服器的標識信息從緩存管理表中獲得所述伺服器的標識信息對應的緩存記錄;以及從所述伺服器的標識信息對應的緩存記錄中獲得狀態為等待刷新的緩存記錄;刷新模塊,用於根據所述狀態為等待刷新的緩存記錄中的緩存名稱刷新所述緩存名稱對應的緩存數據。
上述數據管理裝置,獲得模塊根據伺服器的標識信息從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄之後,從上述伺服器的標識信息對應的緩存記錄中獲得狀態為等待刷新的緩存記錄,然後刷新模塊根據狀態為等待刷新的緩存記錄中的緩存名稱刷新上述緩存名稱對應的緩存數據,從而對於動態管理類數據,可以實現每臺伺服器獨立刷新自身對應的緩存數據,不同的伺服器刷新互不影響。
為了實現上述目的,本發明第四方面實施例的數據管理裝置,包括:查找模塊,用於根據伺服器的標識信息在資料庫中查找所述伺服器的標識信息對應的配置數據;加載模塊,用於當所述查找模塊查找到所述伺服器的標識信息對應的配置數據時,加載所述伺服器的標識信息對應的配置數據。
上述數據管理裝置,如果查找模塊在資料庫中查找到伺服器的標識信息對應的配置數據,則加載模塊加載上述伺服器的標識信息對應的配置數據,從而對於靜態配置類數據,可以實現每臺伺服器都有自身獨特的配置。
本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本發明數據管理方法一個實施例的流程圖;
圖2為本發明註冊緩存記錄一個實施例的流程圖;
圖3為本發明數據管理方法另一個實施例的流程圖;
圖4為本發明數據管理裝置一個實施例的結構示意圖;
圖5為本發明數據管理裝置另一個實施例的結構示意圖;
圖6為本發明數據管理裝置再一個實施例的結構示意圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本發明,而不能理解為對本發明的限制。相反,本發明的實施例包括落入所附加權利要求書的精神和內涵範圍內的所有變化、修改和等同物。
圖1為本發明數據管理方法一個實施例的流程圖,如圖1所示,該數據管理方法可以包括:
步驟101,根據伺服器的標識信息從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄。
具體地,集群中的每臺伺服器可以根據伺服器的標識信息,定時或周期性地從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄。
本實施例中,在資料庫存儲的緩存管理表中,增加每臺伺服器的標識信息,實現一臺伺服器對應一條緩存記錄,每臺伺服器定時或周期性查詢自身對應的緩存記錄。本實施例中,上述伺服器的標識信息可以包括上述伺服器的名稱和/或網際網路協議(Internet Protocol;以下簡稱:IP)地址。
其中,伺服器對應的緩存記錄的數據結構可以如表1所示。
表1
步驟102,從上述伺服器的標識信息對應的緩存記錄中獲得狀態為等待刷新的緩存記錄。
步驟103,根據上述狀態為等待刷新的緩存記錄中的緩存名稱刷新上述緩存名稱對應的緩存數據。
進一步地,步驟103,根據上述狀態為等待刷新的緩存記錄中的緩存名稱刷新上述緩存名稱對應的緩存數據之後,將上述狀態為等待刷新的緩存記錄的狀態更新為刷新結束。
也就是說,本實施例中,對於緩存記錄中,伺服器的標識信息標識的是伺服器自身,並且狀態是wait_for_refresh的緩存記錄,伺服器才會執行緩存刷新操作,這樣可以實現按伺服器級別控制緩存刷新的時機,實現每臺伺服器獨立刷新自身對應的緩存數據,不同的伺服器刷新互不影響。
另外,本實施例中,在步驟101,根據伺服器的標識信息從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄之前,還需要先將伺服器對應的緩存記錄在緩存管理表中註冊,圖2為本發明註冊緩存記錄一個實施例的流程圖,如圖2所示,可以包括:
步驟201,對伺服器的本地緩存進行初始化,在緩存管理表中查找上述伺服器的標識信息對應的緩存記錄。
步驟202,判斷在緩存管理表中是否查找到上述伺服器的標識信息對應的緩存記錄。如果未查找到,則執行步驟203;如果在緩存管理表中查找到上述伺服器的標識信息對應的緩存記錄,則執行步驟204。
步驟203,在上述緩存管理表中插入上述伺服器的標識信息對應的緩存記錄。
其中,上述伺服器的標識信息對應的緩存記錄包括標識信息欄位和狀態欄位,上述標識信息欄位的值為上述伺服器的標識信息,上述狀態欄位的值為初始值。具體地,上述伺服器的標識信息對應的緩存記錄的數據結構可以如表1所示。
步驟204,將上述伺服器的標識信息對應的緩存記錄中狀態欄位的值設為初始值。
也就是說,本發明圖1和圖2所示實施例中,開始時,集群中每臺伺服器對應的緩存記錄中狀態欄位的值均為初始值,對於應用的本地緩存管理,如果新增或變更了配置數據,需要某臺伺服器刷新自身的緩存數據時,就將緩存管理表中該伺服器對應的緩存記錄中狀態欄位的值設為等待刷新(wait_for_refresh),這樣當該伺服器定時任務啟動,獲得該伺服器的標識信息對應的緩存記錄之後,就可以獲得上述伺服器的標識信息對應的緩存記錄中狀態為等待刷新的緩存記錄,繼而可以根據上述狀態為等待刷新的緩存記錄中的緩存名稱刷新上述緩存名稱對應的緩存數據,對該伺服器中的配置數據進行相應地新增或變更。從而可以實現通過伺服器的標識信息對該伺服器的緩存數據進行標識,對於動態管理類數據,可以實現每臺伺服器獨立刷新自身對應的緩存數據,不同的伺服器刷新互不影響。
圖3為本發明數據管理方法另一個實施例的流程圖,如圖3所示,該數據管理方法可以包括:
步驟301,根據伺服器的標識信息在資料庫中查找上述伺服器的標識信息對應的配置數據。
具體地,集群中的每臺伺服器可以根據該伺服器的標識信息定時或周期性地在資料庫中查找上述伺服器的標識信息對應的配置數據。
步驟302,如果查找到,則加載上述伺服器的標識信息對應的配置數據。
進一步地,步驟301,根據伺服器的標識信息在資料庫中查找上述伺服器的標識信息對應的配置數據之後,如果在資料庫中未查找到上述伺服器的標識信息對應的配置數據,則加載默認的配置數據。
本實施例中,上述伺服器的標識信息可以為伺服器的名稱(SERVER_HOST_NAME)。
本實施例中,對於靜態配置類數據,可以在配置數據中增加伺服器的標識信息欄位,以標識配置數據是屬於哪臺伺服器的,每臺伺服器根據自身的標識信息去查詢相應的配置數據。其中,上述伺服器的標識信息可以為伺服器的名稱(SERVER_HOST_NAME),上述伺服器的標識信息對應的配置數據的數據結構的一個示例可以如表2所示。
表2
當然,也不是所有伺服器的配置數據都不一樣,因此,本實施例中還保存有一套默認的配置數據,如果根據伺服器的標識信息未查找到上述伺服器的標識信息對應的配置數據,則可以直接加載默認的配置數據。
因此,當接入網購平臺的商戶的交易發生一些關鍵事件時,例如:發生支付成功、支付審核通過、支付審核拒絕或拒絕支付等事件時,網購平臺需要將上述關鍵事件通知到商戶的指定地址,以便商戶做相應的數據狀態變更。另外,當網購平臺和商戶一起做功能升 級時,可能會涉及到通知欄位和地址等配置信息的變更,此時,多個項目同時並行,通知欄位和地址等關鍵信息必須存在多套,每個項目的項目環境獲取對應的配置,與商戶進行聯調測試。
也就是說,在上述情形下,當某臺伺服器的配置數據有變更時,可以在圖2所示的配置數據的數據結構中增加伺服器的標識信息欄位,並將伺服器的標識信息欄位的值設置為相應伺服器的標識信息,例如:伺服器的名稱,這樣,當伺服器定時或周期性查找自身的配置數據時,就可以根據自身的標識信息查找到自身的配置數據,實現每臺伺服器都有自身獨特的配置。
並且,資料庫中還保存有一套默認的配置數據,如果根據自身的標識信息未查找到相應的配置數據,則直接使用默認的配置數據,從而可以實現配置數據沒有變更時,不做任何配置。
圖4為本發明數據管理裝置一個實施例的結構示意圖,本實施例中的數據管理裝置可以作為伺服器,或伺服器的一部分實現本發明圖1所示實施例的流程,如圖4所示,該數據管理裝置可以包括:獲得模塊41和刷新模塊42;
獲得模塊41,用於根據伺服器的標識信息從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄;以及從上述伺服器的標識信息對應的緩存記錄中獲得狀態為等待刷新的緩存記錄;其中,獲得模塊41,具體用於根據伺服器的標識信息,定時或周期性地從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄。
本實施例中,在資料庫存儲的緩存管理表中,增加每臺伺服器的標識信息,實現一臺伺服器對應一條緩存記錄,獲得模塊41定時或周期性查詢伺服器的標識信息對應的緩存記錄。本實施例中,上述伺服器的標識信息可以包括上述伺服器的名稱和/或IP位址。其中,伺服器對應的緩存記錄的數據結構可以如表1所示。
刷新模塊42,用於根據上述狀態為等待刷新的緩存記錄中的緩存名稱刷新上述緩存名稱對應的緩存數據。進一步地,刷新模塊42,還用於在刷新上述緩存名稱對應的緩存數據之後,將上述狀態為等待刷新的緩存記錄的狀態更新為刷新結束。
也就是說,本實施例中,對於緩存記錄中,伺服器的標識信息標識的是伺服器自身,並且狀態是wait_for_refresh的緩存記錄,刷新模塊42才會執行緩存刷新操作,這樣可以實現按伺服器級別控制緩存刷新的時機,實現每臺伺服器獨立刷新自身對應的緩存數據,不同的伺服器刷新互不影響。
圖4所示實施例中,伺服器可以為集群中的伺服器,但本發明實施例並不僅限於此,本實施例對此不作限定。
圖5為本發明數據管理裝置另一個實施例的結構示意圖,與圖4所示的數據管理裝置 相比,不同之處在於,圖5所示的數據管理裝置還可以包括:查找模塊43、插入模塊44和設置模塊45;
其中,查找模塊43,用於在獲得模塊41根據伺服器的標識信息從緩存管理表中獲得上述伺服器的標識信息對應的緩存記錄之前,對伺服器的本地緩存進行初始化,在緩存管理表中查找上述伺服器的標識信息對應的緩存記錄;
插入模塊44,用於當查找模塊43在上述緩存管理表中未查找到上述伺服器的標識信息對應的緩存記錄時,在緩存管理表中插入上述伺服器的標識信息對應的緩存記錄,上述伺服器的標識信息對應的緩存記錄包括標識信息欄位和狀態欄位,上述標識信息欄位的值為伺服器的標識信息,上述狀態欄位的值為初始值。具體地,上述伺服器的標識信息對應的緩存記錄的數據結構可以如表1所示。
設置模塊45,用於當查找模塊43在上述緩存管理表中查找到上述伺服器的標識信息對應的緩存記錄時,將上述伺服器的標識信息對應的緩存記錄中狀態欄位的值設為初始值。
上述實施例中,通過伺服器的標識信息對該伺服器的緩存數據進行標識,從而對於動態管理類數據,可以實現每臺伺服器獨立刷新自身對應的緩存數據,不同的伺服器刷新互不影響。
圖6為本發明數據管理裝置再一個實施例的結構示意圖,本實施例中的伺服器可以作為伺服器,或伺服器的一部分實現本發明圖3所示實施例的流程,如圖6所示,該數據管理裝置可以包括:查找模塊61和加載模塊62;
查找模塊61,用於根據伺服器的標識信息在資料庫中查找上述伺服器的標識信息對應的配置數據;具體地,查找模塊61可以根據該伺服器的標識信息定時或周期性地在資料庫中查找上述伺服器的標識信息對應的配置數據。
加載模塊62,用於當查找模塊61查找到上述伺服器的標識信息對應的配置數據時,加載上述伺服器的標識信息對應的配置數據。
進一步地,加載模塊62,還用於當查找模塊61未查找到上述伺服器的標識信息對應的配置數據時,加載默認的配置數據。
本實施例中,上述伺服器的標識信息可以為伺服器的名稱(SERVER_HOST_NAME)。
本實施例中,對於靜態配置類數據,可以在配置數據中增加伺服器的標識信息欄位,以標識配置數據是屬於哪臺伺服器的,查找模塊61根據伺服器的標識信息去查詢相應的配置數據。其中,上述伺服器的標識信息可以為伺服器的名稱(SERVER_HOST_NAME),上述伺服器的標識信息對應的配置數據的數據結構的一個示例可以如表2所示。
當然,也不是所有伺服器的配置數據都不一樣,因此,本實施例中還保存有一套默認的配置數據,如果根據伺服器的標識信息未查找到上述伺服器的標識信息對應的配置數據, 則可以直接加載默認的配置數據。
本實施例中,伺服器可以為集群中的伺服器,但本發明實施例並不僅限於此,本實施例對此不作限定。
本實施例中,當某臺伺服器的配置數據有變更時,就在配置數據中增加伺服器的標識信息欄位,並將伺服器的標識信息欄位的值設置為相應伺服器的標識信息,例如:伺服器的名稱,這樣,當查找模塊61定時或周期性查找伺服器的配置數據時,就可以根據伺服器的標識信息查找到伺服器的配置數據,實現每臺伺服器都有自身獨特的配置。
並且,資料庫中還保存有一套默認的配置數據,如果查找模塊61根據伺服器的標識信息未查找到相應的配置數據,則加載模塊62直接加載默認的配置數據,從而可以實現配置數據沒有變更時,不做任何配置。
需要說明的是,在本發明的描述中,術語「第一」、「第二」等僅用於描述目的,而不能理解為指示或暗示相對重要性。此外,在本發明的描述中,除非另有說明,「多個」的含義是兩個或兩個以上。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用於實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,並且本發明的優選實施方式的範圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
應當理解,本發明的各部分可以用硬體、軟體、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟體或固件來實現。例如,如果用硬體來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用於對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(Programmable Gate Array;以下簡稱:PGA),現場可編程門陣列(Field Programmable Gate Array;以下簡稱:FPGA)等。
本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
此外,本發明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以採用硬體的形式實現,也可以採用軟體功能模塊的形式實現。所述集成的模塊如果以軟 件功能模塊的形式實現並作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。
在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
儘管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的範圍內可以對上述實施例進行變化、修改、替換和變型。