本發(fā)明涉及互聯(lián)網(wǎng)信息技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)存儲方法及系統(tǒng)。
背景技術(shù):
從目前來看,Internet市場具有巨大的發(fā)展?jié)摿Γ磥砥鋺?yīng)用將涵蓋從辦公室共享信息到市場營銷、服務(wù)等廣泛領(lǐng)域。另外,Internet帶來的電子貿(mào)易正改變著先進商業(yè)活動的傳統(tǒng)模式,其提供的方便而廣泛的互連必將對未來社會生活的各個方面產(chǎn)生影響。
雖然Internet有諸多優(yōu)點,但也是有其固有缺點的。數(shù)據(jù)安全性問題是困擾Internet用戶發(fā)展的一個主要因素,雖然現(xiàn)在已有不少的方案和服務(wù)來確保Internet網(wǎng)上聯(lián)機商業(yè)交易的可靠性,但真正適用并將主宰市場的產(chǎn)品尚不明確。
在Internet中,用戶通常通過計算機終端設(shè)備來實現(xiàn)各種網(wǎng)絡(luò)活動,計算機中設(shè)置的服務(wù)器為用戶的各種網(wǎng)絡(luò)活動提供相應(yīng)的服務(wù)需求,例如用戶訪問、信息處理等。然而,在服務(wù)器處理數(shù)據(jù)、需要把數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫時,有時會出現(xiàn)需要保存的數(shù)據(jù)中部分數(shù)據(jù)無法保存到系統(tǒng)數(shù)據(jù)庫中,從而導(dǎo)致數(shù)據(jù)丟失,數(shù)據(jù)安全存在隱患。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種數(shù)據(jù)存儲方法及系統(tǒng),以實現(xiàn)將系統(tǒng)數(shù)據(jù)庫中保存失敗的待保存數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中,保證數(shù)據(jù)的安全性與完整性。具體技術(shù)方案如下:
為達到上述目的,本發(fā)明公開了一種數(shù)據(jù)存儲方法,包括:
將待存儲數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中;
獲取保存失敗的待存儲數(shù)據(jù);
將保存失敗的所述待存儲數(shù)據(jù)保存到緩存服務(wù)器中;
將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中,直至所述系統(tǒng)數(shù)據(jù)庫中保存所述保存失敗的待存儲數(shù)據(jù)。
較佳的,所述將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中,包括:
每隔預(yù)設(shè)時間周期,將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中。
較佳的,所述將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中,包括:
當所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)容量超過預(yù)設(shè)閾值,將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中。
較佳的,在所述將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中之前,所述數(shù)據(jù)存儲方法還包括:
確定所述緩存服務(wù)器中是否存儲有所述保存失敗的待存儲數(shù)據(jù);
所述將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中,包括:
若所述緩存服務(wù)器中存儲有所述保存失敗的待存儲數(shù)據(jù),將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
較佳的,在所述將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中之后,所述數(shù)據(jù)存儲方法還包括:
清除所述緩存服務(wù)器中存儲的已保存到所述系統(tǒng)數(shù)據(jù)庫中的所述保存失敗的待存儲數(shù)據(jù)。
為達到上述目的,本發(fā)明還公開了一種數(shù)據(jù)存儲系統(tǒng),包括:
第一存儲模塊,用于將待存儲數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中;
獲取數(shù)據(jù)模塊,用于獲取保存失敗的待存儲數(shù)據(jù);
第二存儲模塊,用于將所述保存失敗的待存儲數(shù)據(jù)保存到緩存服務(wù)器中;
第三存儲模塊,用于將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中,直至所述系統(tǒng)數(shù)據(jù)庫中保存所述保存失敗的待存儲數(shù)據(jù)。
較佳的,所述第三存儲模塊,具體用于:
每隔預(yù)設(shè)時間周期,將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
較佳的,所述第三存儲模塊,具體還用于:
當所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)容量超過預(yù)設(shè)閾值,將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到所述系統(tǒng)數(shù)據(jù)庫中。
較佳的,在所述第三存儲模塊之前,所述數(shù)據(jù)存儲系統(tǒng)還包括:
確定模塊,用于確定所述緩存服務(wù)器中是否存儲有所述保存失敗的待存儲數(shù)據(jù);
所述第三存儲模塊,具體用于:
若所述緩存服務(wù)器中存儲有所述保存失敗的待存儲數(shù)據(jù),將所述緩存服務(wù)器中存儲的所述保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
較佳的,在所述第三存儲模塊之后,所述數(shù)據(jù)存儲系統(tǒng)還包括:
清除模塊,用于清除所述緩存服務(wù)器中存儲的已保存到所述系統(tǒng)數(shù)據(jù)庫中的所述保存失敗的待存儲數(shù)據(jù)。
本發(fā)明提供了一種數(shù)據(jù)存儲方法及系統(tǒng),通過設(shè)置一個緩存服務(wù)器來將系統(tǒng)數(shù)據(jù)庫保存失敗的待存儲數(shù)據(jù)暫存在緩存服務(wù)器中,再將緩存服務(wù)器中暫存的保存失敗的待存儲數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中,本發(fā)明實現(xiàn)了系統(tǒng)數(shù)據(jù)庫對待保存數(shù)據(jù)的完整保存,保證了數(shù)據(jù)的安全性與完整性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例的一種數(shù)據(jù)存儲方法流程圖;
圖2為本發(fā)明實施例的一種數(shù)據(jù)存儲系統(tǒng)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法及裝置,如圖1所示,圖1為本發(fā)明實施例的一種數(shù)據(jù)存儲方法流程圖,包括:
S101:將待存儲數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中;
具體的,在用戶網(wǎng)絡(luò)活動時,通過系統(tǒng)服務(wù)器接收用戶的服務(wù)請求,完成用戶網(wǎng)絡(luò)活動的相應(yīng)操作,可將用戶網(wǎng)絡(luò)活動的各種數(shù)據(jù)信息視為待存儲數(shù)據(jù),例如用戶在訪問某個網(wǎng)站時,網(wǎng)站訪問次數(shù)可視為用戶網(wǎng)絡(luò)活動的待存儲數(shù)據(jù),用戶在網(wǎng)站內(nèi)瀏覽點擊網(wǎng)站頁面時,頁面點擊次數(shù)可視為用戶網(wǎng)絡(luò)活動的待存儲數(shù)據(jù)等。
由于服務(wù)器需要響應(yīng)服務(wù)請求并進行處理,一般來說服務(wù)器應(yīng)具備承擔服務(wù)并且保障服務(wù)的能力,因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。數(shù)據(jù)庫服務(wù)器為用戶網(wǎng)絡(luò)活動提供數(shù)據(jù)服務(wù)。數(shù)據(jù)庫服務(wù)器建立在系統(tǒng)數(shù)據(jù)庫基礎(chǔ)上,具有系統(tǒng)數(shù)據(jù)庫的特性,數(shù)據(jù)庫服務(wù)器具有系統(tǒng)數(shù)據(jù)庫管理功能,包括系統(tǒng)配置與管理、數(shù)據(jù)存取與更新管理、數(shù)據(jù)完整性管理和數(shù)據(jù)安全性管理;數(shù)據(jù)庫的查詢和操縱功能,該功能包括數(shù)據(jù)庫檢索和修改;數(shù)據(jù)庫維護功能,包括數(shù)據(jù)導(dǎo)入/導(dǎo)出管理,數(shù)據(jù)庫結(jié)構(gòu)維護、數(shù)據(jù)恢復(fù)功能和性能監(jiān)測;數(shù)據(jù)庫并行運行,由于在同一時間,訪問數(shù)據(jù)庫的用戶不止一個,所以數(shù)據(jù)庫服務(wù)器必須支持并行運行機制,處理多個事件的同時發(fā)生。數(shù)據(jù)庫服務(wù)器在為用戶活動提供各種應(yīng)用服務(wù)操作的同時,最終把用戶網(wǎng)絡(luò)活動的待存儲數(shù)據(jù)保存在系統(tǒng)數(shù)據(jù)庫中。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,即用戶在訪問某個網(wǎng)站時,服務(wù)器首先響應(yīng)用戶訪問請求,數(shù)據(jù)庫服務(wù)器導(dǎo)入該用戶訪問次數(shù),包括對該用戶訪問的數(shù)據(jù)存取與更新管理、數(shù)據(jù)庫的查詢和操縱、數(shù)據(jù)庫檢索和修改、數(shù)據(jù)庫維護等,最終將該用戶訪問次數(shù)記錄在系統(tǒng)數(shù)據(jù)庫中,以此類推,系統(tǒng)數(shù)據(jù)庫最終保存記錄所有用戶的網(wǎng)站訪問次數(shù),即可統(tǒng)計出該網(wǎng)站訪問次數(shù)。
S102:獲取保存失敗的待存儲數(shù)據(jù);
具體的,當上述數(shù)據(jù)庫服務(wù)器在將待存儲數(shù)據(jù)保存在系統(tǒng)數(shù)據(jù)庫中時,可能存在用戶訪問次數(shù)過于頻繁或者數(shù)據(jù)庫服務(wù)器在某個時間點或時間段內(nèi)沒有響應(yīng)用戶網(wǎng)絡(luò)活動,導(dǎo)致該時間點或時間段的用戶網(wǎng)絡(luò)活動的待存儲數(shù)據(jù)無法保存到系統(tǒng)數(shù)據(jù)庫中。
在本發(fā)明實施例中,設(shè)置緩存服務(wù)器來獲取系統(tǒng)數(shù)據(jù)庫保存失敗的待存儲數(shù)據(jù)。具體做法是:通過預(yù)設(shè)程序獲取用戶網(wǎng)絡(luò)活動的待存儲數(shù)據(jù)中保存失敗的待存儲數(shù)據(jù),并將獲取到的保存失敗的待存儲數(shù)據(jù)與緩存服務(wù)器建立聯(lián)系,即通過設(shè)置在緩存服務(wù)器中的信息獲取服務(wù)獲取該保存失敗的待存儲數(shù)據(jù)到緩存服務(wù)器中。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,即用戶在訪問某個網(wǎng)站時,服務(wù)器首先響應(yīng)用戶訪問請求,數(shù)據(jù)庫服務(wù)器導(dǎo)入用戶訪問次數(shù),包括對用戶訪問的數(shù)據(jù)存取與更新管理、數(shù)據(jù)庫的查詢和操縱、數(shù)據(jù)庫檢索和修改、數(shù)據(jù)庫維護等,最終將用戶訪問次數(shù)記錄在系統(tǒng)數(shù)據(jù)庫中,但由于用戶訪問次數(shù)過于頻繁對該網(wǎng)站點擊次數(shù)過多或其它原因,導(dǎo)致數(shù)據(jù)庫服務(wù)器在某個時間點或時間段內(nèi)沒有將用戶網(wǎng)站訪問次數(shù)保存到系統(tǒng)數(shù)據(jù)庫中,造成該時間點或時間段內(nèi)用戶網(wǎng)站訪問次數(shù)丟失,最終系統(tǒng)數(shù)據(jù)庫統(tǒng)計的網(wǎng)站訪問次數(shù)少于實際用戶訪問次數(shù)。這時,便可通過設(shè)置的緩存服務(wù)器的數(shù)據(jù)獲取服務(wù)來獲取系統(tǒng)數(shù)據(jù)庫該時間點或時間段的沒有保存的用戶訪問次數(shù)。
S103:將保存失敗的待存儲數(shù)據(jù)保存到緩存服務(wù)器中;
具體的,通過上述設(shè)置在緩存服務(wù)器的數(shù)據(jù)獲取服務(wù)獲取系統(tǒng)數(shù)據(jù)庫某時間點或時間段的沒有保存的數(shù)據(jù)后,設(shè)置在緩存服務(wù)器中的具有保存功能的服務(wù)將該數(shù)據(jù)視為保存失敗的待存儲數(shù)據(jù),將保存失敗的待存儲數(shù)據(jù)暫存在緩存服務(wù)器中。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,最終將用戶訪問次數(shù)記錄在系統(tǒng)數(shù)據(jù)庫中,但由于用戶訪問次數(shù)過于頻繁對該網(wǎng)站點擊次數(shù)過多或其它原因,數(shù)據(jù)庫服務(wù)器在某個時間點或時間段內(nèi)沒有將用戶網(wǎng)站訪問次數(shù)保存到系統(tǒng)數(shù)據(jù)庫中,通過設(shè)置的緩存服務(wù)器的數(shù)據(jù)獲取服務(wù)來獲取系統(tǒng)數(shù)據(jù)庫該時間點或時間段的沒有保存的用戶訪問次數(shù),設(shè)置在緩存服務(wù)器中的具有保存功能的服務(wù)將該用戶訪問次數(shù)視為保存失敗的待存儲數(shù)據(jù),將用戶訪問次數(shù)暫存在緩存服務(wù)器中。
S104:將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中,直至系統(tǒng)數(shù)據(jù)庫中保存保存失敗的待存儲數(shù)據(jù)。
具體的,通過設(shè)置在緩存服務(wù)器中的發(fā)送服務(wù)將緩存服務(wù)器中暫存的保存失敗的待存儲數(shù)據(jù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)接收服務(wù)接收到緩存服務(wù)器發(fā)送來的保存失敗的待存儲數(shù)據(jù),并調(diào)用系統(tǒng)數(shù)據(jù)庫中數(shù)據(jù)保存服務(wù)來保存接收到的保存失敗的待存儲數(shù)據(jù),最終將緩存服務(wù)器中緩存的所有保存失敗的待存儲數(shù)據(jù)保存在系統(tǒng)數(shù)據(jù)庫中。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,最終將用戶訪問次數(shù)記錄在系統(tǒng)數(shù)據(jù)庫中,但由于用戶訪問次數(shù)過于頻繁對該網(wǎng)站點擊次數(shù)過多或其它原因,數(shù)據(jù)庫服務(wù)器在某個時間點或時間段內(nèi)沒有將用戶網(wǎng)站訪問次數(shù)保存到系統(tǒng)數(shù)據(jù)庫中,通過設(shè)置的緩存服務(wù)器的數(shù)據(jù)獲取服務(wù)來獲取數(shù)據(jù)庫該時間點或時間段的沒有保存的用戶訪問次數(shù),設(shè)置在緩存服務(wù)器中的具有保存功能的服務(wù)將該沒有保存的用戶訪問次數(shù)視為保存失敗的待存儲數(shù)據(jù),將用戶訪問次數(shù)暫存在緩存服務(wù)器中。通過設(shè)置在緩存服務(wù)器中的發(fā)送服務(wù)將緩存服務(wù)器中暫存的用戶訪問次數(shù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)接收服務(wù)接收到緩存服務(wù)器發(fā)送來的用戶訪問次數(shù),并調(diào)用數(shù)據(jù)庫中數(shù)據(jù)保存服務(wù)來保存接收到的用戶訪問次數(shù),最終將緩存服務(wù)器中緩存的所有用戶訪問次數(shù)保存在數(shù)據(jù)庫中對應(yīng)的對該網(wǎng)站訪問次數(shù)統(tǒng)計的數(shù)據(jù)中,這樣,便可準確地統(tǒng)計出網(wǎng)站訪問次數(shù)。
本發(fā)明提供的一種數(shù)據(jù)存儲方法,是通過設(shè)置一個緩存服務(wù)器,利用緩存服務(wù)器的緩存功能來將系統(tǒng)數(shù)據(jù)庫保存失敗的待存儲數(shù)據(jù)暫存在緩存服務(wù)器中,再將緩存服務(wù)器中暫存的保存失敗的待存儲數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中。本發(fā)明實現(xiàn)了系統(tǒng)數(shù)據(jù)庫對待保存數(shù)據(jù)的完整保存,保證了數(shù)據(jù)的準確性、安全性與完整性。
優(yōu)選地,在本發(fā)明的一種將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中的實施例中,包括:
每隔預(yù)設(shè)時間周期,將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
具體的,對該緩存服務(wù)器設(shè)置一個預(yù)設(shè)時間周期,設(shè)置預(yù)設(shè)時間周期的目的是:在預(yù)設(shè)時間周期內(nèi)緩存服務(wù)器定期將其中保存的保存失敗的待存儲數(shù)據(jù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,實現(xiàn)緩存服務(wù)器對保存失敗的待存儲數(shù)據(jù)定時保存更新能力。
具體做法是:調(diào)用緩存服務(wù)器中發(fā)送服務(wù),在預(yù)設(shè)時間周期內(nèi)對保存在緩存服務(wù)器中的保存失敗的待存儲數(shù)據(jù)定時發(fā)送,數(shù)據(jù)庫中的接收服務(wù)接收到緩存服務(wù)器中發(fā)送來的保存失敗的待存儲數(shù)據(jù),設(shè)置在緩存服務(wù)器中的保存服務(wù)將數(shù)據(jù)庫接收來的保存失敗的待存儲數(shù)據(jù)保存,直至該時間周期內(nèi)的緩存服務(wù)器發(fā)送的保存失敗的待存儲數(shù)據(jù)全部保存在數(shù)據(jù)庫中。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,通過設(shè)置在緩存服務(wù)器中的分布式緩存memcached開源方法獲取數(shù)據(jù)庫某時間點或時間段的沒有保存的用戶訪問次數(shù),緩存服務(wù)器將該數(shù)據(jù)視為保存失敗的待存儲數(shù)據(jù),將用戶訪問次數(shù)暫存在緩存服務(wù)器中。在實施過程中,對緩存服務(wù)器設(shè)置一個預(yù)設(shè)時間周期,在預(yù)設(shè)時間周期內(nèi)對緩存服務(wù)器進行掃描,檢測緩存服務(wù)器中是否保存有用戶訪問次數(shù),如果檢測到緩存服務(wù)器中保存有用戶訪問次數(shù),緩存服務(wù)器中的memcached開源方法將保存的用戶訪問次數(shù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫中的接收服務(wù)接收到緩存服務(wù)器中發(fā)送來的用戶訪問次數(shù),設(shè)置在緩存服務(wù)器中的保存服務(wù)將數(shù)據(jù)庫接收來的用戶訪問次數(shù)保存,最終將緩存服務(wù)器中保存的用戶訪問次數(shù)全部保存在系統(tǒng)數(shù)據(jù)庫中對應(yīng)的對該網(wǎng)站訪問次數(shù)統(tǒng)計的數(shù)據(jù)中,實現(xiàn)對統(tǒng)計該網(wǎng)站訪問次數(shù)的正確統(tǒng)計,防止數(shù)據(jù)丟失而造成的統(tǒng)計數(shù)據(jù)出現(xiàn)偏差。
需要說明的是,在緩存服務(wù)中設(shè)置其它數(shù)據(jù)保存服務(wù)或方法,將保存失敗的待存儲數(shù)據(jù)保存在緩存服務(wù)器中,都屬于本專利的保護范圍內(nèi)。
通過對緩存服務(wù)器設(shè)置預(yù)設(shè)時間,在預(yù)設(shè)時間周期內(nèi)對緩存服務(wù)器進行掃描,將預(yù)設(shè)時間周期內(nèi)緩存服務(wù)器暫存的保存失敗的待存儲數(shù)據(jù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,避免緩存服務(wù)器保存數(shù)據(jù)過多造成數(shù)據(jù)混亂以及對緩存服務(wù)器造成壓力,提高緩存服務(wù)器數(shù)據(jù)保存性能,另外對系統(tǒng)數(shù)據(jù)庫,可按照預(yù)設(shè)時間將保存失敗的待存儲數(shù)據(jù)定時保存在系統(tǒng)數(shù)據(jù)庫中,也避免一次性將緩存服務(wù)器中所有數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫的壓力。
優(yōu)選地,在本發(fā)明的一種將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中的實施例中,包括:
當緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)容量超過預(yù)設(shè)閾值,將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
具體的,對緩存服務(wù)器的數(shù)據(jù)存儲容量設(shè)置一個閾值,在緩存服務(wù)器中數(shù)據(jù)保存服務(wù)將保存失敗的待存儲數(shù)據(jù)保存在緩存服務(wù)器中,設(shè)置程序獲取緩存服務(wù)器保存的保存失敗的待存儲數(shù)據(jù)容量與對緩存服務(wù)器的數(shù)據(jù)存儲容量設(shè)置的閾值,并且比較兩者的大小,如果緩存服務(wù)器保存的保存失敗的待存儲數(shù)據(jù)容量大于對緩存服務(wù)器的數(shù)據(jù)存儲容量設(shè)置的閾值,則緩存服務(wù)器中的數(shù)據(jù)發(fā)送服務(wù)將保存在緩存服務(wù)器中的保存失敗的待存儲數(shù)據(jù)依次發(fā)送到系統(tǒng)數(shù)據(jù)庫中,系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)接收服務(wù)接受緩存服務(wù)器發(fā)送來的保存失敗的待存儲數(shù)據(jù),并將緩存服務(wù)器發(fā)送來的所有保存失敗的待存儲數(shù)據(jù)保存在系統(tǒng)數(shù)據(jù)庫中。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,通過設(shè)置在緩存服務(wù)器中的memcached開源方法獲取系統(tǒng)數(shù)據(jù)庫某時間點或時間段的沒有保存的用戶訪問次數(shù),緩存服務(wù)器將該數(shù)據(jù)視為保存失敗的待存儲數(shù)據(jù),將用戶訪問次數(shù)暫存在緩存服務(wù)器中。在實施過程中,對緩存服務(wù)器的數(shù)據(jù)存儲容量設(shè)置一個閾值,設(shè)置于緩存服務(wù)器中的memcached開源方法將沒有保存的用戶訪問次數(shù)保存在緩存服務(wù)器中,設(shè)置程序獲取緩存服務(wù)器保存的沒有保存的用戶訪問次數(shù)數(shù)據(jù)容量與對緩存服務(wù)器的數(shù)據(jù)存儲容量設(shè)置的閾值,并且比較兩者的大小,如果緩存服務(wù)器保存的沒有保存的用戶訪問次數(shù)數(shù)據(jù)容量大于對緩存服務(wù)器的數(shù)據(jù)存儲容量設(shè)置的閾值,則緩存服務(wù)器中的數(shù)據(jù)發(fā)送服務(wù)將保存在緩存服務(wù)器中的用戶訪問次數(shù)依次發(fā)送到系統(tǒng)數(shù)據(jù)庫中,系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)接收服務(wù)接受緩存服務(wù)器發(fā)送來的用戶訪問次數(shù),并將緩存服務(wù)器發(fā)送來的所有保存失敗的用戶訪問次數(shù)保存在系統(tǒng)數(shù)據(jù)庫中對應(yīng)的對該網(wǎng)站訪問次數(shù)統(tǒng)計的數(shù)據(jù)中,實現(xiàn)對統(tǒng)計該網(wǎng)站訪問次數(shù)的正確統(tǒng)計,防止對該部分數(shù)據(jù)的丟失。
通過對緩存服務(wù)器設(shè)置一個緩存容量的閾值,可以很好的降低緩存服務(wù)器的存儲壓力,提高緩存服務(wù)器的緩存性能,并且,對于系統(tǒng)數(shù)據(jù)庫而言,系統(tǒng)數(shù)據(jù)庫按照設(shè)定的緩存容量的閾值進行保存保存失敗的待存儲數(shù)據(jù),也降低了系統(tǒng)數(shù)據(jù)庫的存儲壓力。
優(yōu)選地,本發(fā)明實施例的一種在將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中之前的實施例中,還包括:
確定緩存服務(wù)器中是否存儲有保存失敗的待存儲數(shù)據(jù);
具體的,通過預(yù)設(shè)程序?qū)彺娣?wù)器進行定時掃描,檢測緩存服務(wù)器中是否保存有保存失敗的待存儲數(shù)據(jù)。進行定時掃描的目的是:定時檢測緩存服務(wù)器中是否保存有保存失敗的待存儲數(shù)據(jù),以免緩存服務(wù)器中保存的保存失敗的待存儲數(shù)據(jù)過多,提高緩存服務(wù)器的存儲性能。
將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中,包括:
若緩存服務(wù)器中存儲有保存失敗的待存儲數(shù)據(jù),將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
具體的,通過上述檢測到緩存服務(wù)器中保存有保存失敗的待存儲數(shù)據(jù),緩存服務(wù)器中的數(shù)據(jù)發(fā)送服務(wù)按照存儲時間先后順序?qū)⒕彺娣?wù)器中保存的保存失敗的待存儲數(shù)據(jù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)接收服務(wù)接受緩存服務(wù)器發(fā)送來的保存失敗的待存儲數(shù)據(jù),進而,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)保存服務(wù)保存緩存服務(wù)器發(fā)送來的保存失敗的待存儲數(shù)據(jù),直至緩存服務(wù)器中所有的保存失敗的待存儲數(shù)據(jù)全部保存在系統(tǒng)數(shù)據(jù)庫中。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,通過設(shè)置在緩存服務(wù)器中的memcached開源方法獲取數(shù)據(jù)庫某時間點或時間段的沒有保存的用戶訪問次數(shù),緩存服務(wù)器將該數(shù)據(jù)視為保存失敗的待存儲數(shù)據(jù),將用戶訪問次數(shù)暫存在緩存服務(wù)器中。在實施過程中,通過預(yù)設(shè)程序?qū)彺娣?wù)器進行掃描,檢測緩存服務(wù)器中是否保存有沒有保存的用戶訪問次數(shù),若檢測到緩存服務(wù)器中有保存的沒有保存的用戶訪問次數(shù),設(shè)置于緩存服務(wù)器中的memcached開源方法按照保存的沒有保存的用戶訪問次數(shù)存儲時間先后順序,將保存的沒有保存的用戶訪問次數(shù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)接收服務(wù)接收緩存服務(wù)器發(fā)送來的沒有保存的用戶訪問次數(shù),進而,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)保存服務(wù)保存系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)接收服務(wù)接收的沒有保存的用戶訪問次數(shù),直至緩存服務(wù)器中所有的沒有保存的用戶訪問次數(shù)全部保存在系統(tǒng)數(shù)據(jù)庫中對應(yīng)的對該網(wǎng)站訪問次數(shù)統(tǒng)計的數(shù)據(jù)中,實現(xiàn)對網(wǎng)站訪問次數(shù)的正確統(tǒng)計,防止對該部分數(shù)據(jù)的丟失。
可見,本發(fā)明實施例通過對緩存服務(wù)器檢測,檢測緩存服務(wù)器中保存的保存失敗的待存儲數(shù)據(jù),再將緩存服務(wù)器中保存的保存失敗的待保存數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中,可實現(xiàn)緩存服務(wù)器的實時檢測,系統(tǒng)數(shù)據(jù)庫的實時保存。
優(yōu)選地,在將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中之后,還包括:
清除緩存服務(wù)器中存儲的已保存到系統(tǒng)數(shù)據(jù)庫中的保存失敗的待存儲數(shù)據(jù)。
具體的,當緩存服務(wù)器中保存的保存失敗的待存儲數(shù)據(jù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫將保存失敗的待存儲數(shù)據(jù)進行保存后,緩存服務(wù)器中的數(shù)據(jù)清除服務(wù)清除緩存服務(wù)器中的保存到系統(tǒng)數(shù)據(jù)庫中的保存失敗的待存儲數(shù)據(jù)。
例如,在統(tǒng)計網(wǎng)站訪問次數(shù)時,通過設(shè)置在緩存服務(wù)器中的memcached開源方法獲取系統(tǒng)數(shù)據(jù)庫某時間點或時間段的沒有保存的用戶訪問次數(shù),緩存服務(wù)器將該數(shù)據(jù)視為保存失敗的待存儲數(shù)據(jù),將用戶訪問次數(shù)暫存在緩存服務(wù)器中,設(shè)置于緩存服務(wù)器中的memcached開源方法按照保存的沒有保存的用戶訪問次數(shù)存儲時間先后順序,將保存的沒有保存的用戶訪問次數(shù)發(fā)送給系統(tǒng)數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)接收服務(wù)接收緩存服務(wù)器發(fā)送來的沒有保存的用戶訪問次數(shù),進而,系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)保存服務(wù)保存系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)接收服務(wù)接收的沒有保存的用戶訪問次數(shù),直至緩存服務(wù)器中所有的沒有保存的用戶訪問次數(shù)全部保存在系統(tǒng)數(shù)據(jù)庫中對應(yīng)的對該網(wǎng)站訪問次數(shù)統(tǒng)計的數(shù)據(jù)中。在系統(tǒng)數(shù)據(jù)庫完成對緩存服務(wù)器發(fā)送來的沒有保存的用戶訪問次數(shù)保存好后,緩存服務(wù)器中的memcached開源方法清除保存到系統(tǒng)數(shù)據(jù)庫中的沒有保存的用戶訪問次數(shù)。
可見,清除緩存服務(wù)器中保存的保存失敗的待存儲數(shù)據(jù),可以節(jié)省緩存服務(wù)器的存儲空間,提高緩存服務(wù)器的利用率。
本發(fā)明實施例還公開了一種數(shù)據(jù)存儲系統(tǒng),可參見圖2,圖2為本發(fā)明實施例的一種數(shù)據(jù)存儲系統(tǒng)圖,包括:
第一存儲模塊201,用于將待存儲數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中;
獲取數(shù)據(jù)模塊202,用于獲取保存失敗的待存儲數(shù)據(jù);
第二存儲模塊203,用于將保存失敗的待存儲數(shù)據(jù)保存到緩存服務(wù)器中;
第三存儲模塊204,用于將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中,直至系統(tǒng)數(shù)據(jù)庫中保存保存失敗的待存儲數(shù)據(jù)。
本發(fā)明提供的一種數(shù)據(jù)存儲系統(tǒng),是通過設(shè)置一個緩存服務(wù)器,利用緩存服務(wù)器的緩存功能,將系統(tǒng)數(shù)據(jù)庫保存失敗的待存儲數(shù)據(jù)暫存在緩存服務(wù)器中,再將緩存服務(wù)器中暫存的保存失敗的待存儲數(shù)據(jù)保存到系統(tǒng)數(shù)據(jù)庫中。本發(fā)明實現(xiàn)了系統(tǒng)數(shù)據(jù)庫對待保存數(shù)據(jù)的完整保存,保證了數(shù)據(jù)的安全性與完整性。
需要說明的是,本發(fā)明實施例的系統(tǒng)是應(yīng)用上述數(shù)據(jù)存儲方法的系統(tǒng),則上述數(shù)據(jù)存儲方法的所有實施例均適用于該裝置,且均能達到相同或相似的有益效果。
優(yōu)選地,第三存儲模塊204,具體用于,
每隔預(yù)設(shè)時間周期,將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
優(yōu)選地,第三存儲模塊204,具體還用于,
當緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)容量超過預(yù)設(shè)閾值,將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
優(yōu)選地,在第三存儲模塊204之前,數(shù)據(jù)存儲系統(tǒng)還包括:
確定模塊,用于確定緩存服務(wù)器中是否存儲有保存失敗的待存儲數(shù)據(jù);
第三存儲模塊204,具體用于,
若緩存服務(wù)器中存儲有保存失敗的待存儲數(shù)據(jù),將緩存服務(wù)器中存儲的保存失敗的待存儲數(shù)據(jù)存儲到系統(tǒng)數(shù)據(jù)庫中。
優(yōu)選地,在第三存儲模塊204之后,數(shù)據(jù)存儲系統(tǒng)還包括:
清除模塊,用于清除緩存服務(wù)器中存儲的已保存到系統(tǒng)數(shù)據(jù)庫中的保存失敗的待存儲數(shù)據(jù)。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。