内存数据读写方法和装置制造方法及图纸

技术编号:18445179 阅读:36 留言:0更新日期:2018-07-14 10:29
本发明专利技术提出一种内存数据读写方法和装置,其中,内存数据写入方法包括:获取内存中需写入的第一数据,将第一数据作为最后访问的数据,存储在哈希表中,若哈希表的存储空间不足,从哈希表中删除最先访问的第二数据,将第二数据存储至有序表中。通过建立哈希表和有序表两种存储方式,实现了针对不同数据采用不同存储方式,提高了数据访问效率,解决了相关技术中,内存中数据的存储只支持建立最近最少使用缓存(LRU cache)的方式对访问频率较高的数据进行存储,或者是采用依据索引顺序的有序表进行存储,但LRU cache方式对访问频率较低的数据访问速度较慢,而有序表方式对访问频率较高的数据命中率较差,致使内存的数据访问效率较低的问题。

Memory data reading and writing methods and devices

The present invention provides a method and device for reading and writing memory data, in which the memory data writing method includes: obtaining first data to be written in memory, storing the first data as the last accessed data, stored in a hash table, and removing the first second data from the hash table if the hash table's storage space is insufficient. Store second data in an ordered table. By setting up two storage modes of hash table and ordered table, the data access efficiency is improved by using different storage methods for different data. In the related technology, the storage of data in memory only supports the establishment of the latest least use cache (LRU cache) to store the data with high access frequency. The users are using the ordered table in the index order to store, but the LRU cache mode has a slower access speed to the lower access frequency, while the ordered table mode has a poor data hit rate to the high frequency of the access frequency, which leads to the low efficiency of the memory data access.

