掌桥专利:专业的专利平台
掌桥专利
首页

数据读取方法、装置和电子设备

文献发布时间:2023-06-19 11:29:13


数据读取方法、装置和电子设备

技术领域

本发明涉及数据处理技术领域,尤其是涉及一种数据读取方法、装置和电子设备。

背景技术

数据在磁盘中保存不易丢失,但是从磁盘中访问数据的速度较慢。为了加速数据访问,一般做法是先将数据从磁盘预先加载到缓存中,在访问数据时直接从缓存中读取数据,从而提高数据的读写速度。

然而,现有技术中一般会将所有可能被读取的数据全部预先加载到缓存中,如果加载到缓存中的数据过多,在读取数据时需要花费较长的时间从缓存中查找数据,从而减少数据的读写速度。

发明内容

有鉴于此,本发明的目的在于提供一种数据读取方法、装置和电子设备,以提高数据的读写速度。

第一方面,本发明实施例提供了一种数据读取方法,方法应用于电子设备;电子设备的缓存包括多个层级的存储单元;其中,第N+1层存储单元的数据容纳量大于第N层存储单元的数据容纳量;最后一层存储单元存储有缓存的全部数据;方法包括:接收携带有目标数据标识的查找请求;按照层级由小到大的顺序从存储单元中查找标识对应的目标数据;将目标数据返回至查找请求的发送方。

在本发明较佳的实施例中,上述按照层级由小到大的顺序从存储单元中查找标识对应的目标数据的步骤,包括:按照层级由小到大的顺序确定第K层存储单元;其中,K代表缓存中首次查找标识对应的目标数据的缓存单元的层级;从第K层存储单元中查找标识对应的目标数据;如果从第K层存储单元中查找标识对应的目标数据失败,从第K+1层存储单元中查找标识对应的目标数据,直至从最后一层存储单元中查找标识对应的目标数据。

在本发明较佳的实施例中,上述按照层级由小到大的顺序从存储单元中查找标识对应的目标数据的步骤之后,方法还包括:将目标数据写入缓存的每个存储单元中。

在本发明较佳的实施例中,从第M层存储单元中查找到目标数据;其中,M代表缓存中查找到目标数据的存储单元的层级;上述将目标数据写入缓存的每个存储单元中的步骤,包括:将目标数据写入缓存的目标缓存单元中;其中,目标缓存单元为第1层存储单元至第M-1层存储单元中的至少一个存储单元。

在本发明较佳的实施例中,上述将目标数据写入缓存的每个存储单元中的步骤,包括:如果存储单元中存储的数据量小于存储单元的数据容纳量,将目标数据写入存储单元中;如果存储单元中存储的数据量等于存储单元的数据容纳量,将目标数据替换存储单元中的已存储数据。

在本发明较佳的实施例中,上述将目标数据替换存储单元中的已存储数据的步骤,包括:按照预先设定的存储规则,确定目标数据的第一存储位置;将目标数据替换第一存储位置上的已存储数据。

在本发明较佳的实施例中,从第二存储位置查找到目标数据;上述按照预先设定的存储规则,确定目标数据的第一存储位置的步骤,包括:按照预先设定的存储规则,确定第二存储位置对应的第一存储位置。

在本发明较佳的实施例中,上述目标数据替换存储单元中的已存储数据的步骤,包括:从存储单元中随机选择第三存储位置,将目标数据替换第三存储位置上的已存储数据。

在本发明较佳的实施例中,上述接收目标数据的查找请求的步骤之后,方法还包括:记录目标数据的查找时刻;上述将目标数据替换存储单元中的已存储数据的步骤,包括:确定存储单元中查找时刻最早的数据;将目标数据替换查找时刻最早的数据。

在本发明较佳的实施例中,上述方法还包括:获取缓存存储的数据总量;基于数据总量确定存储单元的层级数量和每层存储单元的数据容纳量。

在本发明较佳的实施例中,上述存储单元的数据采用数组结构,数据的数组下标表征存储单元的数据容纳量。

第二方面,本发明实施例还提供一种数据读取装置,装置应用于电子设备;电子设备的缓存包括多个层级的存储单元;其中,第N+1层存储单元的数据容纳量大于第N层存储单元的数据容纳量;最后一层存储单元存储有缓存的全部数据;装置包括:查找请求接收模块,用于接收携带有目标数据标识的查找请求;目标数据查找模块,用于按照层级由小到大的顺序从存储单元中查找标识对应的目标数据;目标数据返回模块,用于将目标数据返回至查找请求的发送方。

