本发明专利技术涉及一种数据存储方法及装置,该数据存储方法包括步骤:根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数据;以及采用普通哈希表方式存储高访问率数据,采用索引链表方式存储低访问率数据。本发明专利技术还涉及一种数据存储装置。本发明专利技术的数据存储方法及装置根据存储数据的访问频率采用不同的方式进行存储,从而在内存有效使用率方面和系统读取性能方面的性能都较高。
【技术实现步骤摘要】
本专利技术涉及计算机
,特别是涉及一种高效的数据存储方法及装置。
技术介绍
随着计算机硬件技术的发展,特别是内存容量的增加,系统希望可以将全部用户的数据都加载在到内存中,以提高系统的读写访问性能。现有的内存数据存储方法可分为两种:普通哈希表(Hash)以及索引链表(Index+Link)。两种存储方法都可提供高性能的数据访问能力。在数据存储上,普通哈希表通常要求某个用户的存储数据是定长的,对于非定长的存储数据,普通哈希表也以存储数据的最大长度分配存储空间;这样如非定长的存储数据过多,会在一定程度上降低内存的有效使用率。索引链表能够以可变的存储空间存储非定长的存储数据,提高了内存的有效使用率,但在读取索引链表中的任何存储数据时,通常需要完整的读取整个链表结构并进行解析;这样在进行索引链表中存储数据的读取和解析时,会涉及到内存中大量存储数据的拷贝,从而影响系统的读取性能。故,有必要提供一种数据存储方法及装置,以解决现有技术所存在的问题。
技术实现思路
本专利技术的目的在于提供一种提高内存有效使用率和系统读取性能的数据存储方法及装置。解决了现有的数据存储方法及装置的内存有效使用率较低或系统读取性能较低的技术问题。为解决上述问题,本专利技术提供的技术方案如下:本专利技术涉及一种数据存储方法,其包括步骤:根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数据;以及采用普通哈希表方式存储所述高访问率数据,采用索引链表方式存储所述低访问率数据。在本专利技术所述的数据存储方法中,所述根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数据的步骤具体为:将所述访问频率大于所有存储数据的平均访问频率的存储数据设定为所述高访问率数据,将所述访问频率小于所有存储数据的平均访问频率的存储数据设定为所述低访问率数据。在本专利技术所述的数据存储方法中,所述数据存储方法还包括步骤:在所述高访问率数据中设置指向相应用户的所述低访问率数据的指针。在本专利技术所述的数据存储方法中,所述指针设置在所述高访问率数据的尾部。在本专利技术所述的数据存储方法中,每个用户的所述高访问率数据为定长数据,每个用户的所述低访问率数据为非定长数据。本专利技术还涉及一种数据存储装置,其包括:数据划分模块,用于根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数据;以及数据存储模块,用于采用普通哈希表方式存储所述高访问率数据,采用索引链表方式存储所述低访问率数据。在本专利技术所述的数据存储装置中,所述数据划分模块具体用于将所述访问频率大于所有存储数据的平均访问频率的存储数据设定为所述高访问率数据,将所述访问频率小于所有存储数据的平均访问频率的存储数据设定为所述低访问率数据。在本专利技术所述的数据存储装置中,所述数据存储装置还包括:关联模块,用于在所述高访问率数据中设置指向相应用户的所述低访问率数据的指针。在本专利技术所述的数据存储装置中,所述关联模块用于在所述高访问率数据的尾部设置指向相应用户的所述低访问率数据的指针。在本专利技术所述的数据存储装置中,每个用户的所述高访问率数据为定长数据,每个用户的所述低访问率数据为非定长数据。相较于现有技术,本专利技术的数据存储方法及装置根据存储数据的访问频率采用不同的方式进行存储,从而提高了内存有效使用率和系统读取性能。解决了现有的数据存储方法及装置的内存有效使用率较低或系统读取性能较低的技术问题。为让本专利技术的上述内容能更明显易懂,下文特举优选实施例,并配合所附图式,作详细说明如下:附图说明图1为本专利技术所述的数据存储方法的优选实施例的流程图;图2为本专利技术所述的数据存储方法的优选实施例中的存储数据的存储方式的示意图;图3为本专利技术所述的数据存储装置的优选实施例的结构示意图;其中,附图标记说明如下:31、数据划分模块;32、数据存储模块;33、关联模块。具体实施方式以下各实施例的说明是参考附加的图式,用以例示本专利技术可用以实施的特定实施例。本专利技术所提到的方向用语,例如「上」、「下」、「前」、「后」、「左」、「右」、「内」、「外」、「侧面」等,仅是参考附加图式的方向。因此,使用的方向用语是用以说明及理解本专利技术,而非用以限制本专利技术。在图中,结构相似的单元是以相同标号表示。如图1所示,图1为本专利技术所述的数据存储方法的优选实施例的流程图。该数据存储方法开始于:步骤101,根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数据;步骤102,采用普通哈希表方式存储高访问率数据,采用索引链表方式存储低访问率数据;步骤103,在高访问率数据中设置指向相应用户的低访问率数据的指针;该数据存储方法结束于步骤103。下面根据图2详细说明本专利技术的数据存储方法的各步骤的流程,图2为本专利技术所述的数据存储方法的优选实施例中的存储数据的存储方式的示意图。在步骤101中,获取所有存储数据(这里的存储数据按业务进行分类)的访问频率,该访问频率可以通过检测实际访问频率得到,也可通过存储数据的设计要求得到(即设计者希望的访问频率)。然后根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数据,具体可为:计算所有存储数据的平均访问频率,将访问频率大于该平均访问频率的存储数据设定为高访问率数据,将访问频率小于该平均访问频率的存储数据设定为低访问量数据等。如计算得到平均访问频率为1000次/秒,则访问频率大于1000次/秒的存储数据设定为高访问率数据,访问频率小于1000次/秒的存储数据设定为低访问率数据。存储数据的访问频率的划分方法可有多种,因此采用不同的存储数据的访问频率的划分方法并不限制本专利技术的保护范围。随后来到步骤102。在步骤102中,采用普通哈希表方式存储每个用户的高访问率数据,采用索引链表方式存储每个用户的低访问率数据。其中采用普通哈希表方式存储的高访问率数据为定长数据,其访问频率较高,且用户占有基数较大(即基本所有用户访问时都会读取上述的高访问率数据);而采用索引链表方式存储的数据为非定长数据,其访问频率较低,或只有小部分用户才会读取该数据。具体的存储数据的存储方式如图2所示,其中用户D1和用户D2的业务数据(存储数据)被划分本文档来自技高网...
【技术保护点】
一种数据存储方法,其特征在于,包括步骤:根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数据;以及采用普通哈希表方式存储所述高访问率数据,采用索引链表方式存储所述低访问率数据。
【技术特征摘要】
1.一种数据存储方法,其特征在于,包括步骤:
根据存储数据的访问频率将每个用户的存储数据划分为高访问率数据
和低访问率数据;以及
采用普通哈希表方式存储所述高访问率数据,采用索引链表方式存储
所述低访问率数据。
2.根据权利要求1所述的数据存储方法,其特征在于,所述根据存储数据
的访问频率将每个用户的存储数据划分为高访问率数据和低访问率数
据的步骤具体为:
将所述访问频率大于所有存储数据的平均访问频率的存储数据设定为
所述高访问率数据,将所述访问频率小于所有存储数据的平均访问频
率的存储数据设定为所述低访问率数据。
3.根据权利要求1所述的数据存储方法,其特征在于,所述数据存储方法
还包括步骤:
在所述高访问率数据中设置指向相应用户的所述低访问率数据的指针
。
4.根据权利要求3所述的数据存储方法,其特征在于,所述指针设置在所
述高访问率数据的尾部。
5.根据权利要求1所述的数据存储方法,其特征在于,每个用户的所述高
访问率数据为定长数据,每个用户的所述低访问率数据为非定长数据
。
6.一...
【专利技术属性】
技术研发人员:李钟伟,田明,
申请(专利权)人:腾讯科技北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。