【技术实现步骤摘要】
内存数据读写方法和装置
本专利技术涉及计算机数据存储
,尤其涉及一种内存数据读写方法和装置。
技术介绍
计算机设备内设置的内存,用于存储数据,其相较于磁盘具有高速的数据读写能力。为了满足处理器实现高速数据访问和处理的需求,需要将部分数据存储在计算机设备的内存中。相关技术中,内存中的数据存储采用最近最少使用缓存(LastRecentlyUsedcache,LRUcache)的存储方式对访问频率较高的数据进行存储,或者是依据索引顺序的有序表进行存储。LRUcache对于频繁访问的热点数据命中率较高,但非热点数据访问速度较慢;有序表存储的方式尽管相较于LRUcache提高了非热点数据的访问速度,但对于热点数据访问速度较慢。因此,内存访问效率较低。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术提出一种内存数据写入方法,内存采用具有访问顺序的哈希表以及有序表两种方式进行存储,针对热点数据采用具有访问顺序的哈希表进行存储,针对非热点数据采用有序表进行存储。通过将需要写入的第一数据作为最后访问的数据存储在哈希表中,而将哈希表中删除的最先访问的第二数据顺序存储至有序表中,针对不同数据采用了不同存储方式,提高了数据访问效率。本专利技术提出一种内存数据读取方法。本专利技术提出一种内存数据写入装置。本专利技术提出一种内存数据读取装置。本专利技术提出一种计算机设备。本专利技术提出一种计算机可读存储介质。本专利技术第一方面实施例提出了一种内存数据写入方法,包括:获取内存中需写入的第一数据;将所述第一数据作为最后访问的数据,存储在哈希表中;其中,所述哈希表中的各条数据具有访问先后顺序;若所述哈希表的存储空间不足,从所述哈希表中删除最先访问的第二数据;将所述第二数据存储至有序表中。本专利技术实施例的一种内存数据写入方法中,获取内存中需写入的第一数据,将第一数据作为最后访问的数据,存储在哈希表中,若哈希表的存储空间不足,从哈希表中删除最先访问的第二数据,将第二数据存储至有序表中。通过将需要写入的第一数据作为最后访问的数据存储在哈希表中,而将哈希表中删除的最先访问的第二数据顺序存储至有序表中,针对不同数据采用了不同存储方式,提高了数据访问效率,解决了相关技术中,内存中数据的存储只支持建立最近最少使用缓存(LRUcache)的方式对访问频率较高的数据进行存储,或者是采用依据索引顺序的有序表进行存储,但LRUcache方式对访问频率较低的数据访问速度较慢,而有序表方式对访问频率较高的数据命中率较差,致使内存的数据访问效率较低的问题。本专利技术第二方面实施例提出了一种内存数据读取方法,包括:根据查询信息,在设置于内存的哈希表中,查询与所述查询信息匹配的匹配数据;其中,所述哈希表中的各条数据具有访问先后顺序;若未在所述哈希表中查询到所述匹配数据,在设置于内存的有序表中继续查询所述匹配数据;在所述有序表中查询到所述匹配数据时,对所述匹配数据进行读取;将读取到的所述匹配数据作为最后访问的数据,存储在所述哈希表中。本专利技术实施例的内存数据读取方法中,根据查询信息,在设置于内存的哈希表中,查询与查询信息匹配的匹配数据,若哈希表中未查询到匹配数据,在设置于内存的有序表中继续查询匹配数据,在有序表中查询到匹配数据时,对匹配数据进行读取,并将读取到的匹配数据作为最后访问的数据,存储在哈希表中。通过在内存中设置哈希表存储访问频率较高的数据,并设置有序表顺序存储哈希表中删除的访问频率较低的数据,针对不同数据采用了不同的存储方式,提高了数据的查询效率。本专利技术第三方面实施例提出了一种内存数据写入装置,该装置包括:获取模块,用于获取内存中需写入的第一数据;第一存储模块,用于将所述第一数据作为最后访问的数据,存储在哈希表中;其中,所述哈希表中的各条数据具有访问先后顺序;删除模块,用于若所述哈希表的存储空间不足,从所述哈希表中删除最先访问的第二数据;第二存储模块,用于将所述第二数据存储至有序表中。本专利技术实施例的一种内存数据写入装置中,获取模块用于获取内存中需写入的第一数据,第一存储模块用于将第一数据作为最后访问的数据,存储在哈希表中,删除模块用于若哈希表的存储空间不足,从哈希表中删除最先访问的第二数据,第二存储模块用于将第二数据存储至有序表中,通过在内存中设置哈希表存储访问频率较高的数据,并设置有序表顺序存储哈希表中删除的访问频率较低的数据,针对不同数据采用了不同的存储方式,提高了数据的查询效率。本专利技术第四方面实施例提出了一种内存数据读取装置,该装置包括:查询模块,用于根据查询信息,在设置于内存的哈希表中,查询与所述查询信息匹配的匹配数据;其中,所述哈希表中的各条数据具有访问先后顺序;若未在所述哈希表中查询到所述匹配数据,在设置于内存的有序表中继续查询所述匹配数据;读取模块,用于在所述有序表中查询到所述匹配数据时,对所述匹配数据进行读取;存储模块,用于将读取到的所述匹配数据作为最后访问的数据,存储在所述哈希表中。本专利技术实施例的内存数据读取装置中,查询模块用于根据查询信息,在设置于内存的哈希表中,查询与查询信息匹配的匹配数据,若哈希表中未查询到匹配数据,在设置于内存的有序表中继续查询匹配数据,读取模块用于在有序表中查询到匹配数据时,对匹配数据进行读取,存储模块用于将读取到的匹配数据作为最后访问的数据,存储在哈希表中。通过在内存中设置哈希表存储访问频率较高的数据,并设置有序表顺序存储哈希表中删除的访问频率较低的数据,针对不同数据采用了不同的存储方式,提高了数据的查询效率。本专利技术第五方面实施例提出了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如第一方面实施例所述的内存数据写入方法,或者,实现如第二方面实施例所述的内存数据读取方法。本专利技术第六方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如第一方面实施例所述的内存数据写入方法,或者,实现如第二方面实施例所述的内存数据读取方法。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本专利技术实施例所提供的一种内存数据读写系统的结构示意图;图2为本专利技术实施例所提供的一种内存数据写入方法的流程示意图;图3为本专利技术实施例所提供的另一种内存数据写入方法的流程示意图;图4为本专利技术实施例所提供的跳跃表中节点的结构示意图;图5为本专利技术实施例所提供的跳跃表的示意图;图6为本专利技术实施例所提供的一种内存数据读取方法的流程示意图;图7为本专利技术实施例所提供的另一种内存中数据读取方法的流程示意图;图8为本专利技术实施例所提供的一种内存数据写入装置的结构示意图;图9为本专利技术实施例所提供的另一种内存数据写入装置的结构示意图;图10为本专利技术实施例所提供的一种内存数据读取装置的结构示意图;以及图11为本专利技术实施例所提供的另一种内存数据读取装置的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的本文档来自技高网...