第三方面,本发明实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述的数据读取方法的步骤。

第四方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述的数据读取方法的步骤。

本发明实施例带来了以下有益效果:

本发明实施例提供的一种数据读取方法、装置和电子设备,电子设备的缓存包括多个层级的存储单元,存储单元的数据容纳量随着层级数量的增加而增加。在接收到数据请求时,按照层级由小到大的顺序从缓存的存储单元中查找目标数据,并且将目标数据返回至查找请求的发送方。该方式中,由于存储单元的数据容纳量随着层级数量的增加而增加,在查找目标数据时会按照数据容纳量由小到大的顺序从存储单元查找,如果需要读取目标数据,则可以从数据容纳量较小的存储单元读取目标数据,无需花费较长的时间从缓存中查找数据,从而提高缓存中数据的读写速度。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种缓存的架构示意图;

图2为本发明实施例提供的一种数据读取方法的流程图;

图3为本发明实施例提供的一种存储单元的示意图;

图4为本发明实施例提供的另一种数据读取方法的流程图;

图5为本发明实施例提供的一种数据读取装置的结构示意图;

图6为本发明实施例提供的另一种数据读取装置的结构示意图;

图7为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,现有技术中一般会将所有可能被读取的数据全部预先加载到缓存中,如果加载到缓存中的数据过多,在读取数据时需要花费较长的时间从缓存中查找数据,从而减少数据的读写速度。基于此,本发明实施例提供的一种数据读取方法、装置和电子设备,该技术可以应用于服务器、计算机、相机、手机、平板电脑等多种设备中,该技术可采用相应的软件和硬件实现,以下对本发明实施例进行详细介绍。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据读取方法进行详细介绍。

本实施例提供了一种数据读取方法,上述方法应用于电子设备;电子设备的缓存包括多个层级的存储单元;其中,第N+1层存储单元的数据容纳量大于第N层存储单元的数据容纳量;最后一层存储单元存储有缓存的全部数据。

本实施例中的方法应用于包括缓存的电子设备中,参见图1所示的一种缓存的架构示意图,如图1所示,图1中每个长方形代表一个存储单元,缓存包含5层存储单元,长方形的面积代表了存储单元的数据容纳量,可以看出层数越高的存储单元数据容纳量越多。本实施例中缓存的最后一层存储单元存储有缓存的全部数据,即图1中第5层缓存需要存储有缓存的全部数据。

基于上述描述,参见图2所示的一种数据读取方法的流程图,该数据读取方法包括如下步骤:

步骤S200,接收携带有目标数据标识的查找请求。

本实施例中的电子设备需要包含缓存,缓存包括多个层级的存储单元;其中,存储单元随着层级的增加而提高数据容纳量,例如:第1层存储单元可以容纳10个数据,第2层存储单元可以容纳100个数据,第3层存储单元可以容纳10000个数据,以此类推,直至最后一层存储单元存储有缓存的全部数据。

在查找数据时,电子设备需要接收查找请求,查找请求中可以携带有目标数据标识。电子设备可以根据上述标识查找目标数据。例如,查找请求携带的标识可以为目标数据的关键字、索引、生成目标数据的用户编号等,以便根据上述标识查找目标数据。

步骤S202,按照层级由小到大的顺序从存储单元中查找标识对应的目标数据。

电子设备接收到查找请求后,可以按照层级由小到大的顺序从存储单元中查找标识对应的目标数据,即先从第1层存储单元中查找标识对应的目标数据,如果第1层没有查找到目标数据,再从第2层存储单元中查找标识对应的目标数据,以此类推。

由于最后一层存储单元存储有缓存的全部数据;那么电子设备至少可以在最后一层存储单元查找到目标数据,从而完成目标数据的查找操作。

参见图3所示的一种存储单元的示意图,图3中包含2层存储单元,第1层存储单元存储了数据5,12,13,9,4,第2层存储单元存储了缓存的全部数据。

由上可知,一个数据查找的间隔越短,则该数据越容易在较低层的存储单元中被查找到。因此,通过本实施例提供的方法,可以将数据冷热分层。数据访问频繁的数据存放在较低层的存储单元中,数据访问不频繁的数据存放在较高层的存储单元中。

