本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)操作方法和系統(tǒng)。
背景技術(shù):
現(xiàn)有技術(shù)在對外提供數(shù)據(jù)時,主要是通過數(shù)據(jù)庫,而不通過緩存?,F(xiàn)有技術(shù)中的緩存是后更新緩存,即從數(shù)據(jù)庫中調(diào)用數(shù)據(jù)后,才會存入緩存,下次再使用時,才會從緩存中調(diào)用該數(shù)據(jù)。
現(xiàn)有技術(shù)中只有部分?jǐn)?shù)據(jù)才可以走緩存,且現(xiàn)有技術(shù)中的緩存,僅僅是保存被使用過的數(shù)據(jù),數(shù)據(jù)庫中未被使用過的數(shù)據(jù),即便是新建、修改和刪除的數(shù)據(jù),也不會在緩存中保存。下次調(diào)用數(shù)據(jù)時,則首先在緩存中查詢和調(diào)用該數(shù)據(jù),當(dāng)緩存中不存在該數(shù)據(jù)時,再到數(shù)據(jù)庫中去查詢和調(diào)用數(shù)據(jù),同時將該數(shù)據(jù)同步至緩存中,當(dāng)下次再使用該數(shù)據(jù)時,從緩存中去查詢該數(shù)據(jù)。由于緩存大多是臨時的,因此,下次在緩存中查詢該數(shù)據(jù)時,有可能還會查詢不到,這時,還會再去數(shù)據(jù)庫中查詢。這種情況下,緩存能夠很快返回查詢結(jié)果,但是數(shù)據(jù)庫會比較慢,當(dāng)這種情況較多時,數(shù)據(jù)庫易崩潰。即現(xiàn)有技術(shù)中可能包含兩次查詢和調(diào)用的線程,這樣,一方面會造成占用系統(tǒng)資源,以及降低查詢和調(diào)用過程的效率;另一方面,由于數(shù)據(jù)庫一般采用硬盤陣列保存數(shù)據(jù),使得訪問速度明顯低于緩存,也降低了數(shù)據(jù)的調(diào)用效率。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的是提供一種在數(shù)據(jù)庫中對數(shù)據(jù)進(jìn)行操作,并將操作形成的數(shù)據(jù)發(fā)送至緩存,當(dāng)調(diào)用數(shù)據(jù)時,直接從緩存中查找并調(diào)用數(shù)據(jù),以提高數(shù)據(jù)訪問速度和數(shù)據(jù)調(diào)用效率的數(shù)據(jù)操作方法和裝置。
根據(jù)本發(fā)明的一個方面,提供一種數(shù)據(jù)操作方法,包括:基于接收到的數(shù)據(jù)操作指令,在數(shù)據(jù)庫中對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作以形成操作后數(shù)據(jù);將所述操作后數(shù)據(jù)發(fā)送到緩存;基于接收到的數(shù)據(jù)調(diào)用指令,從所述緩存中查找并調(diào)用目標(biāo)數(shù)據(jù)。
進(jìn)一步,所述方法還包括:當(dāng)在緩存中查找到所述目標(biāo)數(shù)據(jù)時,將所述目標(biāo)數(shù)據(jù)作為查找結(jié)果返回客戶端;當(dāng)在所述緩存中未查找到所述目標(biāo)數(shù)據(jù)時,返回查詢失敗的消息。
進(jìn)一步,當(dāng)所述數(shù)據(jù)操作指令為新建數(shù)據(jù)指令時,所述在數(shù)據(jù)庫中對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作的步驟包括:基于新建數(shù)據(jù)指令,在數(shù)據(jù)庫中進(jìn)行新建數(shù)據(jù)操作,形成新建數(shù)據(jù);將所述新建數(shù)據(jù)發(fā)送到緩存。
進(jìn)一步,當(dāng)所述數(shù)據(jù)操作指令為修改數(shù)據(jù)指令時,所述在數(shù)據(jù)庫中對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作的步驟包括:基于修改數(shù)據(jù)指令,在數(shù)據(jù)庫中對修改數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)進(jìn)行修改,形成修改后數(shù)據(jù);將所述修改后數(shù)據(jù)發(fā)送到緩存。
進(jìn)一步,當(dāng)所述數(shù)據(jù)操作指令為刪除數(shù)據(jù)指令時,所述在數(shù)據(jù)庫中對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作的步驟包括:基于刪除數(shù)據(jù)指令,在數(shù)據(jù)庫中將刪除數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)刪除;向緩存發(fā)送緩存數(shù)據(jù)刪除指令;從所述緩存中刪除對應(yīng)數(shù)據(jù)。
根據(jù)本發(fā)明的另一個方面,提供一種數(shù)據(jù)調(diào)用裝置,包括:數(shù)據(jù)庫,用于基于接收到的數(shù)據(jù)操作指令,對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作以形成操作后數(shù)據(jù),以及將所述操作后數(shù)據(jù)發(fā)送到緩存;緩存,用于基于接收到的數(shù)據(jù)調(diào)用指令,查找并調(diào)用目標(biāo)數(shù)據(jù)。
進(jìn)一步,所述緩存在查找到所述目標(biāo)數(shù)據(jù)時,將所述目標(biāo)數(shù)據(jù)作為查找結(jié)果返回客戶端;當(dāng)在所述緩存中未查找到所述目標(biāo)數(shù)據(jù)時,返回查詢失敗的消息。
進(jìn)一步,當(dāng)所述數(shù)據(jù)操作指令為新建數(shù)據(jù)指令時,所述數(shù)據(jù)庫基于新建數(shù)據(jù)指令,進(jìn)行新建數(shù)據(jù)操作以形成新建數(shù)據(jù),并將所述新建數(shù)據(jù)發(fā)送到緩存。
進(jìn)一步,當(dāng)所述數(shù)據(jù)操作指令為修改數(shù)據(jù)指令時,所述數(shù)據(jù)庫基于修改數(shù)據(jù)指令,對修改數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)進(jìn)行修改以形成修改后數(shù)據(jù),并將所述修改后數(shù)據(jù)發(fā)送到緩存。
進(jìn)一步,當(dāng)所述數(shù)據(jù)操作指令為刪除數(shù)據(jù)指令時,所述數(shù)據(jù)庫基于刪除數(shù)據(jù)指令,將所述刪除數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)刪除,向緩存發(fā)送緩存數(shù)據(jù)刪除指令。
進(jìn)一步,所述緩存,進(jìn)一步用于基于所述緩存數(shù)據(jù)刪除指令,將對應(yīng)數(shù)據(jù)刪除。
本發(fā)明實施例通過基于數(shù)據(jù)操作指令,在數(shù)據(jù)庫中對數(shù)據(jù)進(jìn)行相應(yīng)操作,形成操作后的數(shù)據(jù),并將操作后的數(shù)據(jù)發(fā)送到緩存。當(dāng)需要調(diào)用數(shù)據(jù)時,直接發(fā)送數(shù)據(jù)調(diào)用指令給緩存,從緩存中查找并調(diào)用數(shù)據(jù),并由緩存將查詢結(jié)果返回客戶端。當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,則表示該數(shù)據(jù)不存在,不需要再去訪問數(shù)據(jù)庫,從而解決了現(xiàn)有技術(shù)中當(dāng)在緩存中未查詢到數(shù)據(jù)時,再到數(shù)據(jù)庫中查詢,由于數(shù)據(jù)庫響應(yīng)速度較慢,導(dǎo)致在數(shù)據(jù)庫中未查找到數(shù)據(jù)的情況較多時,數(shù)據(jù)庫易崩潰的問題。以及現(xiàn)有技術(shù)中可能包含兩次查詢和調(diào)用的線程,造成占用系統(tǒng)資源,降低查詢和調(diào)用過程的效率的問題,和由于數(shù)據(jù)庫一般采用硬盤陣列保存數(shù)據(jù),使得訪問速度明顯低于緩存,也降低了數(shù)據(jù)的調(diào)用效率的問題。實現(xiàn)了只需要一次查詢和調(diào)用過程就能完成數(shù)據(jù)調(diào)用過程,以及緩存中查找到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,緩存能夠很快將數(shù)據(jù)返回,提高了數(shù)據(jù)訪問速度;當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,不需要再去訪問數(shù)據(jù)庫,能夠很快返回查詢結(jié)果,提高了數(shù)據(jù)調(diào)用效率的效果。
附圖說明
圖1是現(xiàn)有技術(shù)中查詢和調(diào)用數(shù)據(jù)的方法流程示意圖;
圖2是本發(fā)明實施例一的一種數(shù)據(jù)操作方法的流程示意圖;
圖3為本發(fā)明實施例二的一種數(shù)據(jù)操作方法的流程示意圖;
圖4為本發(fā)明實施例一的一種實施方式的流程示意圖;
圖5為本發(fā)明實施例一的另一種實施方式的流程示意圖;
圖6為本發(fā)明實施例一的又一實施方式的流程示意圖;
圖7為本發(fā)明實施例三的一種數(shù)據(jù)操作裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明了,下面結(jié)合具體實施方式并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
圖1是現(xiàn)有技術(shù)中查詢和調(diào)用數(shù)據(jù)的方法流程示意圖。
如圖1所示,現(xiàn)有技術(shù)中查詢和調(diào)用數(shù)據(jù)的方法,包括以下步驟:
S101,基于數(shù)據(jù)查詢指令,在緩存中查找目標(biāo)數(shù)據(jù);其中,目標(biāo)數(shù)據(jù)是與數(shù)據(jù)查詢指令對應(yīng)的數(shù)據(jù);
S102,當(dāng)在緩存中查找到目標(biāo)數(shù)據(jù)時,則調(diào)用目標(biāo)數(shù)據(jù);當(dāng)在緩存中未查找到目標(biāo)數(shù)據(jù)時,則發(fā)送數(shù)據(jù)查詢指令至數(shù)據(jù)庫,并返回查詢失敗的消息;
S103,基于數(shù)據(jù)查詢指令,在數(shù)據(jù)庫中查詢目標(biāo)數(shù)據(jù);
S104,當(dāng)在數(shù)據(jù)庫中查找到目標(biāo)數(shù)據(jù)時,則調(diào)用目標(biāo)數(shù)據(jù),并將目標(biāo)數(shù)據(jù)發(fā)送至緩存;當(dāng)在數(shù)據(jù)庫中未查找到目標(biāo)數(shù)據(jù)時,則返回查詢失敗的消息。
上述步驟S101至步驟S104是現(xiàn)有技術(shù)中查詢和調(diào)用數(shù)據(jù)的過程,現(xiàn)有技術(shù)中,由于是后更新緩存,即只有數(shù)據(jù)在數(shù)據(jù)庫中被調(diào)用后,才會寫入緩存,當(dāng)下次使用數(shù)據(jù)時,再去緩存中調(diào)用數(shù)據(jù)。而由于現(xiàn)有技術(shù)中的緩存都是臨時的,因此,當(dāng)下次使用數(shù)據(jù),再去緩存中調(diào)用數(shù)據(jù)時,有可能還會查詢不到數(shù)據(jù),此時,緩存會返回一個查詢失敗的消息給客戶端,然后客戶端再去數(shù)據(jù)庫中查找和調(diào)用數(shù)據(jù)。這種情況下,就包含了兩次查找和調(diào)用的過程,如果數(shù)據(jù)庫中也查找不到數(shù)據(jù),那么數(shù)據(jù)庫也需要返回一個查詢失敗的消息給客戶端。由于緩存響應(yīng)快,因此,緩存能夠很快返回查詢結(jié)果,但是數(shù)據(jù)庫響應(yīng)較慢,數(shù)據(jù)庫的響應(yīng)相對就會滯后,當(dāng)這種情況較多時,數(shù)據(jù)庫就有可能出現(xiàn)崩潰現(xiàn)象。為了避免數(shù)據(jù)庫出現(xiàn)崩潰現(xiàn)象,本發(fā)明采用了如下的數(shù)據(jù)操作方法和裝置,以解決上述技術(shù)問題。
圖2是本發(fā)明實施例一的數(shù)據(jù)操作方法的流程示意圖。
如圖2所示,一種數(shù)據(jù)操作方法,包括:
S201,基于接收到的數(shù)據(jù)操作指令,在數(shù)據(jù)庫中對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作以形成操作后數(shù)據(jù);
S202,將操作后數(shù)據(jù)發(fā)送到緩存;
S203,基于接收到的數(shù)據(jù)調(diào)用指令,從緩存中查找并調(diào)用目標(biāo)數(shù)據(jù)。
需要說明的是,本發(fā)明實施例中的緩存為永久性緩存。
本發(fā)明實施例一通過基于數(shù)據(jù)操作指令,在數(shù)據(jù)庫中對數(shù)據(jù)進(jìn)行相應(yīng)操作,形成操作后的數(shù)據(jù),并將操作后的數(shù)據(jù)發(fā)送到緩存。當(dāng)需要調(diào)用數(shù)據(jù)時,直接發(fā)送數(shù)據(jù)調(diào)用指令給緩存,從緩存中查找并調(diào)用數(shù)據(jù),并由緩存將查詢結(jié)果返回客戶端。由于數(shù)據(jù)的操作都是在數(shù)據(jù)庫中完成,然后同步到緩存。因此,當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,則表示該數(shù)據(jù)不存在,此時,不需要再去數(shù)據(jù)庫中查詢,直接由緩存返回查詢失敗的消息,整個數(shù)據(jù)查詢和調(diào)用過程至此結(jié)束。解決了現(xiàn)有技術(shù)中當(dāng)在緩存中未查詢到數(shù)據(jù),再到數(shù)據(jù)庫中查詢時,由于數(shù)據(jù)庫響應(yīng)速度較慢,導(dǎo)致在數(shù)據(jù)庫中未查找到數(shù)據(jù)的情況較多時,數(shù)據(jù)庫易崩潰的問題。以及現(xiàn)有技術(shù)中可能包含兩次查詢和調(diào)用的線程,造成占用系統(tǒng)資源,降低查詢和調(diào)用過程的效率的問題,和由于數(shù)據(jù)庫一般采用硬盤陣列保存數(shù)據(jù),使得訪問速度明顯低于緩存,也降低了數(shù)據(jù)的調(diào)用效率的問題。實現(xiàn)了當(dāng)緩存中查找到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,緩存能夠很快將數(shù)據(jù)返回,不需要再去訪問數(shù)據(jù)庫,提高了數(shù)據(jù)訪問速度;而當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,緩存也能夠很快返回查詢結(jié)果,提高了數(shù)據(jù)調(diào)用效率的效果。
圖3是本發(fā)明實施例二的數(shù)據(jù)操作方法的流程示意圖。
如圖3所示,本發(fā)明實施例二除了包含實施例一的步驟S201至步驟S203的步驟之外,還包括下述步驟:
S204,當(dāng)在緩存中查找到目標(biāo)數(shù)據(jù)時,將目標(biāo)數(shù)據(jù)作為查找結(jié)果返回客戶端;當(dāng)在緩存中未查找到目標(biāo)數(shù)據(jù)時,返回查詢失敗的消息。
其中,目標(biāo)數(shù)據(jù)是指與數(shù)據(jù)調(diào)用指令對應(yīng)的數(shù)據(jù)。步驟S204在具體實施時為:當(dāng)從緩存中查找到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,則由緩存直接將數(shù)據(jù)返回。此時,數(shù)據(jù)查詢結(jié)果為與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù);當(dāng)從緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,則由緩存將數(shù)據(jù)查詢結(jié)果返回,此時,數(shù)據(jù)查詢結(jié)果為查詢失敗的消息。
其中,步驟S1中數(shù)據(jù)操作指令至少包括新建數(shù)據(jù)指令、修改數(shù)據(jù)指令或刪除數(shù)據(jù)指令。應(yīng)當(dāng)理解的是,數(shù)據(jù)操作指令還可以為其他指令,而這些指令也都不背離本發(fā)明實施例的范圍。
基于上述數(shù)據(jù)操作指令,本發(fā)明上述實施例一中步驟S101可以有不同的實施方式。
圖4為本發(fā)明實施例一中步驟S101的一種實施方式的流程示意圖。
如圖4所示,當(dāng)數(shù)據(jù)操作指令為新建數(shù)據(jù)指令時,步驟S101包括以下步驟:
S401,接收新建數(shù)據(jù)指令;
S402,基于新建數(shù)據(jù)指令,在數(shù)據(jù)庫中進(jìn)行新建數(shù)據(jù)操作,形成新建數(shù)據(jù);
S403,將新建數(shù)據(jù)發(fā)送到緩存。
圖5為本發(fā)明實施例一中步驟S101的另一種實施方式的流程示意圖。
如圖5所示,當(dāng)數(shù)據(jù)操作指令為修改數(shù)據(jù)指令時,在數(shù)據(jù)庫中對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作的步驟具體為:
S501,接收修改數(shù)據(jù)指令;
S502,基于修改數(shù)據(jù)指令,在數(shù)據(jù)庫中對修改數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)進(jìn)行修改,形成修改后數(shù)據(jù);
S503,將修改后數(shù)據(jù)發(fā)送到緩存。
圖6為本發(fā)明實施例一中步驟S101的又一種實施方式的流程示意圖。
如圖6所示,當(dāng)數(shù)據(jù)操作指令為數(shù)據(jù)刪除指令時,在數(shù)據(jù)庫中對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作的步驟具體為:
S601,接收數(shù)據(jù)刪除指令;
S602,基于數(shù)據(jù)刪除指令,在數(shù)據(jù)庫中將刪除數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)刪除;
S603,向緩存發(fā)送緩存數(shù)據(jù)刪除指令;
S604,從緩存中刪除對應(yīng)數(shù)據(jù)。
現(xiàn)有技術(shù)中緩存都是臨時性的,只有數(shù)據(jù)在數(shù)據(jù)庫中被調(diào)用后,才會放入緩存。而本發(fā)明實施例中緩存為永久性存儲,當(dāng)有新建數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)等數(shù)據(jù)操作時,在數(shù)據(jù)庫中對相應(yīng)數(shù)據(jù)進(jìn)行操作后,再將操作后數(shù)據(jù)同步到緩存中,從而當(dāng)需要查詢和調(diào)用數(shù)據(jù)時,只需要一次查找和調(diào)用數(shù)據(jù)的過程,即在緩存中查找和調(diào)用,當(dāng)緩存中不存在要調(diào)用的數(shù)據(jù)時,則表示該數(shù)據(jù)不存在,也不需要再去數(shù)據(jù)庫中查找和調(diào)用,直接由緩存返回數(shù)據(jù)查詢失敗的消息給客戶端,數(shù)據(jù)查找和調(diào)用的過程即結(jié)束。減少了一次查找和調(diào)用數(shù)據(jù)的過程。緩存和數(shù)據(jù)庫各自分工,且互相配合,解決了現(xiàn)有技術(shù)中當(dāng)在緩存中未查詢到數(shù)據(jù)時,再到數(shù)據(jù)庫中查詢,由于數(shù)據(jù)庫響應(yīng)速度較慢,導(dǎo)致在數(shù)據(jù)庫中未查找到數(shù)據(jù)的情況較多時,數(shù)據(jù)庫易崩潰的問題。另一方面,解決了現(xiàn)有技術(shù)中可能包含兩次查詢和調(diào)用的線程,造成占用系統(tǒng)資源,降低查詢和調(diào)用過程的效率的問題。又一方面,由于數(shù)據(jù)庫一般采用硬盤陣列保存數(shù)據(jù),使得數(shù)據(jù)庫訪問速度明顯低于緩存,降低了數(shù)據(jù)的調(diào)用效率的問題。
上述實施例中基于數(shù)據(jù)操作指令在數(shù)據(jù)庫中進(jìn)行新建、修改和刪除數(shù)據(jù)等操作,形成操作后數(shù)據(jù),并將操作后數(shù)據(jù)發(fā)送至緩存時,具體可以選擇實時地將操作后數(shù)據(jù)發(fā)送至緩存,也可以選擇按照設(shè)定的時間間隔將操作后數(shù)據(jù)發(fā)送至緩存,還可以是選擇在緩存空閑時將操作后數(shù)據(jù)發(fā)送至緩存。然而,應(yīng)當(dāng)理解的是,這僅是本發(fā)明實施例的一部分實施方式,其他類型的將操作后數(shù)據(jù)發(fā)送到緩存的實施方式也不背離本發(fā)明的范圍。
作為一種優(yōu)選實施方式,本發(fā)明實施例中可以設(shè)置多個緩存形成緩存陣列,緩存陣列為永久性緩存。
圖7為本發(fā)明實施例三的一種數(shù)據(jù)操作裝置一種實施方式的結(jié)構(gòu)示意圖。
如圖7所示,一種數(shù)據(jù)操作裝置,包括數(shù)據(jù)庫10和緩存11;數(shù)據(jù)庫10,用于基于接收到的數(shù)據(jù)操作指令,對數(shù)據(jù)操作指令對應(yīng)的數(shù)據(jù)進(jìn)行操作以形成操作后數(shù)據(jù),以及將操作后數(shù)據(jù)發(fā)送到緩存11;緩存11,用于基于接收到的數(shù)據(jù)調(diào)用指令,查找并調(diào)用目標(biāo)數(shù)據(jù)。其中,目標(biāo)數(shù)據(jù)是指與數(shù)據(jù)調(diào)用指令對應(yīng)的數(shù)據(jù)。
需要說明的是,本發(fā)明實施例中的緩存為永久性緩存。
本發(fā)明實施例三通過基于數(shù)據(jù)操作指令,在數(shù)據(jù)庫中對數(shù)據(jù)進(jìn)行相應(yīng)操作,形成操作后的數(shù)據(jù),并將操作后的數(shù)據(jù)發(fā)送到緩存。當(dāng)需要調(diào)用數(shù)據(jù)時,直接發(fā)送數(shù)據(jù)調(diào)用指令給緩存,從緩存中查找并調(diào)用數(shù)據(jù),并由緩存將查詢結(jié)果返回客戶端。由于數(shù)據(jù)的操作都是在數(shù)據(jù)庫中完成,然后同步到緩存。因此,當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,則表示該數(shù)據(jù)不存在,此時,不需要再去數(shù)據(jù)庫中查詢,直接由緩存返回查詢失敗的消息,整個數(shù)據(jù)查詢和調(diào)用過程至此結(jié)束。解決了現(xiàn)有技術(shù)中當(dāng)在緩存中未查詢到數(shù)據(jù),再到數(shù)據(jù)庫中查詢時,由于數(shù)據(jù)庫響應(yīng)速度較慢,導(dǎo)致在數(shù)據(jù)庫中未查找到數(shù)據(jù)的情況較多時,數(shù)據(jù)庫易崩潰的問題。以及現(xiàn)有技術(shù)中可能包含兩次查詢和調(diào)用的線程,造成占用系統(tǒng)資源,降低查詢和調(diào)用過程的效率的問題,和由于數(shù)據(jù)庫一般采用硬盤陣列保存數(shù)據(jù),使得訪問速度明顯低于緩存,也降低了數(shù)據(jù)的調(diào)用效率的問題。實現(xiàn)了當(dāng)緩存中查找到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,緩存能夠很快將數(shù)據(jù)返回,不需要再去訪問數(shù)據(jù)庫,提高了數(shù)據(jù)訪問速度;而當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,緩存也能夠很快返回查詢結(jié)果,提高了數(shù)據(jù)調(diào)用效率的效果。
其中,緩存11在查找到目標(biāo)數(shù)據(jù)時,將目標(biāo)數(shù)據(jù)作為查找結(jié)果返回客戶端;當(dāng)在緩存11中未查找到目標(biāo)數(shù)據(jù)時,返回查詢失敗的消息。
當(dāng)數(shù)據(jù)操作指令為新建數(shù)據(jù)指令時,數(shù)據(jù)庫10基于新建數(shù)據(jù)指令,進(jìn)行新建數(shù)據(jù)操作以形成新建數(shù)據(jù),并將新建數(shù)據(jù)發(fā)送到緩存11。
當(dāng)數(shù)據(jù)操作指令為修改數(shù)據(jù)指令時,數(shù)據(jù)庫10基于修改數(shù)據(jù)指令,對修改數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)進(jìn)行修改以形成修改后數(shù)據(jù),并將修改后數(shù)據(jù)發(fā)送到緩存11。
當(dāng)數(shù)據(jù)操作指令為刪除數(shù)據(jù)指令時,數(shù)據(jù)庫10基于刪除數(shù)據(jù)指令,將刪除數(shù)據(jù)指令對應(yīng)的數(shù)據(jù)刪除,向緩存發(fā)送緩存數(shù)據(jù)刪除指令。
緩存11,進(jìn)一步用于基于緩存數(shù)據(jù)刪除指令,將對應(yīng)數(shù)據(jù)刪除。
作為一種優(yōu)選實施方式,本發(fā)明實施例中可以設(shè)置多個緩存11形成緩存陣列,緩存陣列為永久性緩存。
上述實施例中數(shù)據(jù)庫基于數(shù)據(jù)操作指令進(jìn)行新建、修改和刪除數(shù)據(jù)等操作,形成操作后數(shù)據(jù),并將操作后數(shù)據(jù)發(fā)送至緩存時,具體可以選擇實時地將操作后數(shù)據(jù)發(fā)送至緩存,也可以選擇按照設(shè)定的時間間隔將操作后數(shù)據(jù)發(fā)送至緩存,還可以是選擇在緩存空閑時將操作后數(shù)據(jù)發(fā)送至緩存。然而,應(yīng)當(dāng)理解的是,這僅是本發(fā)明實施例的一部分實施方式,其他類型的將操作后數(shù)據(jù)發(fā)送到緩存的實施方式也不背離本發(fā)明的范圍。
本發(fā)明實施例中數(shù)據(jù)庫基于數(shù)據(jù)操作指令,對數(shù)據(jù)進(jìn)行相應(yīng)操作,形成操作后數(shù)據(jù),并將操作后數(shù)據(jù)發(fā)送到緩存。當(dāng)需要調(diào)用數(shù)據(jù)時,直接發(fā)送數(shù)據(jù)調(diào)用指令給緩存,從緩存中查找并調(diào)用數(shù)據(jù),并由緩存將查詢結(jié)果返回客戶端。由于數(shù)據(jù)的操作都是在數(shù)據(jù)庫中完成,然后發(fā)送到緩存。因此,當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,則表示該數(shù)據(jù)不存在,此時,不再需要去數(shù)據(jù)庫中查詢,直接由緩存返回查詢失敗的消息,整個數(shù)據(jù)查詢和調(diào)用過程至此結(jié)束。解決了現(xiàn)有技術(shù)中當(dāng)在緩存中未查詢到數(shù)據(jù)時,再到數(shù)據(jù)庫中查詢,由于數(shù)據(jù)庫響應(yīng)速度較慢,導(dǎo)致在數(shù)據(jù)庫中未查找到數(shù)據(jù)的情況較多時,數(shù)據(jù)庫易崩潰的問題。以及現(xiàn)有技術(shù)中可能包含兩次查詢和調(diào)用的線程,造成占用系統(tǒng)資源,降低查詢和調(diào)用過程的效率的問題,和由于數(shù)據(jù)庫一般采用硬盤陣列保存數(shù)據(jù),使得訪問速度明顯低于緩存,也降低了數(shù)據(jù)的調(diào)用效率的問題。實現(xiàn)了當(dāng)緩存中查找到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,緩存能夠很快將數(shù)據(jù)返回,不需要再去訪問數(shù)據(jù)庫,提高了數(shù)據(jù)訪問速度;而當(dāng)緩存中查找不到與數(shù)據(jù)調(diào)用指令相應(yīng)的數(shù)據(jù)時,緩存也能夠很快返回查詢結(jié)果,提高了數(shù)據(jù)調(diào)用效率的效果。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。