一种数据存储及搜索方法技术

技术编号:2848132 阅读:235 留言:0更新日期:2012-04-11 18:40
一种数据存储方法包括:确定至少两个不同的哈希桶,将数据存储于数据链表中,每个数据均具有一个相应的关键值,其中,每个关键值经哈希函数的运算得到一个相应的哈希值,而每个哈希值对应有不同的数据链表,所述数据链表中的数据均包含于所述数据链表中。数据搜索方法包括:根据各哈希桶的不同的哈希函数,计算得到所要搜索数据的关键值所对应的各个哈希值,再根据所述哈希值确定其分别对应的数据链表,在所述确定的数据链表中选择其一进行数据搜索。通过具有不同哈希桶的哈希函数的计算而于数据链表中提取数据链表,再选择最佳数据链表进行数据搜索,该方法可有效提高数据量较大时系统的搜索效率,并提高系统的实时性。

【技术实现步骤摘要】

本专利技术涉及一种数据处理方法,更确切地讲,本专利技术涉及一种数据的存储及搜索方法。
技术介绍
目前,数据通讯技术飞速发展,对数据量的要求亦日益增大,由此推动了存储技术的发展,使数据的大容量存储成为可能。比如,通过将路由器等网络产品的各种转发表项的规模不断扩大即可实现大量数据的存储。另一方面,在对所存储的大量数据进行搜索时,搜索算法的优劣直接影响到所存储的大量数据的利用效率及存储数据的数据结构合理程度,不合理的数据结构及低效的搜索算法会降低所存储数据的应用价值。如在路由产品中,相关转发表项的搜索效率可直接影响到产品的性能指标。在存储方面,对于不是特别大的数据量时,一般采用链表式的存储结构,在搜索时,采用简单的逐项比较关键值的方法进行搜索。但当数据量很大时,链表的长度也会较长,这样会导致上述搜索算法的性能严重下降,从而使得系统的实时性变差。另外,还可以采用哈希算法与链表相结合的方案,实现原理如图1所示。以每个要搜索的数据项的关键值作为输入,计算出的哈希值作为链表的索引,然后在锁定的链表中进行数据搜索。该方法虽然比所述简单的链表方案有所改进,但当数据条目数量很大时,链表的长度也很长,本文档来自技高网...

【技术保护点】
一种数据存储方法,其特征在于,该方法包括:确定至少两个哈希桶;根据待存储数据的关键值以及各个哈希桶的哈希函数计算确定各个哈希桶中该待存储数据对应的哈希值;确定各哈希桶中相应哈希值对应的数据链表;将数据存储于该 数据关键值确定的各哈希桶中相应哈希值对应的数据链表中。

【技术特征摘要】
1.一种数据存储方法,其特征在于,该方法包括确定至少两个哈希桶;根据待存储数据的关键值以及各个哈希桶的哈希函数计算确定各个哈希桶中该待存储数据对应的哈希值;确定各哈希桶中相应哈希值对应的数据链表;将数据存储于该数据关键值确定的各哈希桶中相应哈希值对应的数据链表中。2.根据权利要求1所述的数据存储方法,其特征在于,所述哈希桶采用不同的哈希函数。3.根据权利要求1或2所述的数据存储方法,其特征在于,所述数据链表为单向链表结构、双向链表结构、树形结构或图形结构。4.一种数据搜索方法,其特征在于,该方法包括根据各哈希桶的哈希函数以及待搜索的数据的关键值计算得到各哈希桶中该待搜索的数据对应的哈希值;根据所述哈希值确定各哈希桶中该哈希值对应的数据链表;从所述确...

【专利技术属性】
技术研发人员:丁兆坤
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1