專(zhuān)利名稱(chēng):內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理技術(shù)領(lǐng)域,具體而言,涉及一種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法及裝置。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,社會(huì)信息化程度越來(lái)越高,數(shù)據(jù)庫(kù)在各行各業(yè)中的應(yīng)用越來(lái)越廣,物理數(shù)據(jù)庫(kù)中存放了產(chǎn)品運(yùn)行所需的業(yè)務(wù)相關(guān)數(shù)據(jù)和配置數(shù)據(jù)等,物理數(shù)據(jù)庫(kù)的存在保證了數(shù)據(jù)的穩(wěn)定性。但是隨著信息技術(shù)的不斷發(fā)展,高速實(shí)時(shí)處理數(shù)據(jù)成為普遍的需求,所以越來(lái)越多的應(yīng)用系統(tǒng)都開(kāi)發(fā)了基于內(nèi)存運(yùn)算的專(zhuān)用存儲(chǔ)程序(內(nèi)存數(shù)據(jù)庫(kù)),將常用的數(shù)據(jù)緩存在內(nèi)存中,加快了訪問(wèn)速度,提高了產(chǎn)品性能。內(nèi)存數(shù)據(jù)庫(kù)的產(chǎn)生大大減少了對(duì)物理數(shù)據(jù)庫(kù)的1/0(輸入/輸出)操作,對(duì)物理數(shù)據(jù)庫(kù)的各種操作改成了對(duì)內(nèi)存的操作,提高效率的同時(shí)也弱化了對(duì)物理數(shù)據(jù)庫(kù)的依賴(lài),物理數(shù)據(jù)庫(kù)存在的最主要意義就變成了對(duì)數(shù)據(jù)的保存,以及加載數(shù)據(jù)的來(lái)源。同時(shí),目前存在這樣一類(lèi)產(chǎn)品,數(shù)據(jù)量較大,數(shù)據(jù)實(shí)時(shí)查詢(xún)較多,但是數(shù)據(jù)本身變動(dòng)較少,該類(lèi)產(chǎn)品對(duì)數(shù)據(jù)的操作可以通過(guò)與內(nèi)存數(shù)據(jù)庫(kù)的交互完成,此時(shí)如果再投入較大成本購(gòu)買(mǎi)數(shù)據(jù)庫(kù)產(chǎn)品及配套服務(wù),而物理數(shù)據(jù)庫(kù)只用于數(shù)據(jù)備份及加載,顯然有些得不償失。針對(duì)相關(guān)技術(shù)中的上述問(wèn)題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法及裝置,以解決上述問(wèn)題至少之一。根據(jù)本發(fā)明的一個(gè)方面,提供了一種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法,包括內(nèi)存數(shù)據(jù)庫(kù)加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù);內(nèi)存數(shù)據(jù)庫(kù)響應(yīng)于外界請(qǐng)求,對(duì)加載的數(shù)據(jù)進(jìn)行操作。上述文件包括全量數(shù)據(jù)文件和日志文件,其中,全量數(shù)據(jù)文件用于表示截止到指定時(shí)間生成的業(yè)務(wù)數(shù)據(jù),日志文件用于存放生成全量數(shù)據(jù)文件之后的數(shù)據(jù)操作記錄。上述內(nèi)存數(shù)據(jù)庫(kù)加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù)之后,還包括內(nèi)存數(shù)據(jù)庫(kù)重新執(zhí)行日志文件中的操作記錄所對(duì)應(yīng)的操作。上述方法還包括在預(yù)定時(shí)間點(diǎn)到達(dá)時(shí),內(nèi)存數(shù)據(jù)庫(kù)生成當(dāng)前的文件和/或刪除已經(jīng)過(guò)期的文件。上述文件為以下之一格式文本txt格式、SQL格式、XLS格式。上述內(nèi)存數(shù)據(jù)庫(kù)對(duì)加載的數(shù)據(jù)進(jìn)行以下至少之一操作查詢(xún)、更新、增加、刪除。根據(jù)本發(fā)明的另一方面,提供了一種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作裝置,包括加載模塊,用于加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù);操作模塊,用于響應(yīng)于外界請(qǐng)求,對(duì)加載的數(shù)據(jù)進(jìn)行操作。
3
上述文件包括全量數(shù)據(jù)文件和日志文件,其中,全量數(shù)據(jù)文件用于表示截止到指定時(shí)間生成的業(yè)務(wù)數(shù)據(jù),日志文件用于存放生成全量數(shù)據(jù)文件之后的數(shù)據(jù)操作記錄。上述加載模塊,還用于重新執(zhí)行日志文件中的操作記錄所對(duì)應(yīng)的操作。上述裝置還包括定時(shí)任務(wù)模塊,用于在預(yù)定時(shí)間點(diǎn)到達(dá)時(shí),通知操作模塊生成當(dāng)前的文件和/或刪除已經(jīng)過(guò)期的文件。通過(guò)本發(fā)明,采用將預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫(kù)的技術(shù)手段,解決了相關(guān)技術(shù)中產(chǎn)品運(yùn)行依賴(lài)物理數(shù)據(jù)庫(kù)而導(dǎo)致的數(shù)據(jù)操作效率較低及浪費(fèi)成本等問(wèn)題,進(jìn)而實(shí)現(xiàn)了使用內(nèi)存數(shù)據(jù)庫(kù)取代物理數(shù)據(jù)庫(kù),從而取得了降低對(duì)物理數(shù)據(jù)庫(kù)的依賴(lài),提高對(duì)數(shù)據(jù)的操作效率以及節(jié)省成本的效果。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1為根據(jù)本發(fā)明實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法的流程圖;圖2為根據(jù)本發(fā)明實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作裝置結(jié)構(gòu)框圖;圖3為根據(jù)本發(fā)明實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作裝置結(jié)構(gòu)示意圖;圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作系統(tǒng)結(jié)構(gòu)示意圖;圖5為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的業(yè)務(wù)調(diào)用接口模塊與內(nèi)存數(shù)據(jù)庫(kù)模塊的交互流程示意圖;圖6為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的定時(shí)任務(wù)模塊與內(nèi)存數(shù)據(jù)庫(kù)模塊的交互流程示意圖;圖7為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的定時(shí)任務(wù)模塊與內(nèi)存數(shù)據(jù)庫(kù)模塊的另外一個(gè)交互流程示意圖;圖8是內(nèi)存數(shù)據(jù)庫(kù)模塊業(yè)務(wù)啟動(dòng)時(shí)加載流程示意圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。圖1為根據(jù)本發(fā)明實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法的流程圖。如圖1所示, 該方法包括步驟S102,內(nèi)存數(shù)據(jù)庫(kù)加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù);步驟S104,內(nèi)存數(shù)據(jù)庫(kù)響應(yīng)于外界請(qǐng)求,對(duì)加載的數(shù)據(jù)進(jìn)行操作。無(wú)論產(chǎn)品是否為數(shù)據(jù)量較大,數(shù)據(jù)實(shí)時(shí)操作較多,但是數(shù)據(jù)本身變動(dòng)較少的產(chǎn)品, 均可以利用上述處理過(guò)程對(duì)數(shù)據(jù)進(jìn)行操作,可以有效提高對(duì)數(shù)據(jù)的操作效率。尤其針對(duì)數(shù)據(jù)量較大,數(shù)據(jù)實(shí)時(shí)操作較多,但是數(shù)據(jù)本身變動(dòng)較少的產(chǎn)品,可以利用上述處理過(guò)程,使用內(nèi)存數(shù)據(jù)庫(kù)取代物理數(shù)據(jù)庫(kù),從而降低對(duì)物理數(shù)據(jù)庫(kù)的依賴(lài)以及節(jié)省成本。 上述文件包括全量數(shù)據(jù)文件和日志文件,其中,全量數(shù)據(jù)文件用于表示截止到指定時(shí)間生成的業(yè)務(wù)數(shù)據(jù),日志文件用于存放生成全量數(shù)據(jù)文件之后的數(shù)據(jù)操作記錄。
為了保證內(nèi)存數(shù)據(jù)庫(kù)中的文件為完整的業(yè)務(wù)數(shù)據(jù),內(nèi)存數(shù)據(jù)庫(kù)加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù)之后,還可以包括以下處理過(guò)程內(nèi)存數(shù)據(jù)庫(kù)重新執(zhí)行日志文件中的操作記錄所對(duì)應(yīng)的操作。為了保持內(nèi)存數(shù)據(jù)庫(kù)中數(shù)據(jù)及時(shí)更新以及節(jié)省內(nèi)存空間,在預(yù)定時(shí)間點(diǎn)到達(dá)時(shí), 內(nèi)存數(shù)據(jù)庫(kù)生成當(dāng)前文件和/或刪除已經(jīng)過(guò)期的文件。在上述內(nèi)存數(shù)據(jù)庫(kù)加載產(chǎn)品運(yùn)行所需的全部數(shù)據(jù)時(shí),為了使內(nèi)存數(shù)據(jù)庫(kù)可以讀取需要加載的數(shù)據(jù),可以將數(shù)據(jù)存放在預(yù)定格式(該格式應(yīng)為可被內(nèi)存數(shù)據(jù)讀取的格式)的文件中,例如文本txt本件、XML文件、SQL文件等。因此,上述文件可以為以下之一格式 文本txt格式、SQL格式、XLS格式等。上述內(nèi)存數(shù)據(jù)庫(kù)對(duì)加載的數(shù)據(jù)可以進(jìn)行以下至少之一操作查詢(xún)、更新、增加、刪除。在本實(shí)施例中還提供了一種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作裝置,該裝置用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過(guò)說(shuō)明的不再贅述,下面對(duì)該裝置中涉及到模塊進(jìn)行說(shuō)明。如以下所使用的,術(shù)語(yǔ)“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來(lái)實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。圖2為根據(jù)本發(fā)明實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作裝置結(jié)構(gòu)框圖。如圖2所示,該裝置包括加載模塊20,用于加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù);操作模塊22,與加載模塊20相連,用于響應(yīng)于外界請(qǐng)求,對(duì)加載的數(shù)據(jù)進(jìn)行操作。優(yōu)選地,上述包括全量數(shù)據(jù)文件和日志文件,其中,全量數(shù)據(jù)文件用于表示截止到指定時(shí)間生成的業(yè)務(wù)數(shù)據(jù),日志文件用于存放生成全量數(shù)據(jù)文件之后的數(shù)據(jù)操作記錄。優(yōu)選地,如圖3所示,上述裝置還可以包括定時(shí)任務(wù)模塊24,與操作模塊22相連,用于在預(yù)定時(shí)間點(diǎn)到達(dá)時(shí),通知操作模塊22生成當(dāng)前的文件和/或刪除已經(jīng)過(guò)期的文件。下面結(jié)合優(yōu)選實(shí)施例進(jìn)行說(shuō)明,以下優(yōu)選實(shí)施例結(jié)合了上述實(shí)施及其優(yōu)選實(shí)施方式。優(yōu)選實(shí)施例1本實(shí)施例提供一種使用文本文件和內(nèi)存數(shù)據(jù)庫(kù)取代物理數(shù)據(jù)庫(kù)的方法,特別適用于一些數(shù)據(jù)查詢(xún)交互較多,數(shù)據(jù)變更較少的產(chǎn)品,即通過(guò)文本文件和內(nèi)存數(shù)據(jù)庫(kù)的方式,擴(kuò)展內(nèi)存數(shù)據(jù)庫(kù)的相關(guān)功能,配合定時(shí)任務(wù)等,取代產(chǎn)品對(duì)物理數(shù)據(jù)庫(kù)的依賴(lài),其中文本文件包括全量數(shù)據(jù)文件和日志文件,用于保存所有的業(yè)務(wù)數(shù)據(jù);內(nèi)存數(shù)據(jù)庫(kù)讀取上述文件,為業(yè)務(wù)查詢(xún)提供數(shù)據(jù)來(lái)源,并根據(jù)業(yè)務(wù)變更請(qǐng)求更新數(shù)據(jù)。應(yīng)用實(shí)施例能夠以較低的成本實(shí)現(xiàn)數(shù)據(jù)庫(kù)功能,擺脫了對(duì)數(shù)據(jù)庫(kù)的依賴(lài),降低了產(chǎn)品開(kāi)發(fā)維護(hù)人員熟悉產(chǎn)品的門(mén)檻,對(duì)于提高產(chǎn)品競(jìng)爭(zhēng)力具有很好的幫助作用。本實(shí)施例的具體實(shí)現(xiàn)方案如下將產(chǎn)品運(yùn)行所需數(shù)據(jù)全部存放在文本文件中,包括全量數(shù)據(jù)文件和日志文件,其中全量數(shù)據(jù)文件是生成截止定時(shí)任務(wù)指定時(shí)間的全量業(yè)務(wù)數(shù)據(jù),日志文件存放全量數(shù)據(jù)文件生成之后的數(shù)據(jù)更改操作記錄。產(chǎn)品啟動(dòng)階段,通過(guò)讀取全量數(shù)據(jù)文件及日志文件,完成加載所有業(yè)務(wù)數(shù)據(jù)到內(nèi)存數(shù)據(jù)庫(kù)中。產(chǎn)品運(yùn)行階段,業(yè)務(wù)所需的數(shù)據(jù)信息通過(guò)查詢(xún)內(nèi)存數(shù)據(jù)庫(kù)完成。
5
產(chǎn)品運(yùn)行階段,如果有數(shù)據(jù)的變更,如增加、刪除、更新,則通過(guò)操作內(nèi)存數(shù)據(jù)庫(kù)來(lái)完成數(shù)據(jù)更新,保證內(nèi)存數(shù)據(jù)庫(kù)中的記錄準(zhǔn)確性,同時(shí)記錄日志文件,為后期業(yè)務(wù)啟動(dòng)時(shí)的數(shù)據(jù)加載提供數(shù)據(jù)源。產(chǎn)品運(yùn)行階段,設(shè)定定時(shí)任務(wù),由內(nèi)存數(shù)據(jù)庫(kù)生成全量數(shù)據(jù)文件,并刪除過(guò)期的全量數(shù)據(jù)文件及日志文件。產(chǎn)品再次啟動(dòng)時(shí),通過(guò)讀取最新的全量數(shù)據(jù)文件及之后的日志文件,完成數(shù)據(jù)的加載,保證數(shù)據(jù)完整性。使用內(nèi)存數(shù)據(jù)庫(kù)及文本文件取代物理數(shù)據(jù)庫(kù)的方法有以下優(yōu)勢(shì)(1)、降低產(chǎn)品成本,節(jié)省了購(gòu)買(mǎi)物理數(shù)據(jù)庫(kù)及配套服務(wù)的支出。O)、提高產(chǎn)品可維護(hù)性,不再需要強(qiáng)調(diào)產(chǎn)品開(kāi)發(fā)維護(hù)人員精通數(shù)據(jù)庫(kù)知識(shí),開(kāi)發(fā)維護(hù)人員可以快速上手。(3)、降低產(chǎn)品因物理數(shù)據(jù)庫(kù)及第三方設(shè)備問(wèn)題等引發(fā)異常的風(fēng)險(xiǎn)。優(yōu)選實(shí)施例2本實(shí)施例可以以較低成本取代產(chǎn)品所需的物理數(shù)據(jù)庫(kù),具體方案如下1、在產(chǎn)品中引入內(nèi)存數(shù)據(jù)庫(kù),這樣可以提高查詢(xún)速度,優(yōu)化產(chǎn)品性能。2、把現(xiàn)有的業(yè)務(wù)數(shù)據(jù)整理成文件格式,且定義格式與內(nèi)存數(shù)據(jù)庫(kù)讀取文件格式保持一致。不同表結(jié)構(gòu)的數(shù)據(jù)可以整理在同一個(gè)文件中,使用配置段區(qū)分不同數(shù)據(jù)內(nèi)容段。3、產(chǎn)品啟動(dòng)階段,內(nèi)存數(shù)據(jù)庫(kù)讀取全量數(shù)據(jù)文件及之后的日志文件,把日志文件中的相關(guān)操作重新執(zhí)行一次,這樣就可以保證內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)是完整的業(yè)務(wù)數(shù)據(jù)。4、產(chǎn)品運(yùn)行階段的數(shù)據(jù)查詢(xún)操作通過(guò)與內(nèi)存數(shù)據(jù)庫(kù)交互完成,運(yùn)行階段的增刪及修改操作需要更新內(nèi)存數(shù)據(jù)庫(kù),并按照約定的格式生成用以記錄數(shù)據(jù)修改操作信息的同步日志文件,并將該文件保存在磁盤(pán)上,供內(nèi)存數(shù)據(jù)庫(kù)模塊再次啟動(dòng)時(shí)加載使用。日志文件可在不同設(shè)備間轉(zhuǎn)移,與操作系統(tǒng)及數(shù)據(jù)庫(kù)類(lèi)型無(wú)關(guān),通用性好。5、產(chǎn)品運(yùn)行階段,可以通過(guò)設(shè)定定時(shí)任務(wù),導(dǎo)出當(dāng)前內(nèi)存數(shù)據(jù)庫(kù)中的業(yè)務(wù)信息到全量數(shù)據(jù)文件中;刪除歷史全量數(shù)據(jù)文件及歷史日志文件。優(yōu)選實(shí)施例3圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作系統(tǒng)結(jié)構(gòu)示意圖。如圖4所示,該系統(tǒng)包括產(chǎn)品與內(nèi)存數(shù)據(jù)庫(kù)的業(yè)務(wù)調(diào)用接口模塊40,是產(chǎn)品進(jìn)行各種數(shù)據(jù)查詢(xún)、更新、增刪的操作入口模塊。系統(tǒng)內(nèi)置的定時(shí)任務(wù)模塊42 (相當(dāng)于定時(shí)任務(wù)模塊24),用于通知內(nèi)存數(shù)據(jù)庫(kù)模塊44進(jìn)行數(shù)據(jù)文件生成、刪除過(guò)期記錄、定期數(shù)據(jù)核對(duì)等操作。內(nèi)存數(shù)據(jù)庫(kù)模塊44,是整個(gè)方案的核心模塊,取代了物理數(shù)據(jù)庫(kù)的功能。產(chǎn)品啟動(dòng)階段該模塊讀取全量數(shù)據(jù)文件及之后產(chǎn)生的日志文件,加載所有業(yè)務(wù)數(shù)據(jù);為業(yè)務(wù)查詢(xún)操作提供數(shù)據(jù)來(lái)源;接收業(yè)務(wù)的數(shù)據(jù)更新操作,更新內(nèi)存數(shù)據(jù)庫(kù)并生成日志文件;接收定時(shí)任務(wù)的通知,生成當(dāng)前的全量數(shù)據(jù)文件并刪除過(guò)期文件。全量數(shù)據(jù)文件管理模塊46,負(fù)責(zé)管理全量數(shù)據(jù)文件。日志文件管理模塊48,負(fù)責(zé)管理日志文件。圖5為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的業(yè)務(wù)調(diào)用接口模塊40與內(nèi)存數(shù)據(jù)庫(kù)模塊44的交互流程示意圖,圖5所示流程中,共包括4個(gè)流程,各個(gè)流程之間可以獨(dú)立運(yùn)行,也可以按照特定順序組合運(yùn)行。具體如下數(shù)據(jù)查詢(xún)流程步驟S502,產(chǎn)品運(yùn)行階段,業(yè)務(wù)調(diào)用接口模塊40通過(guò)查詢(xún)請(qǐng)求消息(krvQryReq) 向內(nèi)存數(shù)據(jù)庫(kù)模塊44發(fā)起數(shù)據(jù)查詢(xún)。步驟S504,內(nèi)存數(shù)據(jù)庫(kù)模塊44通過(guò)查詢(xún)響應(yīng)消息(krvQryRsp)回復(fù)請(qǐng)求消息的查詢(xún)結(jié)果。數(shù)據(jù)修改流程步驟S506,業(yè)務(wù)調(diào)用接口模塊40通過(guò)^rvModifyReq消息發(fā)起數(shù)據(jù)修改操作。步驟S508,內(nèi)存數(shù)據(jù)庫(kù)模塊44通過(guò)krvModifyRsp消息回復(fù)響應(yīng)。數(shù)據(jù)更新流程步驟S510,內(nèi)存數(shù)據(jù)庫(kù)模塊44根據(jù)更新請(qǐng)求(Update record)更新自身數(shù)據(jù),保證后期數(shù)據(jù)查詢(xún)準(zhǔn)確性。日志記錄流程步驟S512,內(nèi)存數(shù)據(jù)庫(kù)模塊44通過(guò)RecordLogRequest消息通知日志文件管理模塊48進(jìn)行日志消息的記錄,記錄格式需要和內(nèi)存數(shù)據(jù)庫(kù)預(yù)先約定好,保證內(nèi)存數(shù)據(jù)庫(kù)模塊再次啟動(dòng)時(shí)能正常讀取并執(zhí)行該文件中的記錄。步驟S514,日志文件管理模塊48回送響應(yīng)消息RecordLogRespond。圖6為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的定時(shí)任務(wù)模塊與內(nèi)存數(shù)據(jù)庫(kù)模塊的交互流程示意圖。和圖5類(lèi)似,圖6中包括以下幾個(gè)流程,各個(gè)流程之間可以獨(dú)立運(yùn)行,也可以按照特定順序組合運(yùn)行。具體如下全量數(shù)據(jù)文件生成流程步驟S602,定時(shí)任務(wù)模塊42通過(guò)請(qǐng)求消息(OpertaionReq)告知內(nèi)存數(shù)據(jù)庫(kù)模塊 44生成全量數(shù)據(jù)文件。步驟S604,內(nèi)存數(shù)據(jù)庫(kù)模塊44回送響應(yīng)消息(OpertaionRsp)。在上述全量數(shù)據(jù)文件生成流程中,還可以包括步驟S606,內(nèi)存數(shù)據(jù)庫(kù)模塊44通過(guò)既定規(guī)則生成全量數(shù)據(jù)文件,生成的數(shù)據(jù)文件格式要事先約定,保證能被內(nèi)存數(shù)據(jù)庫(kù)模塊44正常讀取。步驟S608,內(nèi)存數(shù)據(jù)庫(kù)模塊44發(fā)送NotifySmReq消息給全量數(shù)據(jù)文件管理模塊 46,該NotifySmReq消息用于通知全量數(shù)據(jù)文件管理模塊獲取新生成的全量數(shù)據(jù)文件。步驟S610,全量數(shù)據(jù)文件管理模塊46回復(fù)響應(yīng)消息NotifySmRsp消息。步驟S612,全量數(shù)據(jù)文件管理模塊46通過(guò)FTP功能(通過(guò)Get FileReq消息)從內(nèi)存數(shù)據(jù)庫(kù)模塊44獲取全量?jī)?nèi)存數(shù)據(jù)文件。圖7為根據(jù)本發(fā)明優(yōu)選實(shí)施例3的定時(shí)任務(wù)模塊與內(nèi)存數(shù)據(jù)庫(kù)模塊的另外一個(gè)交互流程示意圖,具體如下步驟S702,定時(shí)任務(wù)模塊42通過(guò)OpertaionReq消息通知內(nèi)存數(shù)據(jù)庫(kù)模塊44進(jìn)行過(guò)期記錄的刪除。步驟S704,內(nèi)存數(shù)據(jù)庫(kù)模塊44回送OpertaionRsp響應(yīng)消息給定時(shí)任務(wù)模塊42。步驟S706,內(nèi)存數(shù)據(jù)庫(kù)模塊44通過(guò)NotifySmReql消息通知全量數(shù)據(jù)文件管理模塊46刪除過(guò)期數(shù)據(jù)。
步驟S708,全量數(shù)據(jù)文件管理模塊46根據(jù)相關(guān)配置備份并刪除過(guò)期的文件。步驟S710,全量數(shù)據(jù)文件管理模塊46回送響應(yīng)消息NotifySmRspl給內(nèi)存數(shù)據(jù)庫(kù)模塊44。步驟S712,內(nèi)存數(shù)據(jù)庫(kù)模塊44通過(guò)NotifySmReq2消息通知日志文件管理模塊48 刪除過(guò)期數(shù)據(jù)。步驟S714,日志文件管理模塊48根據(jù)相關(guān)配置備份并刪除過(guò)期的文件。步驟S716,日志文件管理模塊48回送響應(yīng)消息NotifySmRsp2給內(nèi)存數(shù)據(jù)庫(kù)模塊 44。圖8是內(nèi)存數(shù)據(jù)庫(kù)模塊業(yè)務(wù)啟動(dòng)時(shí)加載流程示意圖。具體如下步驟S802,內(nèi)存數(shù)據(jù)庫(kù)模塊44啟動(dòng)時(shí)置位為啟動(dòng)狀態(tài)(LockAlIReq),不處理外部相關(guān)請(qǐng)求消息。步驟S804,內(nèi)存數(shù)據(jù)庫(kù)模塊44從全量數(shù)據(jù)文件管理模塊46獲取最新的全量數(shù)據(jù)文件(即 GetFullFile)。步驟S806,內(nèi)存數(shù)據(jù)庫(kù)模塊44從日志文件管理模塊48獲取上述全量數(shù)據(jù)文件之后的增量日志文件(即GetLogFile)。步驟S808,內(nèi)存數(shù)據(jù)庫(kù)模塊44讀取全量數(shù)據(jù)文件(即ReadFullFile),加載到內(nèi)存數(shù)據(jù)庫(kù)模塊44中。步驟S810,內(nèi)存數(shù)據(jù)庫(kù)模塊44讀取增量日志文件(ReadLogFile),加載增量數(shù)據(jù)到內(nèi)存數(shù)據(jù)庫(kù)44中。步驟S812,內(nèi)存數(shù)據(jù)庫(kù)模塊44置位為正常工作狀態(tài)(UnLockAl IReq),接收各種請(qǐng)求操作。上述實(shí)施例可以使一類(lèi)數(shù)據(jù)查詢(xún)交互較多,數(shù)據(jù)變更較少的產(chǎn)品擺脫對(duì)物理數(shù)據(jù)庫(kù)的依賴(lài),降低產(chǎn)品成本,提高產(chǎn)品競(jìng)爭(zhēng)力,可以取得良好的推廣效果,具有很強(qiáng)的通用性。在另外一個(gè)實(shí)施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實(shí)施例及優(yōu)選實(shí)施方式中描述的技術(shù)方案。在另外一個(gè)實(shí)施例中,還提供了一種存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)中存儲(chǔ)有上述軟件,該存儲(chǔ)介質(zhì)包括但不限于光盤(pán)、軟盤(pán)、硬盤(pán)、可擦寫(xiě)存儲(chǔ)器等。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法,其特征在于,包括內(nèi)存數(shù)據(jù)庫(kù)加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù);所述內(nèi)存數(shù)據(jù)庫(kù)響應(yīng)于外界請(qǐng)求,對(duì)所述加載的數(shù)據(jù)進(jìn)行操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述文件包括全量數(shù)據(jù)文件和日志文件,其中,所述全量數(shù)據(jù)文件用于表示截止到指定時(shí)間生成的業(yè)務(wù)數(shù)據(jù),所述日志文件用于存放生成所述全量數(shù)據(jù)文件之后的數(shù)據(jù)操作記錄。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述內(nèi)存數(shù)據(jù)庫(kù)加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù)之后,還包括所述內(nèi)存數(shù)據(jù)庫(kù)重新執(zhí)行所述日志文件中的所述操作記錄所對(duì)應(yīng)的操作。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,還包括在預(yù)定時(shí)間點(diǎn)到達(dá)時(shí),所述內(nèi)存數(shù)據(jù)庫(kù)生成當(dāng)前的所述文件和/或刪除已經(jīng)過(guò)期的所述文件。
5.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述文件為以下之一格式文本txt格式、SQL格式、XLS格式。
6.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述內(nèi)存數(shù)據(jù)庫(kù)對(duì)所述加載的數(shù)據(jù)進(jìn)行以下至少之一操作查詢(xún)、更新、增加、刪除。
7.—種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作裝置,其特征在于,包括加載模塊,用于加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù);操作模塊,用于響應(yīng)于外界請(qǐng)求,對(duì)所述加載的數(shù)據(jù)進(jìn)行操作。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述文件包括全量數(shù)據(jù)文件和日志文件,其中,所述全量數(shù)據(jù)文件用于表示截止到指定時(shí)間生成的業(yè)務(wù)數(shù)據(jù),所述日志文件用于存放生成所述全量數(shù)據(jù)文件之后的數(shù)據(jù)操作記錄。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述加載模塊,還用于重新執(zhí)行所述日志文件中的所述操作記錄所對(duì)應(yīng)的操作。
10.根據(jù)權(quán)利要求7至9任一項(xiàng)所述的裝置,其特征在于,還包括定時(shí)任務(wù)模塊,用于在預(yù)定時(shí)間點(diǎn)到達(dá)時(shí),通知所述操作模塊生成當(dāng)前的所述文件和/ 或刪除已經(jīng)過(guò)期的所述文件。
全文摘要
本發(fā)明提供了一種內(nèi)存數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作方法及裝置,其中,上述方法包括內(nèi)存數(shù)據(jù)庫(kù)加載預(yù)先存放在文件中的產(chǎn)品運(yùn)行所需的全部數(shù)據(jù);內(nèi)存數(shù)據(jù)庫(kù)響應(yīng)于外界請(qǐng)求,對(duì)加載的數(shù)據(jù)進(jìn)行操作。采用本發(fā)明提供的上述技術(shù)方案,解決了相關(guān)技術(shù)中產(chǎn)品運(yùn)行依賴(lài)物理數(shù)據(jù)庫(kù)而導(dǎo)致的數(shù)據(jù)操作效率較低及浪費(fèi)成本等問(wèn)題,進(jìn)而實(shí)現(xiàn)了使用內(nèi)存數(shù)據(jù)庫(kù)取代物理數(shù)據(jù)庫(kù),從而取得了降低對(duì)物理數(shù)據(jù)庫(kù)的依賴(lài),提高對(duì)數(shù)據(jù)的操作效率以及節(jié)省成本的效果。
文檔編號(hào)G06F17/30GK102279885SQ201110234809
公開(kāi)日2011年12月14日 申請(qǐng)日期2011年8月16日 優(yōu)先權(quán)日2011年8月16日
發(fā)明者馮亞軍, 王長(zhǎng)征, 邢剛 申請(qǐng)人:中興通訊股份有限公司