步骤S204,将目标数据返回至查找请求的发送方。

在完成目标数据的查找操作之后,电子设备可以将目标数据返回至查找请求的发送方,查找请求的发送方接收目标数据后可以基于目标数据进行后续的其他操作。

本发明实施例提供的一种数据读取方法,电子设备的缓存包括多个层级的存储单元,存储单元的数据容纳量随着层级数量的增加而增加。在接收到数据请求时,按照层级由小到大的顺序从缓存的存储单元中查找目标数据,并且将目标数据返回至查找请求的发送方。该方式中,由于存储单元的数据容纳量随着层级数量的增加而增加,在查找目标数据时会按照数据容纳量由小到大的顺序从存储单元查找,如果需要读取目标数据,则可以从数据容纳量较小的存储单元读取目标数据,无需花费较长的时间从缓存中查找数据,从而提高缓存中数据的读写速度。

本实施例提供了另一种数据读取方法,该方法在上述实施例的基础上实现;本实施例重点描述从存储单元查找目标数据和将目标数据写入存储单元的具体实施方式。参见图4所示的另一种数据读取方法的流程图,本实施例中的数据读取方法包括如下步骤:

步骤S400,接收携带有目标数据标识的查找请求。

本实施例中的电子设备的缓存包括多个层级的存储单元,在接收携带有目标数据标识的查找请求的步骤之前,电子设备可以预先对缓存分层,其中,缓存的层级数量可以根据缓存存储的数据总量计算获得,例如:获取缓存存储的数据总量;基于数据总量确定存储单元的层级数量和每层存储单元的数据容纳量。

缓存存储的数据总量即安魂村的业务数据量,不同的业务数据量可以对应不同的存储单元的层级数量和每层存储单元的数据容纳量。一般来说,业务数据量越多,则存储单元的层级数量越多,每层存储单元的数据容纳量也比较大。例如:缓存存储的数据总量为10万,存储单元的层级数量可以为2层;缓存存储的数据总量为100万,存储单元的层级数量可以为3层。在确定层级数量只有,可以分配对每层存储单元分配合理的数据容纳量,其中,第N+1层存储单元的数据容纳量大于第N层存储单元的数据容纳量。

步骤S402,按照层级由小到大的顺序确定第K层存储单元;其中,K代表缓存中首次查找标识对应的目标数据的缓存单元的层级。

在按照层级由小到大的顺序从存储单元中查找标识对应的目标数据的步骤中,电子设备首先从第K层存储单元查找目标数据。因此,电子设备需要先按照层级由小到大的顺序确定第K层存储单元,然后在第K层存储单元中查找标识对应的目标数据,例如:按照层级由小到大的顺序先确定第1层存储单元作为第K层存储单元。

步骤S404,从第K层存储单元中查找标识对应的目标数据。

在确定第K层存储单元之后,电子设备需要从第K层存储单元中查找标识对应的目标数据,如果目标数据刚好缓存在第K层存储单元,则称为目标数据在在第K层存储单元命中(Cache Hit)。

步骤S406,如果从第K层存储单元中查找标识对应的目标数据失败,从第K+1层存储单元中查找标识对应的目标数据,直至从最后一层存储单元中查找标识对应的目标数据。

如果目标数据没有缓存在第K层存储单元,则称为目标数据在在第K层存储单元不命中(Cache Miss),可以认为从第K层存储单元中查找标识对应的目标数据失败,此时需要从第K+1层存储单元中继续查找标识对应的目标数据,直至从最后一层存储单元中查找标识对应的目标数据。

由于最后一层存储单元中存储有缓存的全部数据,可以保证电子设备最晚在最后一层存储单元中一定可以查找标识对应的目标数据。

本发明实施例提供的上述方法,电子设备首先按照层级由小到大的顺序确定第K层存储单元,之后从第K层存储单元中查找标识对应的目标数据,如果查找失败,则从第K+1层存储单元中查找标识对应的目标数据,直至从最后一层存储单元中查找标识对应的目标数据。该方式可以先从小集合(第K层存储单元)中查找数据,后从大集合(第K层存储单元至最后一层存储单元)中查找数据,以提高数据的读取速度。

步骤S408,将目标数据写入缓存的每个存储单元中。

在完成目标数据的查找操作之后,电子设备可以将目标数据写入缓存的每个存储单元中,即缓存的每个存储单元都包含有目标数据,如果之后马上又需要查找目标数据,就可以从数据容纳量较小的存储单元读取目标数据。

