專利名稱:從數(shù)據(jù)庫中讀取數(shù)據(jù)的方法及裝置的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)庫領域,尤其涉及一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的方法及裝置。
背景技術:
在現(xiàn)代計算機技術中,數(shù)據(jù)庫的應用非常廣泛,它是用于組織、存儲和管理數(shù)據(jù)的倉庫。數(shù)據(jù)庫作為整個應用系統(tǒng)的核心,其重要性不言而喻。而大多數(shù)應用的數(shù)據(jù)庫讀取操作比寫操作更密集,而且查詢條件相對復雜,數(shù)據(jù)庫的大部分性能消耗在查詢上,尤其在高用戶、高并發(fā)的大型應用中,數(shù)據(jù)庫的直接讀取的代價非常高,這時數(shù)據(jù)庫將會成為整個應用的瓶頸。緩存是內(nèi)存的一部分,用來緩存數(shù)據(jù)的一塊區(qū)域。當應用程序需要這些數(shù)據(jù)時,可以直接從緩存中提取,不需要訪問數(shù)據(jù)庫。故緩存是提高性能、緩解數(shù)據(jù)庫壓力的一種高效方法。而緩存更新就是把數(shù)據(jù)庫中的數(shù)據(jù)讀取并更新到內(nèi)存中去,其中如何從數(shù)據(jù)庫中讀取數(shù)據(jù),是影響整個系統(tǒng)性能的關鍵。
目前從數(shù)據(jù)庫讀取數(shù)據(jù)的方法有兩種,包括第一種,各緩存節(jié)點定時輪詢數(shù)據(jù)庫,檢查增量表或者源表的數(shù)據(jù)是否發(fā)生變化,如果有變化則讀取數(shù)據(jù)并更新緩存,同時在數(shù)據(jù)庫中標識該數(shù)據(jù)已被更新或刪除。該方法有如下缺點各緩存節(jié)點在檢查增量表或者源表的數(shù)據(jù)是否發(fā)生變化時需要定時輪詢數(shù)據(jù)庫,當系統(tǒng)比較大、緩存節(jié)點比較多的時候,頻繁、大量的輪詢數(shù)據(jù)庫,將會嚴重影響數(shù)據(jù)庫的性能,給數(shù)據(jù)庫造成了更大的壓力,并且各緩存節(jié)點定時輪詢必定有時間間隔,當增量表或者源表的數(shù)據(jù)發(fā)生變化時更新緩存的實時性不是特別高。第二種,利用應用程序?qū)ψ兏臄?shù)據(jù)進行采集、傳輸和維護操作。當數(shù)據(jù)被修改并保存到數(shù)據(jù)庫后,應用程序進行數(shù)據(jù)修改通知,把被修改的數(shù)據(jù)或者數(shù)據(jù)記錄唯一標識傳遞給各個緩存節(jié)點,然后各個緩存節(jié)點再進行緩存數(shù)據(jù)更新。此方法有效的解決了各緩存節(jié)點定時輪詢數(shù)據(jù)庫方法實時性差的問題,并且由于緩存節(jié)點不再輪詢數(shù)據(jù)庫,所以在很大程度上提高數(shù)據(jù)庫性能,緩解了數(shù)據(jù)庫壓力。但是,該方法要為所有處理緩存數(shù)據(jù)更新的功能模塊編寫相應的處理緩存更新的代碼。并且由于變動的數(shù)據(jù)是通過應用程序傳輸?shù)?,當在一些大型應用系統(tǒng),需要多節(jié)點緩存時,因為各個緩存節(jié)點需求的數(shù)據(jù)不一樣,需要對各個緩存節(jié)點進行相應的配置,所以會使整個系統(tǒng)非常復雜、繁瑣,開發(fā)難度、開發(fā)量和維護量都會大大增加。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的方法及裝置,實現(xiàn)了緩存的實時更新,并且降低了整個應用系統(tǒng)開發(fā)的復雜性。為達到上述目的,本發(fā)明的實施例采用如下技術方案—方面,本發(fā)明的實施例提供一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的方法,包括根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列,所述數(shù)據(jù)讀取控制表包括緩存節(jié)點信息表和緩存節(jié)點數(shù)據(jù)表,所述緩存節(jié)點信息表包括緩存節(jié)點ID和緩存節(jié)點標識,所述緩存節(jié)點數(shù)據(jù)表包括數(shù)據(jù)表標識、歸屬緩存節(jié)點標識、實際讀取對象標識;當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中; 緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。另一方面,本發(fā)明的實施例提供一種從數(shù)據(jù)庫讀取數(shù)據(jù)的裝置,包括建立單元,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表,所述數(shù)據(jù)讀取控制表包括緩存節(jié)點信息表和緩存節(jié)點數(shù)據(jù)表,所述緩存節(jié)點信息表包括緩存節(jié)點ID和緩存節(jié)點標識,所述緩沖節(jié)點數(shù)據(jù)表包括數(shù)據(jù)表標識、歸屬緩存節(jié)點標識、實際讀取對象標識;創(chuàng)建單元,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容創(chuàng)建消息隊列;寫入單元,用于當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和緩存所述數(shù)據(jù)表的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中;讀取單元,用于所述緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。本發(fā)明實施例提供的技術方案,與現(xiàn)有技術相比,根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列,當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中,各緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),避免緩存節(jié)點通過定時輪詢數(shù)據(jù)庫更新緩存,減輕了數(shù)據(jù)庫的壓力,實現(xiàn)了緩存數(shù)據(jù)更新的實時性;并且更新緩存數(shù)據(jù)的獲取是由緩存主動去讀對應的消息隊列中的相應更新信息獲取的,并不是通過應用程序互相通知去獲取的,因此使得緩存更新是一個獨立的操作,從而降低了整個應用系統(tǒng)開發(fā)的復雜性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實施例I中從數(shù)據(jù)庫中讀取數(shù)據(jù)的方法的流程圖;圖2為本發(fā)明實施例2中從數(shù)據(jù)庫中讀取數(shù)據(jù)的流程圖;圖3為本發(fā)明實施例2中寫入消息隊列的流程圖;圖4為本發(fā)明實施例2中從消息隊列中讀取更新數(shù)據(jù)信息的方法流程圖;圖5為本發(fā)明實施例3中一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的裝置組成框圖6為本發(fā)明實施例3中另一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的裝置組成框圖;圖7為本發(fā)明實施例3中另一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的裝置組成框圖;圖8為本發(fā)明實施例3中另一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的裝置組成框圖;圖9為本發(fā)明實施例3中另一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的裝置組成框圖;圖10為本發(fā)明實施例3中另一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的裝置組成框圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例I本發(fā)明實施例提供一種從數(shù)據(jù)庫讀取數(shù)據(jù)的方法,如圖I所示,該方法包括101、根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列。其中,所述數(shù)據(jù)讀取控制表包括緩存節(jié)點信息表和緩存節(jié)點數(shù)據(jù)表。所述緩存節(jié)點信息表包括緩存節(jié)點ID和緩存節(jié)點標識,所述緩存節(jié)點數(shù)據(jù)表包括數(shù)據(jù)表標識、歸屬緩存節(jié)點標識、實際讀取對象標識。102、當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中。103、緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。本發(fā)明實施例中,根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列,當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中,各緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),避免緩存節(jié)點通過定時輪詢數(shù)據(jù)庫更新緩存,減輕了數(shù)據(jù)庫的壓力,實現(xiàn)了緩存數(shù)據(jù)更新的實時性;并且更新緩存數(shù)據(jù)的獲取是由緩存主動去讀對應的消息隊列中的相應更新信息獲取的,并不是通過應用程序互相通知去獲取的,因此使得緩存更新是一個獨立的操作,從而降低了整個應用系統(tǒng)開發(fā)的復雜性。實施例2本發(fā)明實施例提供一種從數(shù)據(jù)庫讀取數(shù)據(jù)的方法,如圖2所示,該方法包括201、根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列,所述數(shù)據(jù)讀取控制表包括緩存節(jié)點信息表和緩存節(jié)點數(shù)據(jù)表,所述緩存節(jié)點信息表包括緩存節(jié)點ID和緩存節(jié)點標識,所述緩存節(jié)點數(shù)據(jù)表包括數(shù)據(jù)表標識、歸屬緩存節(jié)點標識、實際讀取對象標識。其中,所述根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容創(chuàng)建消息隊列,可以采用以下的方法實現(xiàn),該方法包括根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的消息隊列。當數(shù)據(jù)庫為Oracle數(shù)據(jù)庫時,所述根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的消息隊列,包括根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的數(shù)據(jù)對象類型;其中,對于只保存變動數(shù)據(jù)記錄唯一標識的,建立對象內(nèi)容包括節(jié)點標識、表或者視圖標識、操作類型(如插入、更新或者刪除)和記錄唯一標識;對于保存全部變動數(shù)據(jù)的,對象內(nèi)容包括節(jié)點標識、表或者視圖標識、操作類型和該表的緩存內(nèi)容;具體的,可以通過Create or Replace Type objectname As Object來建立用對象內(nèi)容。根據(jù)不同的所述數(shù)據(jù)對象類型分別建立不同的數(shù)據(jù)隊列表;其中,有多少個對象類型,需要建立多少個隊列表;具體的,可以通過dbms_aqadm. create_queue_tabIe建立隊列表。
為每個所述數(shù)據(jù)隊列表創(chuàng)建對應的消息隊列;具體的,可以通過dbms_aqadm.create_queue分別創(chuàng)建對應的消息隊列。202、當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器獲取所述數(shù)據(jù)表的更新數(shù)據(jù)信息,并根據(jù)所述數(shù)據(jù)表的標識查詢所述緩存節(jié)點數(shù)據(jù)表,獲取緩存所述數(shù)據(jù)表的緩存節(jié)點標識。203、將所述更新數(shù)據(jù)信息和所述緩存節(jié)點標識寫入到所述數(shù)據(jù)表對應的消息隊 列中。進一步的,所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器將所述更新數(shù)據(jù)信息寫入到所述數(shù)據(jù)表對應的消息隊列中,如圖3所示,包括。2031、確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式,若所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入消息隊列中,則執(zhí)行步驟2032 ;若所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入消息隊列中,則執(zhí)行步驟2033。
2032、所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù)記錄的標識,并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中。2033、所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù),并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式直接寫入到所述數(shù)據(jù)表對應的消息隊列中。204、緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。其中,所述緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),可以通過以下的方法實現(xiàn),如圖4所示,包括2041、緩存節(jié)點在連接數(shù)據(jù)庫后,根據(jù)所述緩存節(jié)點ID查詢所述緩存節(jié)點信息表,獲取所述緩存節(jié)點的緩存節(jié)點標識。2042、緩存節(jié)點根據(jù)所述緩存節(jié)點標識讀取所述緩存節(jié)點對應的消息隊列。若所述緩存節(jié)點對應的消息隊列中不存在所述緩存節(jié)點的數(shù)據(jù),執(zhí)行步驟2043。若所述緩存節(jié)點對應的消息隊列中存在所述緩存節(jié)點的數(shù)據(jù),執(zhí)行步驟2044。
2043、所述緩存節(jié)點讀取所述緩存節(jié)點對應的消息隊列的程序被阻塞。2044、從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。其中,所述從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),包括確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式。當所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時,從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)記錄標識,根據(jù)所述更新數(shù)據(jù)記錄標識從數(shù)據(jù)庫中獲取所述更新數(shù)據(jù)記錄標識對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù)。當所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時, 從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù)。本發(fā)明實施例中,根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列,當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中,各緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),避免緩存節(jié)點通過定時輪詢數(shù)據(jù)庫更新緩存,減輕了數(shù)據(jù)庫的壓力,實現(xiàn)了緩存數(shù)據(jù)更新的實時性;并且更新緩存數(shù)據(jù)的獲取是由緩存主動去讀對應的消息隊列中的相應更新信息獲取的,并不是通過應用程序互相通知去獲取的,因此使得緩存更新是一個獨立的操作,從而降低了整個應用系統(tǒng)開發(fā)的復雜性。并且,本發(fā)明實施例中為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的數(shù)據(jù)對象類型,根據(jù)不同的所述數(shù)據(jù)對象類型分別建立不同的數(shù)據(jù)隊列表,并且為每個所述數(shù)據(jù)隊列表創(chuàng)建對應的消息隊列,這樣可以很好的支持多節(jié)點緩存,同時各緩存節(jié)點需要的緩存數(shù)據(jù)可以靈活配置。此外,當所述緩存節(jié)點對應的消息隊列中不存在所述緩存節(jié)點的數(shù)據(jù)時,所述緩存節(jié)點讀取所述緩存節(jié)點對應的消息隊列的程序會被阻塞,當所述緩存節(jié)點對應的消息隊列中存在所述緩存節(jié)點的數(shù)據(jù)時,緩存節(jié)點根據(jù)所述緩存節(jié)點標識讀取所述緩存節(jié)點對應的消息隊列從而讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息。這樣可以更好的實現(xiàn)當有數(shù)據(jù)變動時所述緩存節(jié)點才會讀取所述更新數(shù)據(jù)信息進而更新所述緩存節(jié)點中的數(shù)據(jù)。實施例3本發(fā)明實施例提供一種從數(shù)據(jù)庫讀取數(shù)據(jù)的裝置,如圖5所示,該裝置包括建立單元31、創(chuàng)建單元32、寫入單元33、讀取單元34。建立單元31,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表。創(chuàng)建單元32,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容創(chuàng)建消息隊列。具體的,所述創(chuàng)建單元32用于,根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的消息隊列。
寫入單元33,用于當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和緩存所述數(shù)據(jù)表的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中。讀取單元34,用于所述緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。進一步的,如圖6所示,所述寫入單元33還包括第一獲取模塊331、第二獲取模塊332、寫入模塊333。 第一獲取模塊331,用于當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器獲取所述數(shù)據(jù)表的更新數(shù)據(jù)信息。第二獲取模塊332,用于根據(jù)所述數(shù)據(jù)表的標識查詢所述緩存節(jié)點數(shù)據(jù)表,獲取緩存所述數(shù)據(jù)表的緩存節(jié)點標識。寫入模塊333,用于將所述第一獲取模塊獲取的所述更新數(shù)據(jù)信息和所述第二獲取模塊獲取的所述緩存節(jié)點標識寫入到所述數(shù)據(jù)表對應的消息隊列中。進一步的,如圖7所示,所述寫入模塊還包括第一確定子模塊3331、第一寫入子模塊3332、第二寫入子模塊3333。第一確定子模塊3331,用于確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式。第一寫入子模塊3332,用于在所述第一確定子模塊3331確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入消息隊列中時,所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù)記錄的標識,并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中第二寫入子模塊3333,用于在所述第一確定子模塊3331確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入消息隊列中時,所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù),并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式直接寫入到所述數(shù)據(jù)表對應的消息隊列中。進一步的,如圖8所示,所述讀取單元34還包括查詢模塊341、第一讀取模塊342、第二讀取模塊343、阻塞操作模塊344。查詢模塊341,用于根據(jù)所述緩存節(jié)點ID查詢所述緩存節(jié)點信息表,獲取所述緩存節(jié)點的緩存節(jié)點標識。第一讀取模塊342,用于根據(jù)所述緩存節(jié)點標識讀取所述緩存節(jié)點對應的消息隊列。第二讀取模塊343,用于在所述緩存節(jié)點對應的消息隊列中存在所述緩存節(jié)點的數(shù)據(jù)時,從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。阻塞操作模塊344,用于在所述緩存節(jié)點對應的消息隊列中不存在所述緩存節(jié)點的數(shù)據(jù)時,所述緩存節(jié)點讀取所述緩存節(jié)點對應的消息隊列的程序被阻塞。進一步的,如圖9所示所述第二讀取模塊343包括第二確定子模塊3431、第一讀取子模塊3432和第二讀取子模塊3433。第二確定子模塊3431,用于確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式;第一讀取子模塊3432,用于當所述第二確定子模塊3431確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時,從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)記錄標識,根據(jù)所述更新數(shù)據(jù)記錄標識從數(shù)據(jù)庫中獲取所述更新數(shù)據(jù)記錄標識對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù);第二讀取子模塊3433,用于當所述第二確定子模塊3431確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時,從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù)。進一步的,如圖10所示,當所述數(shù)據(jù)庫為Oracle數(shù)據(jù)庫時,所述創(chuàng)建單元32還包括建立模塊321、第一創(chuàng)建模塊322、第二創(chuàng)建模塊323。建立模塊321,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的數(shù)據(jù)對象類型。第一創(chuàng)建模塊322,用于根據(jù)建立模塊建立的不同的所述數(shù)據(jù)對象類型分別建立 不同的數(shù)據(jù)隊列表。第二創(chuàng)建模塊323,用于為第一創(chuàng)建模塊創(chuàng)建的每個所述數(shù)據(jù)隊列表創(chuàng)建對應的消息隊列。需要說明的是,本發(fā)明實施例中各功能模塊的其他描述,可以參考實施例I和實施例2中的相應描述,本發(fā)明實施例此處將不再贅述。本發(fā)明實施例中,根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列,當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中,各緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),避免緩存節(jié)點通過定時輪詢數(shù)據(jù)庫更新緩存,減輕了數(shù)據(jù)庫的壓力,實現(xiàn)了緩存數(shù)據(jù)更新的實時性;并且更新緩存數(shù)據(jù)的獲取是由緩存主動去讀對應的消息隊列中的相應更新信息獲取的,并不是通過應用程序互相通知去獲取的,因此使得緩存更新是一個獨立的操作,從而降低了整個應用系統(tǒng)開發(fā)的復雜性。并且,本發(fā)明實施例中為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的數(shù)據(jù)對象類型,根據(jù)不同的所述數(shù)據(jù)對象類型分別建立不同的數(shù)據(jù)隊列表,并且為每個所述數(shù)據(jù)隊列表創(chuàng)建對應的消息隊列,這樣可以很好的支持多節(jié)點緩存,同時各緩存節(jié)點需要的緩存數(shù)據(jù)可以靈活配置。此外,當所述緩存節(jié)點對應的消息隊列中不存在所述緩存節(jié)點的數(shù)據(jù)時,所述緩存節(jié)點讀取所述緩存節(jié)點對應的消息隊列的程序會被阻塞,當所述緩存節(jié)點對應的消息隊列中存在所述緩存節(jié)點的數(shù)據(jù)時,緩存節(jié)點根據(jù)所述緩存節(jié)點標識讀取所述緩存節(jié)點對應的消息隊列從而讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息。這樣可以更好的實現(xiàn)當有數(shù)據(jù)變動時所述緩存節(jié)點才會讀取所述更新數(shù)據(jù)信息進而更新所述緩存節(jié)點中的數(shù)據(jù)。通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi) ,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。
權利要求
1.一種從數(shù)據(jù)庫讀取數(shù)據(jù)的方法,其特征在于,包括 根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列,所述數(shù)據(jù)讀取控制表包括緩存節(jié)點信息表和緩存節(jié)點數(shù)據(jù)表,所述緩存節(jié)點信息表包括緩存節(jié)點ID和緩存節(jié)點標識,所述緩存節(jié)點數(shù)據(jù)表包括數(shù)據(jù)表標識、歸屬緩存節(jié)點標識、實際讀取對象標識; 當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中; 緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。
2.根據(jù)權利要求I所述的方法,其特征在于,所述根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容, 為所述需要緩存的數(shù)據(jù)內(nèi)容創(chuàng)建消息隊列,包括 根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的消息隊列。
3.根據(jù)權利要求2所述的方法,其特征在于,當所述數(shù)據(jù)庫為Oracle數(shù)據(jù)庫時,所述根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的消息隊列,包括 根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的數(shù)據(jù)對象類型; 根據(jù)不同的所述數(shù)據(jù)對象類型分別建立不同的數(shù)據(jù)隊列表; 為每個所述數(shù)據(jù)隊列表創(chuàng)建對應的消息隊列。
4.根據(jù)權利要求I所述的方法,其特征在于,所述當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中,包括 當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器獲取所述數(shù)據(jù)表的更新數(shù)據(jù)信息,并根據(jù)所述數(shù)據(jù)表的標識查詢所述緩存節(jié)點數(shù)據(jù)表,獲取緩存所述數(shù)據(jù)表的緩存節(jié)點標識; 將所述更新數(shù)據(jù)信息和所述緩存節(jié)點標識寫入到所述數(shù)據(jù)表對應的消息隊列中。
5.根據(jù)權利要求4所述的方法,其特征在于,所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器將所述更新數(shù)據(jù)信息寫入到所述數(shù)據(jù)表對應的消息隊列中,包括 確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式; 若所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入消息隊列中,則所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù)記錄的標識,并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中; 若所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入消息隊列中,則所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù),并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式直接寫入到所述數(shù)據(jù)表對應的消息隊列中。
6.根據(jù)權利要求I所述的方法,其特征在于,所述緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),包括 緩存節(jié)點根據(jù)所述緩存節(jié)點的緩存節(jié)點ID查詢所述緩存節(jié)點信息表,獲取所述緩存節(jié)點的緩存節(jié)點標識; 根據(jù)所述緩存節(jié)點標識讀取所述緩存節(jié)點對應的消息隊列; 若所述緩存節(jié)點對應的消息隊列中存在所述緩存節(jié)點的數(shù)據(jù),則從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù); 若所述緩存節(jié)點對應的消息隊列中不存在所述緩存節(jié)點的數(shù)據(jù),則所述緩存節(jié)點讀取所述緩存節(jié)點對應的消息隊列的程序被阻塞。
7.根據(jù)權利要求I至6中任一項所述的方法,其特征在于,所述從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù),包括 確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式; 當所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時,從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)記錄標識,根據(jù)所述更新數(shù)據(jù)記錄標識從數(shù)據(jù)庫中獲取所述更新數(shù)據(jù)記錄標識對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù); 當所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時,從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù)。
8.一種從數(shù)據(jù)庫讀取數(shù)據(jù)的裝置,其特征在于,包括 建立單元,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表,所述數(shù)據(jù)讀取控制表包括緩存節(jié)點信息表和緩存節(jié)點數(shù)據(jù)表,所述緩存節(jié)點信息表包括緩存節(jié)點ID和緩存節(jié)點標識,所述緩沖節(jié)點數(shù)據(jù)表包括數(shù)據(jù)表標識、歸屬緩存節(jié)點標識、實際讀取對象標識; 創(chuàng)建單元,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容創(chuàng)建消息隊列; 寫入單元,用于當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和緩存所述數(shù)據(jù)表的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中; 讀取單元,用于緩存節(jié)點從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。
9.根據(jù)權利要求8所述的裝置,其特征在于,所述創(chuàng)建單元用于,根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的消息隊列。
10.根據(jù)權利要求8或9所述的裝置,其特征在于,當所述數(shù)據(jù)庫為Oracle數(shù)據(jù)庫時,所述創(chuàng)建單元包括 建立模塊,用于根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為不同類型的所述需要緩存的數(shù)據(jù)內(nèi)容建立不同的數(shù)據(jù)對象類型; 第一創(chuàng)建模塊,用于根據(jù)建立模塊建立的不同的所述數(shù)據(jù)對象類型分別建立不同的數(shù)據(jù)隊列表; 第二創(chuàng)建模塊,用于為第一創(chuàng)建模塊創(chuàng)建的每個所述數(shù)據(jù)隊列表創(chuàng)建對應的消息隊列。
11.根據(jù)權利要求8所述的裝置,其特征在于,所述寫入單元包括 第一獲取模塊,用于當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器獲取所述數(shù)據(jù)表的更新數(shù)據(jù)信息; 第二獲取模塊,用于根據(jù)所述數(shù)據(jù)表的標識查詢所述緩存節(jié)點數(shù)據(jù)表,獲取緩存所述數(shù)據(jù)表的緩存節(jié)點標識; 寫入模塊,用于將所述第一獲取模塊獲取的所述更新數(shù)據(jù)信息和所述第二獲取模塊獲取的所述緩存節(jié)點標識寫入到所述數(shù)據(jù)表對應的消息隊列中。
12.根據(jù)權利要求11所述的裝置,其特征在于,所述寫入模塊包括 第一確定子模塊,用于確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式; 第一寫入子模塊,用于在所述第一確定子模塊確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入消息隊列中時,所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù)記錄的標識,并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中; 第二寫入子模塊,用于在所述第一確定子模塊確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入消息隊列中時,所述更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器讀取所述數(shù)據(jù)表更新數(shù)據(jù),并將所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式直接寫入到所述數(shù)據(jù)表對應的消息隊列中。
13.根據(jù)權利要求8所述的裝置,其特征在于,所述讀取單元包括 查詢模塊,用于根據(jù)所述緩存節(jié)點ID查詢所述緩存節(jié)點信息表,獲取所述緩存節(jié)點的緩存節(jié)點標識; 第一讀取模塊,用于根據(jù)所述緩存節(jié)點標識讀取所述緩存節(jié)點對應的消息隊列;第二讀取模塊,用于在所述緩存節(jié)點對應的消息隊列中存在所述緩存節(jié)點的數(shù)據(jù)時,從所述緩存節(jié)點對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)信息,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù); 阻塞操作模塊,用于在所述緩存節(jié)點對應的消息隊列中不存在所述緩存節(jié)點的數(shù)據(jù)時,所述緩存節(jié)點讀取所述緩存節(jié)點對應的消息隊列的程序被阻塞。
14.根據(jù)權利要求13所述的裝置,其特征在于,所述第二讀取模塊包括 第二確定子模塊,用于確定所述更新數(shù)據(jù)信息寫入到消息隊列中的形式; 第一讀取子模塊,用于當所述第二確定子模塊確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)記錄標識的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時,從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù)記錄標識,根據(jù)所述更新數(shù)據(jù)記錄標識從數(shù)據(jù)庫中獲取所述更新數(shù)據(jù)記錄標識對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù); 第二讀取子模塊,用于當所述第二確定子模塊確定所述更新數(shù)據(jù)信息以更新數(shù)據(jù)的形式寫入到所述數(shù)據(jù)表對應的消息隊列中時,從所述對應的消息隊列中讀取所述緩存節(jié)點對應的更新數(shù)據(jù),并根據(jù)所述更新數(shù)據(jù)更新所述緩存節(jié)點中的數(shù)據(jù)。
全文摘要
本發(fā)明實施例公開了一種從數(shù)據(jù)庫中讀取數(shù)據(jù)的方法及裝置,涉及數(shù)據(jù)庫,實現(xiàn)了緩存的實時更新,并且降低了整個應用系統(tǒng)開發(fā)的復雜性。本發(fā)明的方法包括根據(jù)緩存節(jié)點需要緩存的數(shù)據(jù)內(nèi)容,為所述需要緩存的數(shù)據(jù)內(nèi)容建立數(shù)據(jù)讀取控制表和創(chuàng)建消息隊列;當應用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時,更新數(shù)據(jù)的數(shù)據(jù)表對應的觸發(fā)器,將所述數(shù)據(jù)表的更新數(shù)據(jù)信息和所述數(shù)據(jù)表需要緩存的緩存節(jié)點標識,寫入到所述數(shù)據(jù)表對應的消息隊列中;緩存節(jié)點根據(jù)所述緩存節(jié)點標識讀取所述緩存節(jié)點對應的消息隊列,并根據(jù)所述更新數(shù)據(jù)信息更新所述緩存節(jié)點中的數(shù)據(jù)。本發(fā)明的實施例主要用于緩存系統(tǒng)從數(shù)據(jù)庫讀取數(shù)據(jù)并更新緩存的過程中。
文檔編號G06F17/30GK102741843SQ201180004080
公開日2012年10月17日 申請日期2011年3月22日 優(yōu)先權日2011年3月22日
發(fā)明者王震 申請人:青島海信傳媒網(wǎng)絡技術有限公司