【技术保护点】
1.一种内存数据写入方法,其特征在于,所述方法包括以下步骤:获取内存中需写入的第一数据;将所述第一数据作为最后访问的数据,存储在哈希表中;其中,所述哈希表中的各条数据具有访问先后顺序;若所述哈希表的存储空间不足,从所述哈希表中删除最先访问的第二数据;将所述第二数据存储至有序表中。

【技术特征摘要】
1.一种内存数据写入方法,其特征在于,所述方法包括以下步骤:获取内存中需写入的第一数据;将所述第一数据作为最后访问的数据,存储在哈希表中;其中,所述哈希表中的各条数据具有访问先后顺序;若所述哈希表的存储空间不足,从所述哈希表中删除最先访问的第二数据;将所述第二数据存储至有序表中。2.根据权利要求1所述的内存数据写入方法,其特征在于,所述有序表包括跳跃表,所述将所述第二数据存储至有序表中,包括:在所述跳跃表的各节点对应的已存储数据中,查询与所述第二数据的索引相同的目标数据;所述跳跃表包括第一链表,所述第一链表中各节点的顺序根据对应已存储数据的索引排序得到;若查询到所述目标数据,在第二链表头部插入对应所述第二数据的节点;其中,所述第二链表,是链接在第一链表对应所述目标数据的节点上的链表;若未查询到所述目标数据,将对应所述第二数据的节点插入所述第一链表。3.根据权利要求2所述的内存数据写入方法,其特征在于,所述索引包括作为一级索引的主键和/或作为二级索引的行主键;其中,所述行主键中包括至少两个主键时,所述行主键中至少两个主键的取值串联为一个字符串。4.根据权利要求1-3任一项所述的内存数据写入方法,其特征在于,所述将所述第一数据作为最后访问的数据,存储在哈希表中,包括:建立所述第一数据的索引;根据所述第一数据的索引,将哈希后的所述第一数据存储至所述哈希表;在双向循环链表LRU链表的头部插入对应所述第一数据的节点;所述LRU链表用于指示所述哈希表中各条数据的访问先后顺序。5.根据权利要求1-3任一项所述的内存数据写入方法,其特征在于,所述将所述第二数据存储至有序表中之后,还包括:若所述有序表的存储空间不足,将所述有序表中的已存储数据转存至磁盘中。6.一种内存数据读取方法,其特征在于,所述方法包括以下步骤:根据查询信息,在设置于内存的哈希表中,查询与所述查询信息匹配的匹配数据;其中,所述哈希表中的各条数据具有访问先后顺序;若未在所述哈希表中查询到所述匹配数据,在设置于内存的有序表中继续查询所述匹配数据;在所述有序表中查询到所述匹配数据时,对所述匹配数据进行读取;将读取到的所述匹配数据作为最后访问的数据,存储在所述哈希表中。7.根据权利要求6所述的内存数据读取方法,其特征在于,所述根据查询信息,在设置于内存的哈希表中,查询与所述查询信息匹配的匹配数据之后,还...

【专利技术属性】
技术研发人员:山宝银刘豪余豪阳刘昕钟科赵政
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1