例如,首先查找数据A,数据A会写入缓存的每个存储单元中。一段时间后,第1层存储单元写入的数据A并没有被覆盖,则再次查找数据A的时候,就可以从第1层存储单元中直接读取数据A。

又例如,查找数据B,数据B会写入缓存的每个存储单元中。第1层存储单元只能写入10个数据,之后,又进行了15次的查找操作,其他的数据将第1层存储单元写入的数据B覆盖了,但是第2层存储单元写可以存储100个数据,第2层存储单元写入的数据B并没有被覆盖,则再次查找数据B的时候,就可以从第2层存储单元中直接读取数据B。

并且,由于每次完成查找操作后,目标数据会写入每个存储单元中,这样可以保证第N层存储单元的数据一定是第N+1层存储单元的数据的子集,不会存在数据存在于第N层存储单元,该数据不存在第N+1层存储单元的情况。

例如,缓存中共10000个数据,缓存分为3层存储单元,第1-3层存储单元分别可以容纳10、100、10000个数据。10000个数据一开始全部存储于第3层存储单元,第一次查找请求查找数据1,那么只能从第3层存储单元查找到数据1,之后将数据1写入第1、2层存储单元。在进行了10次不同数据的查找请求后,第1层存储单元全部写满数据;此时再进行不同数据的查找请求,第1层存储单元中新的数据就会替换一个旧的数据。在进行了100次不同数据的查找请求后,第2层存储单元全部写满数据;此时再进行不同数据的查找请求,第2层存储单元中新的数据就会替换一个旧的数据。

对于数据1来说,在第1层存储单元中的数据1没有被替换前,如果还有携带有数据1标识的查找请求,则根据本实施例提供的方法可以从第1层存储单元中查找数据1,从而提高数据1的读取速度。即,数据被读取的间隔越短,该数据的读取速度越快。在将目标数据写入缓存的每个存储单元中时,上文中已经提到,第N层存储单元的数据一定是第N+1层存储单元的数据的子集,那么如果从第M层存储单元中查找到目标数据,则可以认为第M+1层存储单元至最后一层存储单元中已经保存有目标数据,此时只需要在第1层存储单元至第M-1层存储单元中的部分存储单元写入目标数据。例如:将目标数据写入缓存的目标缓存单元中;其中,目标缓存单元为第1层存储单元至第M-1层存储单元中的至少一个存储单元;其中,M代表缓存中查找到目标数据的存储单元的层级。

目标缓存单元可以为第1层存储单元至第M-1层存储单元中的部分缓存单元,也可以为第1层存储单元至第M-1层存储单元中的全部缓存单元,这里不做限定。

通过上述方式,如果从第M层存储单元中查找到目标数据,电子设备只需要在第1层存储单元至第M-1层存储单元中的目标缓存单元写入目标数据,就可以保证目标数据写入缓存中较为靠前的存储单元中,无需在缓存的所有存储单元全部写入目标数据,从而提高目标数据的写入速度。

电子设备在将目标数据写入缓存的每个存储单元中时,由于存储单元的数据容纳量的有限,可能需要替换存储单元中的已存储数据,例如:如果存储单元中存储的数据量小于存储单元的数据容纳量,将目标数据写入存储单元中;如果存储单元中存储的数据量等于存储单元的数据容纳量,将目标数据替换存储单元中的已存储数据。

如果存储单元中存储的数据量小于存储单元的数据容纳量,说明存储单元中还有空余位置(空余位置可以理解为存储单元中没有存储数据的位置)可以写入数据,因此可以直接将目标数据写入存储单元中。

如果存储单元中存储的数据量等于存储单元的数据容纳量,说明说明存储单元中没有空余位置,存储单元中的全部位置都已经存储有数据,此时需要将目标数据替换存储单元中的已存储数据。具体的替换策略可以是:随机替换、按照一定的规则替换、或者替换LRU(最近最少使用,Least Recently Used)数据。

对于按照一定的规则替换的情况,可以通过以下步骤进行替换:按照预先设定的存储规则,确定目标数据的第一存储位置;将目标数据替换第一存储位置上的已存储数据。

