国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)管理方法和數(shù)據(jù)管理系統(tǒng)的制作方法

      文檔序號:6443080閱讀:208來源:國知局
      專利名稱:數(shù)據(jù)管理方法和數(shù)據(jù)管理系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及數(shù)據(jù)管理方法和數(shù)據(jù)管理系統(tǒng)。
      背景技術(shù)
      伴隨信息技術(shù)和市場的發(fā)展,數(shù)據(jù)庫的使用越來越被人們所熟知。數(shù)據(jù)庫、內(nèi)存管理等應用也越來越廣泛,目前主流的數(shù)據(jù)庫方案采用數(shù)據(jù)表結(jié)合內(nèi)存的方式存儲及管理數(shù)據(jù)。在訪問數(shù)據(jù)庫時,現(xiàn)將數(shù)據(jù)庫中的數(shù)據(jù)讀取到內(nèi)存中,然后再從內(nèi)存中獲取訪問結(jié)果。然而,隨著數(shù)據(jù)量的爆發(fā)式增長,現(xiàn)有數(shù)據(jù)庫方案的弊端逐漸顯現(xiàn),例如,在數(shù)據(jù)表單表記錄量為4000萬,并發(fā)訪問數(shù)量超過400時,數(shù)據(jù)庫性能就會出現(xiàn)比較明顯下降,達到10秒以上的單條處理時間,數(shù)據(jù)訪問效率較低;并且,2000萬條的數(shù)據(jù)所需的內(nèi)存存儲空間就會大于2G,對內(nèi)存的存儲量要求過高,且由于將這些數(shù)據(jù)載入內(nèi)存的耗時較長,導致服務(wù)器啟動過慢,不能滿足實際生產(chǎn)環(huán)境需求。

      發(fā)明內(nèi)容
      本發(fā)明提供了一種數(shù)據(jù)管理方法和數(shù)據(jù)管理系統(tǒng),以解決現(xiàn)有數(shù)據(jù)訪問效率較低以及對內(nèi)存要求過高、服務(wù)器啟動過慢的問題。為達到上述目的,本發(fā)明實施例采用了如下技術(shù)方案:本發(fā)明實施例提供了一種數(shù)據(jù)管理方法,所述方法包括:創(chuàng)建存儲數(shù)據(jù)的本地數(shù)據(jù)文件;根據(jù)所述本地數(shù)據(jù)文件生成本地索引文件,所述本地索引文件包括每條數(shù)據(jù)在本地數(shù)據(jù)文件中位置信息;在接收到訪問請求時,根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息;根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。本發(fā)明實施例還提供了一種數(shù)據(jù)管理系統(tǒng),所述系統(tǒng)包括本地文件數(shù)據(jù)庫和數(shù)據(jù)庫訪問裝置,所述本地文件數(shù)據(jù)庫,創(chuàng)建存儲數(shù)據(jù)的本地數(shù)據(jù)文件,根據(jù)所述本地數(shù)據(jù)文件生成本地索引文件,所述本地索引文件包括每條數(shù)據(jù)在本地數(shù)據(jù)文件中位置信息;所述數(shù)據(jù)庫訪問裝置,在接收到訪問請求時,根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息,以及,根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。本發(fā)明實施例的有益效果是:本發(fā)明實施例采用本地文件的形式存儲數(shù)據(jù)和數(shù)據(jù)的索引,由于主要數(shù)據(jù)采用文件形式存儲實現(xiàn),在進行數(shù)據(jù)訪問時,直接訪問本地文件,所需耗用的服務(wù)器內(nèi)存很小,幾乎不占用內(nèi)存,從而最大限度地降低了內(nèi)存消耗,提高了服務(wù)器的啟動速度;且數(shù)據(jù)不會因為服務(wù)器的重啟或故障發(fā)生丟失,保證了數(shù)據(jù)的安全。并且,本方案能夠支持大并發(fā)量的訪問,實現(xiàn)準確快速的數(shù)據(jù)訪問。


      圖1為本發(fā)明實施例一提供的一種數(shù)據(jù)管理方法流程示意圖;圖2為本發(fā)明實施例二提供的數(shù)據(jù)讀取方法流程示意圖;圖3為本發(fā)明實施例二提供的數(shù)據(jù)插入方法流程示意圖;圖4為本發(fā)明實施例二提供的數(shù)據(jù)修改方法流程示意圖;圖5為本發(fā)明實施例二提供的數(shù)據(jù)刪除方法流程示意圖;圖6為本發(fā)明實施例三提供的一種數(shù)據(jù)管理系統(tǒng)結(jié)構(gòu)示意圖。
      具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。參見圖1,為本發(fā)明實施例一提供的一種數(shù)據(jù)管理方法,所述方法包括:11:創(chuàng)建存儲數(shù)據(jù)的本地數(shù)據(jù)文件。本地數(shù)據(jù)文件中存儲數(shù)據(jù)的關(guān)鍵字和數(shù)據(jù)本身,數(shù)據(jù)關(guān)鍵字是數(shù)據(jù)在系統(tǒng)中唯一性的標識信息,其具體數(shù)值和實現(xiàn)方式可以根據(jù)需要進行選取,例如,所選取的關(guān)鍵字可以為一個字符串,例如表示為TEST:13699229851,其中TEST符號指示其后的字符串為關(guān)鍵字;所選取的關(guān)鍵字也可以為一個整數(shù),例如,表示為PID:6,其中,PID符號指示其后的整數(shù)為關(guān)鍵字。12:根據(jù)所述本地數(shù)據(jù)文件生成本地索引文件,所述本地索引文件包括每條數(shù)據(jù)在數(shù)據(jù)文件中位置信息。進一步的,本實施例按照二叉樹結(jié)構(gòu)生成本地索引文件,以進一步的加快數(shù)據(jù)訪問的速度。二叉樹結(jié)構(gòu)的一個節(jié)點中包括一條數(shù)據(jù)的關(guān)鍵字和該條數(shù)據(jù)在數(shù)據(jù)文件中相對于數(shù)據(jù)起始位置的偏移量,該偏移量即為上述位置信息。二叉樹結(jié)構(gòu)是每個節(jié)點最多有兩個子樹的有序樹結(jié)構(gòu)。二叉樹的每個節(jié)點至多只有二棵子樹(不存在度大于2的節(jié)點),二叉樹的子樹有左右之分,通常被分別稱作左子樹(left subtree)和右子樹(right subtree)。左右子樹的次序不能顛倒。由于左右子樹的這種有序性,在二叉樹結(jié)構(gòu)中查找數(shù)據(jù)時,每個節(jié)點只會按照左子樹和右子樹中一個方向的路徑進行查找,能夠大大提高數(shù)據(jù)查找的效率。通過上述步驟11和12,生成了本地數(shù)據(jù)文件和本地索引文件,從而創(chuàng)建了 一個本地文件數(shù)據(jù)庫。其中,“本地”是相對于網(wǎng)絡(luò)中的服務(wù)器一側(cè)而言,本地文件數(shù)據(jù)庫可以在本地終端的硬盤上實現(xiàn),在訪問本地文件數(shù)據(jù)庫時,直接訪問本地磁盤,而不需將數(shù)據(jù)庫中的數(shù)據(jù)讀入服務(wù)器的內(nèi)存中,從而減少數(shù)據(jù)操作過程中耗用內(nèi)存的大小,提高訪問速度,加快網(wǎng)絡(luò)服務(wù)器的開啟速度,滿足實際的要求。在數(shù)據(jù)訪問過程中,可以通過調(diào)用并打開本地數(shù)據(jù)文件和索引文件確認本地文件數(shù)據(jù)庫是否已經(jīng)存在,當能夠成功打開本地數(shù)據(jù)文件和索引文件時,確認本地文件數(shù)據(jù)庫存在,執(zhí)行后續(xù)的訪問操作,當文件打開失敗時,確認本地文件數(shù)據(jù)庫不存在,執(zhí)行上述步驟11和12。 13:在接收到訪問請求時,根據(jù)訪問請求從本地索弓I文件中獲取所訪問數(shù)據(jù)的位置信息。訪問請求中攜帶所需訪問數(shù)據(jù)的關(guān)鍵字,根據(jù)訪問請求中攜帶的關(guān)鍵字,在本地索引文件的二叉樹結(jié)構(gòu)中搜索得到所訪問數(shù)據(jù)的偏移量。將訪問請求中的關(guān)鍵字與各二叉樹節(jié)點中的關(guān)鍵字進行比較,當相同時,確認該二叉樹節(jié)點存儲了所需的偏移量(如表示為M),并將該偏移量提取出來?,F(xiàn)有方案在進行信息查找時,通常利用哈希算法進行數(shù)據(jù)定位,然而,采用哈希算法時需要預估并保留所需占用的全部存儲空間,信息冗余度較大(達到25 %以上),極大浪費了存儲資源,針對這一缺點,本方案采用了二叉樹結(jié)構(gòu)的本地索引文件,達到了提高資源利用率和訪問速度的效果。實驗證明,本方案對于具有8000萬條數(shù)據(jù)的文件,單條數(shù)據(jù)檢索時間不超過30微秒,與直接在內(nèi)存查詢數(shù)據(jù)的時間相當,并且,遠大于現(xiàn)有數(shù)據(jù)庫的100毫秒的檢索時間。14:根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。例如,當利用數(shù)據(jù)指針在本地數(shù)據(jù)文件中定位數(shù)據(jù)時,將數(shù)據(jù)指針移至當前位置,該當前位置為相對于本地數(shù)據(jù)文件的數(shù)據(jù)起始位置偏移M的位置。進一步的,在執(zhí)行上述步驟13之前,所述方法還包括:檢查本地索引文件是否為最新的版本,若是,從該本地索引文件中獲取所述位置信息,若否,加載最新版本的本地索引文件,從新加載的本地索引文件中獲取所述位置信息。在執(zhí)行上述步驟14之前,所述方法還包括:檢查本地數(shù)據(jù)文件是否為最新的版本,若是,在該本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù),若否,加載最新版本的本地數(shù)據(jù)文件,在新加載的本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。由上所述,本發(fā)明實施例采用本地文件的形式存儲數(shù)據(jù)和數(shù)據(jù)的索引,由于主要數(shù)據(jù)采用文件形式存儲實現(xiàn),在進行數(shù)據(jù)訪問時,直接訪問本地文件,所需耗用的服務(wù)器內(nèi)存很小,幾乎不占用內(nèi)存,從而最大限度地降低了內(nèi)存消耗,提高了服務(wù)器的啟動速度;且數(shù)據(jù)不會因為服務(wù)器的重啟或故障發(fā)生丟失,保證了數(shù)據(jù)的安全。并且,本方案能夠支持大并發(fā)量的訪問,實現(xiàn)準確快速的數(shù)據(jù)訪問。本發(fā)明實施例二分別以數(shù)據(jù)讀取、數(shù)據(jù)插入、數(shù)據(jù)修改和數(shù)據(jù)刪除的場景為例,具體說明本方案提供的數(shù)據(jù)管理方法。數(shù)據(jù)讀取參見圖2,數(shù)據(jù)讀取操作包括如下處理:21:檢查本地索引文件(或簡稱索引文件)是否為最新的版本。例如,本方案中設(shè)置時間戳信息,所述時間戳信息記錄本地索引文件和本地數(shù)據(jù)文件的修改或變動的時間;檢查本地索弓I文件的修改時間是否與時間戳信息中本地索弓I文件最后一次修改時間相一致,若是,確認本地索引文件為最新的版本,執(zhí)行步驟22,若否,確認本地索引文件不是最新的版本,執(zhí)行步驟23。22:檢查本地數(shù)據(jù)文件(或簡稱數(shù)據(jù)文件)是否為最新的版本。檢查本地數(shù)據(jù)文件的修改時間是否與時間戳信息中本地數(shù)據(jù)文件最后一次修改時間相一致,若是,確認本地數(shù)據(jù)文件為最新的版本,執(zhí)行步驟24,若否,確認本地數(shù)據(jù)文件不是最新的版本,執(zhí)行步驟23。23:重新加載最新文件。
      根據(jù)時間戳信息,重新加載最新的索引文件和/或數(shù)據(jù)文件。當新加載的文件能夠成功打開,即能夠正常使用時,執(zhí)行步驟24。24:讀取偏移量。從最新版本的索引文件中讀取出所訪問數(shù)據(jù)的位置信息,即偏移量。25:偏移文件指針。在數(shù)據(jù)文件中利用文件指針對數(shù)據(jù)進行定位,將文件指針移動至上述偏移量所指示的位置。26:獲得數(shù)據(jù)。讀取當前位置下指針所指示的數(shù)據(jù),獲取所需的數(shù)據(jù)。數(shù)據(jù)插入本方案采用將新增數(shù)據(jù)插入數(shù)據(jù)文件尾,參見圖3,包括如下處理:31:偏移數(shù)據(jù)文件指針至文件尾(新插入數(shù)據(jù)始終位于文件尾)。該文件尾部即為本地數(shù)據(jù)文件中最后一條已有數(shù)據(jù)的下一條數(shù)據(jù)位置。32:獲得數(shù)據(jù)文件指針當前位置的偏移字節(jié)數(shù)。上述偏移字節(jié)數(shù)為文件尾部位置相對于文件首部的偏移量,即為新增數(shù)據(jù)的位置信息。33:將偏移字節(jié)數(shù)寫入索引文件中。將新增數(shù)據(jù)的偏移量和關(guān)鍵字添加至索引文件的二叉樹結(jié)構(gòu)中。34:判斷寫入是否成功。判斷對索引文件的寫入是否成功,例如,在執(zhí)行完寫入操作后,索引文件返回響應信息,根據(jù)接收到的索引文件響應信息,確認將所述偏移量成功寫入本地索引文件中后,繼續(xù)執(zhí)行數(shù)據(jù)插入操作,否則,再次寫入索引文件直至寫入成功,或者,返回插入錯誤碼,插入失敗,結(jié)束插入操作。索引文件寫入成功后,將新增的一條數(shù)據(jù)寫入本地數(shù)據(jù)文件的文件尾部。進一步的,本方案中在將新增的一條數(shù)據(jù)寫入本地數(shù)據(jù)文件的文件尾部之前,所述方法還包括:根據(jù)本地數(shù)據(jù)文件中已存儲數(shù)據(jù)的關(guān)鍵字和新增數(shù)據(jù)的關(guān)鍵字,確認本地數(shù)據(jù)文件中不存在與新增的數(shù)據(jù)相同的已有數(shù)據(jù),若新增的數(shù)據(jù)與已有數(shù)據(jù)相同,返回插入失敗。通過這種操作保證了不再重復增加相同的數(shù)據(jù),節(jié)省了文件資源。進一步的,可以通過時間戳信息將數(shù)據(jù)插入至最新版本的索引文件和數(shù)據(jù)文件中。數(shù)據(jù)修改41:檢查索引文件是否為最新的版本。例如,本方案中設(shè)置時間戳信息,所述時間戳信息記錄本地索引文件和本地數(shù)據(jù)文件的修改或變動的時間;檢查本地索引文件的修改時間是否與時間戳信息中本地索引文件最后一次修改時間相一致,若是,確認本地索引文件為最新的版本,執(zhí)行步驟42,若否,確認本地索引文件不是最新的版本,執(zhí)行步驟43。42:檢查數(shù)據(jù)文件是否為最新的版本。檢查本地數(shù)據(jù)文件的修改時間是否與時間戳信息中本地數(shù)據(jù)文件最后一次修改時間相一致,若是,確認本地數(shù)據(jù)文件為最新的版本,執(zhí)行步驟44,若否,確認本地數(shù)據(jù)文件不是最新的版本,執(zhí)行步驟43。43:重新加載最新文件。根據(jù)時間戳信息,重新加載最新的索引文件和/或數(shù)據(jù)文件。當新加載的文件能夠成功打開,即能夠正常使用時,執(zhí)行步驟44。44:讀取偏移量。從最新版本的索引文件中讀取出所需修改數(shù)據(jù)的位置信息,即偏移量。45:偏移文件指針。在最新版本的數(shù)據(jù)文件中利用文件指針對數(shù)據(jù)進行定位,將文件指針移動至上述偏移量所指示的位置。46:修改數(shù)據(jù)。修改當前位置下指針所指示的數(shù)據(jù)。數(shù)據(jù)刪除51:檢查索引文件是否為最新的版本。例如,本方案中設(shè)置時間戳信息,所述時間戳信息記錄本地索引文件和本地數(shù)據(jù)文件的修改或變動的時間;檢查本地索弓I文件的修改時間是否與時間戳信息中本地索弓I文件最后一次修改時間相一致,若是,確認本地索引文件為最新的版本,執(zhí)行步驟52,若否,確認本地索引文件不是最新的版本,執(zhí)行步驟53。52:檢查數(shù)據(jù)文件是否為最新的版本。檢查本地數(shù)據(jù)文件的修改時間是否與時間戳信息中本地數(shù)據(jù)文件最后一次修改時間相一致,若是,確認本地數(shù)據(jù)文件為最新的版本,執(zhí)行步驟54,若否,確認本地數(shù)據(jù)文件不是最新的版本,執(zhí)行步驟53。53:重新加載最新文件。根據(jù)時間戳信息,重新加載最新的索引文件和/或數(shù)據(jù)文件。當新加載的文件能夠成功打開,即能夠正常使用時,執(zhí)行步驟54。54:讀取偏移量。從最新版本的索引文件中讀取出所需刪除數(shù)據(jù)的位置信息,即偏移量。在讀取到偏移量之后,在索引文件中刪除所讀取的偏移量,從而使數(shù)據(jù)訪問者無法獲取到數(shù)據(jù)的位置信息。也可以進一步地在索引文件中刪除數(shù)據(jù)的關(guān)鍵字。55:偏移文件指針。在最新的數(shù)據(jù)文件中利用文件指針對數(shù)據(jù)進行定位,將文件指針移動至上述偏移量所指示的位置,確定出待刪除數(shù)據(jù)在本地數(shù)據(jù)文件中的位置。56:修改數(shù)據(jù)。在數(shù)據(jù)文件中,刪除當前位置下文件指針所指示的數(shù)據(jù)。進一步的,也可以同時刪除數(shù)據(jù)文件中所存儲的待刪除數(shù)據(jù)的關(guān)鍵字。考慮到數(shù)據(jù)刪除的情景在實際中的需求較小,本方案中在數(shù)據(jù)文件中刪除數(shù)據(jù)后,保留本地數(shù)據(jù)文件中相應位置處的存儲空間,從而避免了再次重新生成索引文件,降低數(shù)據(jù)庫的維護復雜度。
      本發(fā)明實施例三提供了 一種數(shù)據(jù)管理系統(tǒng),參見圖6,所述系統(tǒng)包括本地文件數(shù)據(jù)庫61和數(shù)據(jù)庫訪問裝置62,所述本地文件數(shù)據(jù)庫61,創(chuàng)建存儲數(shù)據(jù)的本地數(shù)據(jù)文件,根據(jù)所述本地數(shù)據(jù)文件生成本地索引文件,所述本地索引文件包括每條數(shù)據(jù)在數(shù)據(jù)文件中位置信息;所述數(shù)據(jù)庫訪問裝置62,在接收到訪問請求時,根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息,以及,根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。進一步的,所述本地文件數(shù)據(jù)庫61具體按照二叉樹結(jié)構(gòu)生成本地索引文件,所述二叉樹結(jié)構(gòu)中一個節(jié)點包括一條數(shù)據(jù)的關(guān)鍵字和該條數(shù)據(jù)在數(shù)據(jù)文件中相對于數(shù)據(jù)起始位置的偏移量,該偏移量為所述位置信息;所述數(shù)據(jù)庫訪問裝置62具體根據(jù)訪問請求中攜帶的關(guān)鍵字,在本地索引文件的二叉樹結(jié)構(gòu)中搜索得到所訪問數(shù)據(jù)的偏移量。進一步的,所述數(shù)據(jù)庫訪問裝置62在根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息之前,檢查本地索引文件是否為最新的版本,若是,從該本地索引文件中獲取所述位置信息,若否,加載最新版本的本地索引文件,從新加載的本地索引文件中獲取所述位置信息;所述數(shù)據(jù)庫訪問裝置62在根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)之前,檢查本地數(shù)據(jù)文件是否為最新的版本,若是,在該本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù),若否,加載最新版本的本地數(shù)據(jù)文件,在新加載的本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。進一步的,本實施例的系統(tǒng)中設(shè)置有時間戳信息,所述時間戳信息記錄本地索引文件和本地數(shù)據(jù)文件的修改時間;所述數(shù)據(jù)庫訪問裝置62檢查本地索引文件是否為最新的版本包括:檢查本地索引文件的修改時間是否與時間戳信息中本地索引文件最后一次修改時間相一致,若是,確認本地索引文件為最新的版本,若否,確認本地索引文件不是最新的版本;所述數(shù)據(jù)庫訪問裝置62檢查本地數(shù)據(jù)文件是否為最新的版本包括:檢查本地數(shù)據(jù)文件的修改時間是否與時間戳信息中本地數(shù)據(jù)文件最后一次修改時間相一致,若是,確認本地數(shù)據(jù)文件為最新的版本,若否,確認本地數(shù)據(jù)文件不是最新的版本。進一步的,所述數(shù)據(jù)庫訪問裝置62還通過如下方式在本地文件數(shù)據(jù)庫61中增加一條新的數(shù)據(jù):獲取本地數(shù)據(jù)文件中最后一條已有數(shù)據(jù)的下一條數(shù)據(jù)的偏移量;將所述偏移量寫入本地索引文件中;將新增的一條數(shù)據(jù)寫入本地數(shù)據(jù)文件的文件尾部。進一步的,所述數(shù)據(jù)庫訪問裝置62還通過如下方式在本地文件數(shù)據(jù)庫61對一條數(shù)據(jù)進行修改:根據(jù)待修改數(shù)據(jù)的關(guān)鍵字從本地索引文件中獲取待修改數(shù)據(jù)的偏移量;根據(jù)所獲取到的偏移量,確定待修改數(shù)據(jù)在本地數(shù)據(jù)文件中的位置;對所確定位置處的待修改數(shù)據(jù)進行修改。進一步的,所述數(shù)據(jù)庫訪問裝置62還通過如下方式在本地文件數(shù)據(jù)庫61中刪除一條數(shù)據(jù):
      根據(jù)待刪除數(shù)據(jù)的關(guān)鍵字從本地索引文件中獲取待刪除數(shù)據(jù)的偏移量后,刪除本地索引文件中待刪除數(shù)據(jù)的偏移量;根據(jù)所獲取到的偏移量,確定待刪除數(shù)據(jù)在本地數(shù)據(jù)文件中的位置,刪除所確定位置處的待刪除數(shù)據(jù),并保留本地數(shù)據(jù)文件中所確定位置處的存儲空間。本發(fā)明系統(tǒng)實施例中各裝置的具體工作方式可以參見本發(fā)明實施例的方法實施例。本發(fā)明實施例采用本地文件的形式存儲數(shù)據(jù)和數(shù)據(jù)的索引,由于主要數(shù)據(jù)采用文件形式存儲實現(xiàn),在進行數(shù)據(jù)訪問時,直接訪問本地文件,所需耗用的服務(wù)器內(nèi)存很小,幾乎不占用內(nèi)存,從而最大限度地降低了內(nèi)存消耗,提高了服務(wù)器的啟動速度;且數(shù)據(jù)不會因為服務(wù)器的重啟或故障發(fā)生丟失,保證了數(shù)據(jù)的安全。并且,本方案能夠支持大并發(fā)量的訪問,實現(xiàn)準確快速的數(shù)據(jù)訪問。由上所述,本發(fā)明實施例至少能夠達到如下技術(shù)效果:I)主要數(shù)據(jù)采用文件形式本地存儲,數(shù)據(jù)訪問時無需先將文件加載至服務(wù)器,從而幾乎不需占用服務(wù)器的內(nèi)存;2)數(shù)據(jù)訪問速度快,對于具有8000萬條數(shù)據(jù)的文件,單條數(shù)據(jù)檢索時間不超過30微秒,與直接在內(nèi)存查詢數(shù)據(jù)的時間相當,并且,遠大于現(xiàn)有數(shù)據(jù)庫的100毫秒的檢索時間;3)因為采用的是本地文件,所以服務(wù)啟動不需要重新裝載內(nèi)存,服務(wù)啟動時間大大加快,并且服務(wù)器重啟或故障時,數(shù)據(jù)文件不會有任何丟失;4)提供了 一套比較完善的數(shù)據(jù)文件生成工具,所以不需要二次開發(fā)就可以構(gòu)造一個本地文件數(shù)據(jù)庫,開發(fā)速度快;5)在使用和開發(fā)時,檢索數(shù)據(jù)只需要打開、查詢、關(guān)閉等三部動作,大大節(jié)省了開發(fā)的時間和人員成本。本方案能夠廣泛應用在短信上下行管理系統(tǒng)中,例如上行分揀、過濾黑名單用戶、過濾VIP用戶、用戶區(qū)域信息檢索等等。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包括在本發(fā)明的保護范圍內(nèi)。
      權(quán)利要求
      1.一種數(shù)據(jù)管理方法,其特征在于,所述方法包括: 創(chuàng)建存儲數(shù)據(jù)的本地數(shù)據(jù)文件; 根據(jù)所述本地數(shù)據(jù)文件生成本地索引文件,所述本地索引文件包括每條數(shù)據(jù)在本地數(shù)據(jù)文件中位置信息; 在接收到訪問請求時,根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息; 根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述本地數(shù)據(jù)文件生成本地索引文件包括: 按照二叉樹結(jié)構(gòu)生成本地索引文件,所述二叉樹結(jié)構(gòu)中一個節(jié)點包括一條數(shù)據(jù)的關(guān)鍵字和該條數(shù)據(jù)在本地數(shù)據(jù)文件中相對于數(shù)據(jù)起始位置的偏移量,該偏移量為所述位置信息; 所述根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息包括: 根據(jù)訪問請求中攜帶的關(guān)鍵字,在本地索引文件的二叉樹結(jié)構(gòu)中搜索得到所訪問數(shù)據(jù)的偏移量。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 在根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息之前,所述方法還包括: 檢查本地索引文件是否為最新的版本,若是,從該本地索引文件中獲取所述位置信息,若否,加載最新版本的本 地索引文件,從新加載的本地索引文件中獲取所述位置信息; 在根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)之前,所述方法還包括: 檢查本地數(shù)據(jù)文件是否為最新的版本,若是,在該本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù),若否,加載最新版本的本地數(shù)據(jù)文件,在新加載的本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,設(shè)置時間戳信息,所述時間戳信息記錄本地索引文件和本地數(shù)據(jù)文件的修改時間; 所述檢查本地索引文件是否為最新的版本包括: 檢查本地索引文件的修改時間是否與時間戳信息中本地索引文件最后一次修改時間相一致,若是,確認本地索引文件為最新的版本,若否,確認本地索引文件不是最新的版本; 所述檢查本地數(shù)據(jù)文件是否為最新的版本包括: 檢查本地數(shù)據(jù)文件的修改時間是否與時間戳信息中本地數(shù)據(jù)文件最后一次修改時間相一致,若是,確認本地數(shù)據(jù)文件為最新的版本,若否,確認本地數(shù)據(jù)文件不是最新的版本。
      5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括通過如下方式增加一條新的數(shù)據(jù): 獲取本地數(shù)據(jù)文件中最后一條已有數(shù)據(jù)的下一條數(shù)據(jù)的偏移量; 將所述偏移量和新增數(shù)據(jù)的關(guān)鍵字寫入本地索引文件中; 將新增的數(shù)據(jù)寫入本地數(shù)據(jù)文件的文件尾部。
      6.根據(jù)權(quán)利要求5所述的方法,其特征在于, 在將新增的數(shù)據(jù)寫入本地數(shù)據(jù)文件的文件尾部之前,所述方法還包括: 根據(jù)接收到的索引文件響應信息,確認將所述偏移量和關(guān)鍵字成功寫入本地索引文件中;以及, 根據(jù)本地數(shù)據(jù)文件中已存儲數(shù)據(jù)的關(guān)鍵字和新增數(shù)據(jù)的關(guān)鍵字,確認本地數(shù)據(jù)文件中不存在與新增的數(shù)據(jù)相同的已有數(shù)據(jù)。
      7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括通過如下方式對一條數(shù)據(jù)進行修改: 根據(jù)待修改數(shù)據(jù)的關(guān)鍵字從本地索引文件中獲取待修改數(shù)據(jù)的偏移量; 根據(jù)所獲取到的偏移量,確定待修改數(shù)據(jù)在本地數(shù)據(jù)文件中的位置; 對所確定位置處的待修改數(shù)據(jù)進行修改。
      8.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括通過如下方式刪除一條數(shù)據(jù): 根據(jù)待刪除數(shù)據(jù)的關(guān)鍵字從本地索引文件中獲取待刪除數(shù)據(jù)的偏移量之后,刪除本地索引文件中待刪除數(shù)據(jù)的偏移量; 根據(jù)所獲取到的偏移量,確定待刪除數(shù)據(jù)在本地數(shù)據(jù)文件中的位置,刪除所確定位置處的待刪除數(shù)據(jù),并保留本地數(shù)據(jù)文件中所確定位置處的存儲空間。
      9.一種數(shù)據(jù)管理系統(tǒng),其特征在于,所述系統(tǒng)包括本地文件數(shù)據(jù)庫和數(shù)據(jù)庫訪問裝置, 所述本地文件數(shù)據(jù)庫,創(chuàng)建存儲數(shù)據(jù)的本地數(shù)據(jù)文件,根據(jù)所述本地數(shù)據(jù)文件生成本地索引文件,所述本地索引文件包括每條數(shù)據(jù)在本地數(shù)據(jù)文件中位置信息; 所述數(shù)據(jù)庫訪問裝置,在接收到訪問請求時,根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息,以及,根據(jù)所 述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。
      10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述本地文件數(shù)據(jù)庫具體按照二叉樹結(jié)構(gòu)生成本地索引文件,所述二叉樹結(jié)構(gòu)中一個節(jié)點包括一條數(shù)據(jù)的關(guān)鍵字和該條數(shù)據(jù)在數(shù)據(jù)文件中相對于數(shù)據(jù)起始位置的偏移量,該偏移量為所述位置信息; 所述數(shù)據(jù)庫訪問裝置具體根據(jù)訪問請求中攜帶的關(guān)鍵字,在本地索引文件的二叉樹結(jié)構(gòu)中搜索得到所訪問數(shù)據(jù)的偏移量。
      全文摘要
      本發(fā)明公開了一種數(shù)據(jù)管理方法和數(shù)據(jù)管理系統(tǒng),能夠最大限度地降低數(shù)據(jù)訪問時服務(wù)器的內(nèi)存消耗,提高服務(wù)器的啟動速度,實現(xiàn)準確快速的數(shù)據(jù)訪問。本發(fā)明實施例提供的一種數(shù)據(jù)管理方法包括創(chuàng)建存儲數(shù)據(jù)的本地數(shù)據(jù)文件;根據(jù)本地數(shù)據(jù)文件生成本地索引文件,該本地索引文件包括每條數(shù)據(jù)在數(shù)據(jù)文件中位置信息;在接收到訪問請求時,根據(jù)訪問請求從本地索引文件中獲取所訪問數(shù)據(jù)的位置信息;根據(jù)所述位置信息在本地數(shù)據(jù)文件中訪問相應的數(shù)據(jù)。
      文檔編號G06F17/30GK103177026SQ20111043955
      公開日2013年6月26日 申請日期2011年12月23日 優(yōu)先權(quán)日2011年12月23日
      發(fā)明者張孝岐 申請人:北京新媒傳信科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1