This application provides a string storage and retrieval method and device, the method includes: a string to be stored into a single character, character set; the first character of the character set to determine the current character, the storage structure of the preset first level node as the current node; step 130: determine whether the presence of the current character of the current node; does not exist in the current node in the current character under the condition of a new child node in the parent node of the current node, node and add in the writing of the current character; the next character of the current the character is determined as the character, the next level node of the current node identified as the current node, repeat step 130, until the character set of characters will determine the end. The memory size of the stored string can be reduced by applying the embodiment of the present application.
【技術實現步驟摘要】
字符串存儲、檢索方法及裝置
本申請涉及計算機
,尤其涉及字符串存儲、檢索方法及裝置。
技術介紹
隨著計算機及互聯網的不斷發展,網絡上每時每刻都會產生海量的數據。一般的,網絡中的服務器需要對用戶提交的數據進行存儲,從而便于用戶查看歷史記錄或者用于進行大數據分析等。具體地,所述服務器會對傳入的字符串進行檢索,從而確定所述傳入的字符串是否已經存在,服務器需要將不存在的字符串進行存儲。通常,服務器進行檢索的方法,是將傳入的字符串在內存中進行檢索,內存中存儲有已經檢索過的字符串;如果檢索到該傳入的字符串不存在,那么需要將該字符串也存儲到內存中。現有技術中,在存儲字符串時,是將每一個字符串單獨進行緩存的,不同字符串之間并無關聯。然而,這樣就會存在緩存的字符串占用較多內存的問題;特別是在緩存的字符串較多的情況下,容易造成占用較多內存,從而會由內存不足產生各種問題,例如檢索效率低,檢索時間長,服務器卡頓,死機、甚至崩潰等。
技術實現思路
本申請提供字符串存儲、檢索方法及裝置,以解決現有存在存儲的字符串占用較多內存的問題。根據本申請實施例提供的一種字符串存儲方法,所述方法包括:步驟110:將待存儲的字符串分解為單個的字符,得到字符集合;步驟120:將所述字符集合的第一個字符確定為當前字符,將預設的存儲結構的第一級節點確定為當前節點;其中,所述存儲結構由若干級節點構成,每個節點用于存儲一個字符,且第n級節點用于存儲字符串的第n個字符;步驟130:判斷所述當前節點中是否存在所述當前字符;步驟140:在所述當前節點中不存在所述當前字符的情況下,在所述當前節點的父節點后新增一個子 ...
【技術保護點】
一種字符串存儲方法,其特征在于,所述方法包括:步驟110:將待存儲的字符串分解為單個的字符,得到字符集合;步驟120:將所述字符集合的第一個字符確定為當前字符,將預設的存儲結構的第一級節點確定為當前節點;其中,所述存儲結構由若干級節點構成,每個節點用于存儲一個字符,且第n級節點用于存儲字符串的第n個字符;步驟130:判斷所述當前節點中是否存在所述當前字符;步驟140:在所述當前節點中不存在所述當前字符的情況下,在所述當前節點的父節點后新增一個子節點,并在所述新增的子節點中寫入所述當前字符;步驟150:將所述當前字符的下一個字符確定為當前字符,將所述當前節點的下一級節點確定為當前節點,重復執行步驟130,直至所述字符集合中的字符都判斷完畢。
【技術特征摘要】
1.一種字符串存儲方法,其特征在于,所述方法包括:步驟110:將待存儲的字符串分解為單個的字符,得到字符集合;步驟120:將所述字符集合的第一個字符確定為當前字符,將預設的存儲結構的第一級節點確定為當前節點;其中,所述存儲結構由若干級節點構成,每個節點用于存儲一個字符,且第n級節點用于存儲字符串的第n個字符;步驟130:判斷所述當前節點中是否存在所述當前字符;步驟140:在所述當前節點中不存在所述當前字符的情況下,在所述當前節點的父節點后新增一個子節點,并在所述新增的子節點中寫入所述當前字符;步驟150:將所述當前字符的下一個字符確定為當前字符,將所述當前節點的下一級節點確定為當前節點,重復執行步驟130,直至所述字符集合中的字符都判斷完畢。2.根據權利要求1所述的方法,其特征在于,在所述步驟130之后,所述方法還包括:在所述當前節點中存在所述當前字符的情況下,執行步驟150。3.根據權利要求1所述的方法,其特征在于,所述步驟140,具體包括:步驟141:在所述當前節點中不存在所述當前字符,并且所述當前節點不為第一級節點的情況下,在所述當前節點的父節點后新增一個子節點,并在所述新增的子節點中寫入所述當前字符,執行步驟150;或者,步驟142:在所述當前節點中不存在所述當前字符,并且所述當前節點為第一級節點的情況下,新增一個第一級節點,將所述當前字符寫入該第一級節點中;步驟143:將所述新增的節點確定為當前節點,將所述當前字符后一個字符確定為當前字符;步驟144:在所述當前節點后新增一個節點,并將所述當前字符寫入該新增的節點中,重復執行步驟143,直至所述字符集合中的字符都存儲完畢。4.一種字符串檢索方法,其特征在于,所述方法包括:步驟210:接收傳入的字符串;步驟220:將所述字符串分解為單個的字符,得到字符集合;步驟230:將所述字符集合的第一個字符確定為當前字符,將預設的存儲結構的第一級節點確定為當前節點;其中,所述存儲結構由若干級節點構成,每個節點用于存儲一個字符,且第n級節點用于存儲字符串的第n個字符;步驟240:判斷所述當前節點中是否存在所述當前字符;步驟250:在所述當前節點中不存在所述當前字符的情況下,輸出所述字符串不存在的檢索結果。5.根據權利要求4所述的方法,其特征在于,所述方法還包括:在所述當前節點中存在所述當前字符的情況下,將所述當前字符的下一個字符確定為當前字符,將所述當前節點的下一級節點確定為當前節點,重復執行步驟240。6.根據權利要求4所述的方法,其特征在于,所述步驟250,具體包括:在所述當前節點中不存在所述當前字符的情況下,在數據庫中檢索所述字符串是否存在;在數據庫中也沒有檢索到所述字符串的情況下,輸出所述字符串不存在的檢測結果。7.一種字符串存儲裝置,其特征在于,所述裝置包括:分解單元,將待存儲的字符串分解為單個的字符,...
【專利技術屬性】
技術研發人員:李錫銘,
申請(專利權)人:阿里巴巴集團控股有限公司,
類型:發明
國別省市:開曼群島,KY
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。