如果想要将目标数据存储于第X层存储单元,需要先确定第X层存储单元的第一存储位置,然后将目标数据替换第一存储位置上的已存储数据。如果在第Y层存储单元的第二存储位置查找到目标数据,则可以根据预先设定的存储规则,确定第一存储位置,例如:按照预先设定的存储规则,确定第二存储位置对应的第一存储位置。

举例来说,假设第1层存储单元有10个位置,分别编号为0-9,第2层存储单元有100个位置,分别编号为0-99。预先设定的存储规则可以是:第二存储位置除以10的余数作为第一存储位置,即第2层存储单元的位置0、10、20、30、40、50、60、70、80、90上的数据会放在第1层存储单元的0位置,第2层存储单元的位置1、11、21、31、41、51、61、71、81、91上的数据会放在第1层存储单元的1位置,以此类推。

对于随机替换的情况,可以通过以下步骤进行替换:从存储单元中随机选择第三存储位置,将目标数据替换第三存储位置上的已存储数据。即从存储单元中个随机选择一个第三存储位置,电子设备直接将目标数据替换第三存储位置上的已存储数据即可。

对于替换LRU数据的情况,则需要电子设备记录每一个数据的查找时刻,因此,上述方法还包括:记录目标数据的查找时刻;可以通过下述步骤替换存储单元中的已存储数据:确定存储单元中查找时刻最早的数据;将目标数据替换查找时刻最早的数据。

目标数据的查找时刻,即电子设备接收携带有目标数据标识的查找请求之后,从存储单元中查找目标数据的时刻,查找时刻最早的数据可以理解为LRU数据,因此,电子设备可以将目标数据替换查找时刻最早的数据。

除了本实施例提到的随机替换、按照一定的规则替换、或者替换LRU数据这三种替换策略,还可以通过其他的替换策略替换存储单元中的已存储数据,本实施例对此不做限定。

本发明实施例提供的上述方法,可以按照一定的替换策略替换存储单元中的已存储数据,例如:随机替换、按照一定的规则替换、或者替换LRU数据。其中,替换LRU数据的方式,可以保证目标数据替换的已存储数据是查找时刻最早的数据,可以理解为目标数据替换了存储单元中最不常使用的数据,可以尽可能地保证数据替换后存储单元中的数据均为使用较为频繁的热点数据。

除此以外,本实施例中的存储单元的数据采用数组结构,数据的数组下标表征存储单元的数据容纳量。本实施例的数据可以采用Map(映射)结构key->value;数据的数组下标可以为key的HashCode mod(一级缓存的容量),数组值可以为key$value。

步骤S410,将目标数据返回至查找请求的发送方。

下面以2层缓存(存储单元的层级数量为2)和3层缓存(存储单元的层级数量为3)为例,分别说明2层缓存和3层缓存的数据读取和写入方法。以2层缓存为例,可以通过以下步骤进行数据缓存和读取:第2层存储单元预热,进程启动加载磁盘数据第2层存储单元存储有缓存的全部数据。启动后一段时间内第1层存储单元无数据,之后进行第1层存储单元预热,接收查找请求后访问缓存中的数据,第1层存储单元逐步缓存热点数据。第1层缓存没有命中,且第1层缓存已满时,写入数据时需要替换第1层的缓存数据。

以3层缓存为例,可以通过以下步骤进行数据缓存和读取:假设第1-3层存储单元的数据容纳量分别是10、1万和所有。初始时第1层存储单元和第2层存储单元没有数据,所有数据都存储在第3层存储单元。查找目标数据P的时候,先在第1层存储单元查找,如果没有找到则在第2层存储单元查找,如果也没有找到则在第3层存储单元查找。

如果目标数据P在第3层存储单元查找到,则可以先将目标数据P写入第1层存储单元,后将目标数据P写入第2层存储单元,第3层存储单元保存的目标数据P不会删除。

如果目标数据P在第2层存储单元查找到,则可以将目标数据P写入第1层存储单元,第2层存储单元和第3层存储单元保存的目标数据P不会删除。

查询10个不同的目标数据时,第1层存储单元会写满数据,查询到第11个不同的目标数据时,会将该目标数据替换第1层存储单元的某个已存储数据,然后将该目标数据写入第2层存储单元。

查询10000个不同的目标数据时,第1层存储单元和第2层存储单元都会写满数据,查询到第10001个不同的目标数据时,会将该目标数据替换第1层存储单元的某个已存储数据,之后会将该目标数据替换第2层存储单元的某个已存储数据。

