字符串存储、检索方法及装置制造方法及图纸

技术编号:15690926 阅读:50 留言:0更新日期:2017-06-24 03:42
本申请提供字符串存储、检索方法及装置,所述方法包括:将待存储的字符串分解为单个的字符,得到字符集合;将所述字符集合的第一个字符确定为当前字符,将预设的存储结构的第一级节点确定为当前节点;步骤130:判断所述当前节点中是否存在所述当前字符;在所述当前节点中不存在所述当前字符的情况下,在所述当前节点的父节点后新增一个子节点,并在所述新增的子节点中写入所述当前字符;将所述当前字符的下一个字符确定为当前字符,将所述当前节点的下一级节点确定为当前节点,重复执行步骤130,直至所述字符集合中的字符都判断完毕。应用本申请实施例,可以实现减少存储的字符串占用的内存大小。

String storage and retrieval method and device

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:在所述当前节点中不存在所述当前字符的情况下,在所述当前节点的父节点后新增一个子节点,并在所述新增的子节点中写入所述当前字符;步骤150:将所述当前字符的下一个字符确定为当前字符,将所述当前节点的下一级节点确定为当前节点,重复执行步骤130,直至所述字符集合中的字符都判断完毕。可选的,在所述步骤130之后,所述方法还包括:在所述当前节点中存在所述当前字符的情况下,执行步骤150。可选的,所述步骤140,具体包括:步骤141:在所述当前节点中不存在所述当前字符,并且所述当前节点不为第一级节点的情况下,在所述当前节点的父节点后新增一个子节点,并在所述新增的子节点中写入所述当前字符,执行步骤150;或者,步骤142:在所述当前节点中不存在所述当前字符,并且所述当前节点为第一级节点的情况下,新增一个第一级节点,将所述当前字符写入该第一级节点中;步骤143:将所述新增的节点确定为当前节点,将所述当前字符后一个字符确定为当前字符;步骤144:在所述当前节点后新增一个节点,并将所述当前字符写入该新增的节点中,重复执行步骤143,直至所述字符集合中的字符都存储完毕。根据本申请实施例提供的一种字符串检索方法,所述方法包括:步骤210:接收传入的字符串;步骤220:将所述字符串分解为单个的字符,得到字符集合;步骤230:将所述字符集合的第一个字符确定为当前字符,将预设的存储结构的第一级节点确定为当前节点;其中,所述存储结构由若干级节点构成,每个节点用于存储一个字符,且第n级节点用于存储字符串的第n个字符;步骤240:判断所述当前节点中是否存在所述当前字符;步骤250:在所述当前节点中不存在所述当前字符的情况下,输出所述字符串不存在的检索结果。可选的,所述方法还包括:在所述当前节点中存在所述当前字符的情况下,将所述当前字符的下一个字符确定为当前字符,将所述当前节点的下一级节点确定为当前节点,重复执行步骤240。可选的,所述步骤250,具体包括:在所述当前节点中不存在所述当前字符的情况下,在数据库中检索所述字符串是否存在;在数据库中也没有检索到所述字符串的情况下,输出所述字符串不存在的检测结果。根据本申请实施例提供的一种字符串存储装置,所述装置包括:分解单元,将待存储的字符串分解为单个的字符,得到字符集合;处理单元,将所述字符集合的第一个字符确定为当前字符,将预设的存储结构的第一级节点确定为当前节点;其中,所述存储结构由若干级节点构成,每个节点用于存储一个字符,且第n级节点用于存储字符串的第n个字符;判断单元,判断所述当前节点中是否存在所述当前字符;存储单元,在所述当前节点中不存在所述当前字符的情况下,在所述当前节点的父节点后新增一个子节点,并在所述新增的子节点中写入所述当前字符;重复判断单元,将所述当前字符的下一个字符确定为当前字符,将所述当前节点的下一级节点确定为当前节点,输入到所述判断单元,直至所述字符集合中的字符都判断完毕。可选的,所述重复判断单元还包括:在所述当前节点中存在所述当前字符的情况下,将所述当前字符的下一个字符确定为当前字符,将所述当前节点的下一级节点确定为当前节点,输入到所述判断单元,直至所述字符集合中的字符都判断完毕。可选的,所述存储单元,具体包括:第一存储子单元,在所述当前节点中不存在所述当前字符,并且所述当前节点不为第一级节点的情况下,在所述当前节点的父节点后新增一个子节点,并在所述新增的子节点中写入所述当前字符,执行所述重复判断单元;或者,第二存储子单元,在所述当前节点中不存在所述当前字符,并且所述当前节点为第一级节点的情况下,新增一个第一级节点,将所述当前字符写入该第一级节点中;第三存储子单元,将所述新增的节点确定为当前节点,将所述当前字符后一个字符确定为当前字符;第四存储子单元,在所述当前节点后新增一个节点,并将所述当前字符写入该新增的节点中,执行所述第三存储子单元,直至所述字符集合中的字符都存储完毕。根据本申请实施例提供的一种字符串检索装置,所述装置包括:接收单元,接收传入的字符串;分解单元,将所述字符串分解为单个的字符,得到字符集合;处理单元,将所述字符集合的第一个字符确定为当前字符,将预设的存储结构的第一级节点确定为当前节点;其中,所述存储结构由若干级节点构成,每个节点用于存储一个字符,且第n级节点用于存储字符串的第n个字符;检索单元,判断所述当前节点中是否存在所述当前字符;检索结果单元,在所述当前节点中不存在所述当前字符的情况下,输出所述字符串不存在的检索结果。可选的,所述装置还包括:重复检索单元,在所述当前节点中存在所述当前字符的情况下,将所述当前字符的下一个字符确定为当前字符,将所述当前节点的下一级节点确定为当前节点,输入到所述检索单元。可选的,所述检索结果单元,具体包括:第一检索结果子单元,在所述当前节点中不存在所述当前字符的情况下,在数据库中检索所述字符串是否存在;第二检索结果子单元,在数据库中也没有检索到所述字符串的情况下,输出所述字符串不存在的检测结果。本申请实施例中,通过在存储字符串的过程中,在当前字符已经存在于当前节点中的情况下,不存储该当前字符,而是共用当前节点。如此,由于每一级节点对于相同的字符只需存储一次,所以整体上本存储结构占用的内存空间相比现有技术中的要小。附图说明图1是本申请一实施例提供的字符串存储方法的流程图;图2是本申请提供的存储结构的示意图;图3是本申请提供的一个待存储的字符串的存储过程示意图;图4是本申请提供的另一个待存储的字符串的存储过程示意图;图5是本申请一实施例提供的字符串存储方法的流程图;图6是本申请提供的又一个待存储的字符串的存储过程示意图;图7是本申本文档来自技高网...
字符串存储、检索方法及装置

【技术保护点】
一种字符串存储方法,其特征在于,所述方法包括:步骤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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1