对应于上述方法实施例,本发明实施例提供了一种数据读取装置,上述装置应用于电子设备;电子设备的缓存包括多个层级的存储单元;其中,第N+1层存储单元的数据容纳量大于第N层存储单元的数据容纳量;最后一层存储单元存储有缓存的全部数据。

基于上述描述,参见图5所示的一种数据读取装置的结构示意图,该数据读取装置包括:

查找请求接收模块51,用于接收携带有目标数据标识的查找请求;

目标数据查找模块52,用于按照层级由小到大的顺序从存储单元中查找标识对应的目标数据;

目标数据返回模块53,用于将目标数据返回至查找请求的发送方。

本发明实施例提供的一种数据读取装置,电子设备的缓存包括多个层级的存储单元,存储单元的数据容纳量随着层级数量的增加而增加。在接收到数据请求时,按照层级由小到大的顺序从缓存的存储单元中查找目标数据,并且将目标数据返回至查找请求的发送方。该方式中,由于存储单元的数据容纳量随着层级数量的增加而增加,在查找目标数据时会按照数据容纳量由小到大的顺序从存储单元查找,如果需要读取目标数据,则可以从数据容纳量较小的存储单元读取目标数据,无需花费较长的时间从缓存中查找数据,从而提高缓存中数据的读写速度。

上述目标数据查找模块,用于按照层级由小到大的顺序确定第K层存储单元;从第K层存储单元中查找标识对应的目标数据;其中,K代表缓存中首次查找标识对应的目标数据的缓存单元的层级;如果从第K层存储单元中查找标识对应的目标数据失败,从第K+1层存储单元中查找标识对应的目标数据,直至从最后一层存储单元中查找标识对应的目标数据。

参见图6所示另一种数据读取装置的结构示意图,该数据读取装置还包括:目标数据写入模块54,上述目标数据写入模块54与目标数据查找模块52连接,上述目标数据写入模块54与目标数据返回模块53连接,上述目标数据写入模块54,用于将目标数据写入缓存的每个存储单元中。

从第M层存储单元中查找到目标数据;其中,M代表缓存中查找到目标数据的存储单元的层级;上述目标数据写入模块,用于将目标数据写入缓存的目标缓存单元中;其中,目标缓存单元为第1层存储单元至第M-1层存储单元中的至少一个存储单元。

上述目标数据写入模块,用于如果存储单元中存储的数据量小于存储单元的数据容纳量,将目标数据写入存储单元中;如果存储单元中存储的数据量等于存储单元的数据容纳量,将目标数据替换存储单元中的已存储数据。

上述目标数据写入模块,用于按照预先设定的存储规则,确定目标数据的第一存储位置;将目标数据替换第一存储位置上的已存储数据。

从第二存储位置查找到目标数据;上述目标数据写入模块,用于按照预先设定的存储规则,确定第二存储位置对应的第一存储位置。

上述目标数据写入模块,用于从存储单元中随机选择第三存储位置,将目标数据替换第三存储位置上的已存储数据。

上述目标数据写入模块,还用于记录目标数据的查找时刻;上述目标数据写入模块,用于确定存储单元中查找时刻最早的数据;将目标数据替换查找时刻最早的数据。

参见图6所示另一种数据读取装置的结构示意图,该数据读取装置还包括:存储单元设置模块55,上述存储单元设置模块55与查找请求接收模块51连接,上述存储单元设置模块55,用于获取缓存存储的数据总量;基于数据总量确定存储单元的层级数量和每层存储单元的数据容纳量。

上述存储单元的数据采用数组结构,数据的数组下标表征存储单元的数据容纳量。

本发明实施例所提供的数据处理装置,其实现原理及产生的技术效果和前述数据读取方法实施例相同,为简要描述,数据处理装置实施例部分未提及之处,可参考前述数据读取方法实施例中相应内容。

本发明实施例还提供了一种电子设备,用于运行上述数据读取方法;参见图7所示的一种电子设备的结构示意图,该电子设备包括存储器100和处理器101,其中,存储器100用于存储一条或多条计算机指令,一条或多条计算机指令被处理器101执行,以实现上述数据读取方法。

进一步地,图7所示的电子设备还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。

其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述数据读取方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的数据读取方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和/或装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 数据写入方法及装置、数据读取方法及装置、电子设备
  • 数据存储方法、数据读取方法、装置及电子设备
技术分类

06120112941930