CN114896177A - 数据存储管理方法、装置、设备、介质和产品 - Google Patents
数据存储管理方法、装置、设备、介质和产品 Download PDFInfo
- Publication number
- CN114896177A CN114896177A CN202210478918.1A CN202210478918A CN114896177A CN 114896177 A CN114896177 A CN 114896177A CN 202210478918 A CN202210478918 A CN 202210478918A CN 114896177 A CN114896177 A CN 114896177A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- linked list
- data operation
- element data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 38
- 238000007726 management method Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及数据存储技术领域,提供了一种数据存储管理方法、装置、设备、介质和产品,所述方法包括:响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针,其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在所述目标链表的表尾;其中,目标链表用于存储数据操作请求对应的目标元素数据。采用该方式能够避免现有技术中,当目标链表内存不够时,需要删除链表表头的元素数据,存在删除被访问频次较高的元素数据问题,无需反复增加或删除被访问频次较高元素数据,提高元素数据存储的效率。
Description
技术领域
本公开涉及数据存储技术领域,特别是涉及一种数据存储管理方法、装置、设备、介质和产品。
背景技术
目前,在数据存储时通常使用链表实现对数据的存储管理,链表是一种物理存储单元上非连续、非顺序的存储结构,元素数据的逻辑顺序是通过链表中的指针链接次序实现的,且使用链表进行数据存储管理时,由于仅仅只改变相邻存储的指针的改变,因此在链表中的增加元素数据、删除元素数据时效率较高。
然而,采用链表进行数据存储时,由于链表的存储内存有限,当需要对链表中增加元素数据时,若链表的内存已满,则需要删除内存中的部分元素数据,又因为链表中的元素数据是按照首次存储时间进行排序,在删除元素数据时,按照排序顺序删除首个存储的数据,以存储新增加的数据,但是当被删除的数据属于被访问频率较高的元素数据时,造成在链表中需要反复增加删除相应的元素数据的问题,从而降低了元素数据存储的效率。
发明内容
基于此,有必要针对上述技术问题,提供了一种数据存储管理方法、装置、设备、介质和产品。
本公开实施例提供了一种数据存储管理方法,所述方法包括:
响应数据操作请求,在目标哈希表中确定所述数据操作请求对应的数据操作指针,其中,所述目标哈希表用于存储所述数据操作指针以及所述数据操作指针对应的键值;
基于所述数据操作指针,从目标链表中获取所述数据操作请求对应的目标元素数据,并将所述目标元素数据存储在所述目标链表的表尾;
其中,所述目标链表用于存储所述数据操作请求对应的所述目标元素数据。
在一个实施例中,所述响应数据操作请求,在目标哈希表中确定所述数据操作请求对应的数据操作指针之前,所述方法还包括:
建立初始哈希表以及初始链表;
获取至少一个待存储数据;
依次针对每个所述待存储数据,在所述初始哈希表存储对应的数据操作指针以及所述数据操作指针对应的键值,得到目标哈希表,在所述初始链表中存储所述待存储数据,得到目标链表。
在一个实施例中,还包括:
根据每个所述待存储数据对应的所述数据操作指针以及所述键值,在所述目标链表中确定所述待存储数据的存储位置。
在一个实施例中,所述方法还包括:
当基于所述数据操作指针,在所述目标链表中获取不到所述数据操作请求对应的目标元素数据时,在预设数据库中获取所述数据操作请求对应的目标元素数据;
判断所述目标链表的内存大小是否大于预设内存大小;
当确定所述目标链表的内存大小大于预设内存大小时,将所述目标元素数据存储在所述目标链表的表尾。
在一个实施例中,所述方法还包括:
当确定所述目标链表的内存大小小于或等于预设内存大小时,删除所述目标链表的表头对应的元素数据,并将所述目标元素数据存储在所述目标链表的表尾。
在一个实施例中,所述方法还包括:
当将所述目标元素数据存储在所述目标链表的表尾时,在所述目标哈希表中,更新所述数据操作指针以及所述数据操作指针对应的键值。
第二方面,本公开实施例提供了一种数据存储管理装置,包括:
数据操作指针确定模块,用于响应数据操作请求,在目标哈希表中确定所述数据操作请求对应的数据操作指针,其中,所述目标哈希表用于存储所述数据操作指针以及所述数据操作指针对应的键值;
处理模块,用于基于所述数据操作指针,从目标链表中获取所述数据操作请求对应的目标元素数据,并将所述目标元素数据存储在所述目标链表的表尾;
其中,所述目标链表用于存储所述数据操作请求对应的目标元素数据。
第三方面,本公开实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一所述的方法。
第五方面,本公开实施例提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行时实现如第一方面中任一所述的方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例所提供的数据存储管理方法,通过响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针,其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在所述目标链表的表尾;其中,目标链表用于存储数据操作请求对应的目标元素数据。这样,对于数据操作请求对应的目标元素数据,能够通过目标哈希表中的数据操作指针,快速的在目标链表中获取目标元素数据,且将获取到的目标元素数据保存至目标链表的表尾,以此避免现有技术中,当目标链表内存不够时,需要删除链表表头的元素数据,存在删除被访问频次较高的元素数据问题,无需反复增加或删除被访问频次较高元素数据,提高元素数据存储的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种数据存储管理方法的流程示意图;
图2为本公开实施例提供的另一种数据存储管理方法的流程示意图;
图3为本公开实施例提供的再一种数据存储管理方法的流程示意图;
图4为本公开实施例提供的又一种数据存储管理方法的流程示意图;
图5为本公开实施例提供的一种数据存储管理装置的结构示意图;
图6为本公开实施例提供的电子设备的内部结构图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
目前,在数据存储时通常使用链表实现对数据的存储管理,链表是一种物理存储单元上非连续、非顺序的存储结构,元素数据的逻辑顺序是通过链表中的指针链接次序实现的,且使用链表进行数据存储管理时,由于仅仅只改变相邻存储的指针的改变,因此在链表中的增加元素数据、删除元素数据时效率较高。
然而,采用链表进行数据存储时,由于链表的存储内存有限,当需要对链表中增加元素数据时,若链表的内存已满,则需要删除内存中的部分元素数据,又因为链表中的元素数据是按照首次存储时间进行排序,在删除元素数据时,按照排序顺序删除首个存储的数据,以存储新增加的数据,但是当被删除的数据属于被访问频率较高的元素数据时,造成在链表中需要反复增加删除相应的元素数据的问题,从而降低了元素数据存储的效率。
基于此,本公开提供了一种数据存储管理方法,通过响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针,其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在所述目标链表的表尾;其中,目标链表用于存储数据操作请求对应的目标元素数据。这样,对于数据操作请求对应的目标元素数据,能够通过目标哈希表中的数据操作指针,快速的在目标链表中获取目标元素数据,且将获取到的目标元素数据保存至目标链表的表尾,以此避免现有技术中,当目标链表内存不够时,需要删除链表表头的元素数据,存在删除被访问频次较高的元素数据问题,无需反复增加或删除被访问频次较高元素数据,提高元素数据存储的效率。
本公开提供的数据存储管理方法可以应用在数据存储管理装置,该装置可以为各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等电子设备,可选的,该装置还可以为这些电子设备中可以实现数据处理方法的功能模块或者功能实体。
在一个实施例中,如图1所示,图1为本公开实施例提供的一种数据存储管理方法的流程示意图,具体包括以下步骤:
S11:响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针。
其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;哈希表是一种基于哈希函数建立的查找表,也称为散列表,能够直接根据关键码值对数据进行访问,即,通过将一个关键码值映射到一个位置实现对元素数据的访问,以此提高对数据的访问速度,具体的,利用哈希函数根据关键码值,从而计算出元素数据的存储位置。
上述数据操作指针是指能够确定元素数据存储位置的指针,数据操作指针对应的键值即为哈希表中的关键码值,通过关键码值在目标哈希表能够确定数据操作请求对应的数据操作指针,示例性的,通过对不同元素数据对应的数据操作指针设置标签,该标签例如可以是指针的名字,并将该标签存储在目标哈希表中,但不限于此,本公开不具体限制,本领域技术人员可根据实际情况设置。
上述数据操作请求是指用于对存储在链表、数据库中的元素数据进行查询、删除、增加以及改变的请求信息。
具体的,当用户输入数据操作请求时,终端设备响应于用户输入的数据操作请求,在目标哈希表中确定数据操作请求对应的键值,进一步,根据该键值以及哈希函数在目标哈希表中确定对应的对应的数据操作指针。
在上述实施例的基础上,在本公开的一些实施例中,如图2所示,在执行S11之前,还包括:
S21:建立初始哈希表以及初始链表。
其中,初始哈希表可以通过预先建立空白的哈希表,初始链表也可以是预先建立空白的链表,还可以是通过在首次获取到待存储数据时,自动建立空白的哈希表以及空白的链表,本公开对于初始哈希表以及初始链表的建立方式不做具体限制,本领域技术人员可根据实际情况设置,需要说明的是,对于空白的哈希表以及空白的链表的内存大小可以由终端设备如电脑的配置进行动态设置,本公开不具体限制,本领域技术人员可根据实际情况设置。
S22:获取至少一个待存储数据。
S23:依次针对每个待存储数据,在初始哈希表存储对应的数据操作指针以及数据操作指针对应的键值,得到目标哈希表,在初始链表中存储待存储数据,得到目标链表。
具体的,获取多个待存储数据,依次针对每一个待存储数据,确定每一个待存储数据在初始哈希表中的键值,基于该键值进行哈希计算,以此得到该待存储数据在初始哈希表中的存储地址,即哈希地址,从而确定在初始哈希表存储对应的数据操作指针,并将该每个待存储数据对应的数据操作指针以及键值存储在该初始哈希表中,以得到目标哈希表,进一步的,在创建的初始链表中存储每个待存储数据,以此得到目标链表。
需要说明的是,在上述实施例中,获取键值的方式可采用现有技术中获取键值的方式实现键值的获取,本公开不具体限制,本领域技术人员可根据实际情况设置。
在上述实施例的基础上,在本公开的一些实施例中,还包括:
根据每个待存储数据对应的数据操作指针以及键值,在目标链表中确定待存储数据的存储位置。
具体的,根据在目标哈希表中存储的每个待存储数据的键值,确定数据操作指针,进一步,根据该数据操作指针确定待存储数据在目标链表中的存储位置。
示例性的,对于待存储数据,例如可以是获取到的待存储地图数据,在初始哈希表中确定待存储地图数据对应的键值,将该键值存储在相应的哈希节点上,进一步根据键值以及哈希函数,确定数据操作指针,对于初始链表,在初始链表中确定待存储地图数据对应的链表节点之后,对初始哈希表中待存储地图数据对应的哈希节点、以及初始链表中待存储地图数据对应的链表节点,建立该待存储地图数据的实际物理存储位置与哈希节点和链表节点的映射关系,以此实现基于数据操作指针能够获取到在目标链表中的存储位置,从而获取到元素数据,但不限于此,本公开不具体限制,本领域技术人员可根据实际情况设置。
这样,本公开实施例提供的数据存储管理方法,通过构建初始哈希表与初始链表,并在初始哈希表中建立待存储数据的对应键值以及数据操作指针,并设置数据操作指针与待存储数据在链表中存储位置的映射关系,以此实现对链表中的元素数据进行操作时,能够基于键值和数据操作指针,快速的在目标链表中获取到目标元素数据,提高了对目标元素数据的操作效率。
S12:基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在目标链表的表尾。
其中,目标链表用于存储数据操作请求对应的目标元素数据。
具体的,根据在目标哈希表中确定的数据操作指针,根据该数据操作指针与目标链表中目标元素数据存储位置的映射关系,以此能够在目标链表中获取到数据操作请求对应的目标元素数据,在获取到目标元素数据之后,将该目标元素数据存储在目标链表的表尾。
这样,本公开实施例提供的数据存储管理方法,通过响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针,其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在所述目标链表的表尾;其中,目标链表用于存储数据操作请求对应的目标元素数据。这样,对于数据操作请求对应的目标元素数据,能够通过目标哈希表中的数据操作指针,快速的在目标链表中获取目标元素数据,且将获取到的目标元素数据保存至目标链表的表尾,以此避免现有技术中,当目标链表内存不够时,需要删除链表表头的元素数据,存在删除被访问频次较高的元素数据问题,无需反复增加或删除被访问频次较高元素数据,提高元素数据存储的效率。
图3为本公开实施例提供的再一种数据存储管理方法的流程示意图,图3是在图2所示实施例的基础上,进一步地,如图3所示,所述方法还包括:
S31:当基于数据操作指针,在目标链表中获取不到数据操作请求对应的目标元素数据时,在预设数据库中获取数据操作请求对应的目标元素数据。
其中,预设数据库是指能够获取到数据操作请求对应的目标元素数据的数据库,该预设数据库例如可以是存储在服务器上的数据库,还可以是存储在终端设备上的数据库,但不限于此,本公开不具体限制,本领域技术人员可根据实际情况设置。
示例性的,通过向服务器发送数据操作请求,以此在服务器上存储的数据库中,获取数据操作请求对应的目标元素数据,但不限于此,本公开不具体限制,本领域技术人员可根据实际情况具体设置。
S32:当确定目标链表的内存大小大于预设内存大小时,将目标元素数据存储在目标链表的表尾。
其中,预设内存大小是指对于当前存储多个元素数据的目标链表,通过根据当前目标链表中存储的元素数据的长度,确定当前目标链表是否还能够存储元素数据所设置的参数值,还可以是根据当前目标链表中存储的元素数据的所占取链表的内存空间,确定当前目标链表是否还能够存储元素数据所设置的参数值,对于预设内存大小可根据终端设备如电脑的配置动态设置,本公开不具体限制,本领域技术人员可根据实际情况设置。
具体的,获取当前目标链表的内存大小,判断当前目标链表的内存大小是否大于预设内存大小,在确定当前目标链表的内存大小是大于预设内存大小的时候,将获取到的数据操作请求对应的目标元素数据存储在目标链表的表尾。
这样,本公开实施例提供的数据存储管理方法,对于数据查询请求对应的目标元素数据无法在目标链表中获取时,表明该目标链表中不存在该目标元素数据,则实时的在服务器或者是本地终端设备上获取数据查询请求对应的目标元素数据,并在确定目标链表的内存大小大于预设内存大小时,将目标元素数据增加至目标链表的表尾,这样,能够将经常被访问的目标元素数据增加到目标链表的表尾,避免了当目标链表内存不够时,不会删除经常被访问的目标元素数据。
图4为本公开实施例提供的又一种数据存储管理方法的流程示意图,图4是在图3所示实施例的基础上,进一步地,如图4所示,还包括:
S41:当确定目标链表的内存大小小于或等于预设内存大小时,删除目标链表的表头对应的元素数据,并将目标元素数据存储在目标链表的表尾。
具体的,获取当前目标链表的内存大小,在确定当前目标链表的内存大小是小于或等于预设内存大小的时候,将保存在目标链表的表头对应的元素数据删除,以此使得当前的目标链表的内存大小是大于预设内存大小,则将获取到的数据操作请求对应的目标元素数据存储在目标链表的表尾。
需要说明的是,对于数据操作请求访问的目标元素数据,会将该多个目标元素数据在目标链表中取出之后,并存储在目标链表的表尾,以此使得在目标链表的表头的元素数据为不被经常访问的元素数据。
这样,本公开实施例提供的数据存储管理方法,在确定当前目标链表的内存大小是小于或等于预设内存大小的时候,将保存在目标链表的表头的不经常被访问的元素数据删除,以此使得当前的目标链表的内存大小是大于预设内存大小,将目标元素数据增加至目标链表的表尾,这样,能够将经常被访问的目标元素数据增加到目标链表的表尾,避免了当目标链表内存不够时,不会删除经常被访问的目标元素数据。
在上述实施例的基础上,在本公开一些实施例中,进一步的,还包括:
当将目标元素数据存储在目标链表的表尾时,在目标哈希表中,更新数据操作指针以及数据操作指针对应的键值。
具体的,当将数据操作请求对应的目标元素数据存储在目标链表的表尾时,则实时的更新存储在目标哈希表中的目标元素数据对应的数据操作指针、以及数据操作指针对应的键值。
这样,本公开实施例提供的数据存储管理方法,在将数据操作请求对应的目标元素数据存储在目标链表的表尾时,能够根据操作指针以及目标元素数据在目标链表的存储位置的映射关系,实时的更新存储在目标哈希表中的数据操作指针以及数据操作指针对应的键值,以此使得下一次获取数据操作请求,能够在目标链表中快速的获取目标元素数据。
图5为本公开实施例提供的一种数据存储管理装置,包括:数据操作指针确定模块11以及处理模块12。
其中,数据操作指针确定模块11,用于响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针,其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;
处理模块12,用于基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在目标链表的表尾;
其中,目标链表用于存储数据操作请求对应的目标元素数据。
在上述实施例中,所述装置还包括:创建模块,用于建立初始哈希表以及初始链表;获取至少一个待存储数据;依次针对每个待存储数据,在初始哈希表存储对应的数据操作指针以及数据操作指针对应的键值,得到目标哈希表,在初始链表中存储待存储数据,得到目标链表。
在上述实施例中,创建模块,还用于根据每个待存储数据对应的数据操作指针以及键值,在目标链表中确定待存储数据的存储位置。
在上述实施例中,处理模块12,还用于当基于数据操作指针,在目标链表中获取不到数据操作请求对应的目标元素数据时,在预设数据库中获取数据操作请求对应的目标元素数据;判断目标链表的内存大小是否大于预设内存大小;当确定目标链表的内存大小大于预设内存大小时,将目标元素数据存储在目标链表的表尾。
在上述实施例中,处理模块12,具体还用于当确定目标链表的内存大小小于或等于预设内存大小时,删除目标链表的表头对应的元素数据,并将目标元素数据存储在目标链表的表尾。
在上述实施例中,所述装置还包括:更新模块,用于当将目标元素数据存储在目标链表的表尾时,在目标哈希表中,更新数据操作指针以及数据操作指针对应的键值。
这样,本实施例通过数据操作指针确定模块11,用于响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针,其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;处理模块12,用于基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在目标链表的表尾;其中,目标链表用于存储数据操作请求对应的目标元素数据。这样,对于数据操作请求对应的目标元素数据,能够通过目标哈希表中的数据操作指针,快速的在目标链表中获取目标元素数据,且将获取到的目标元素数据保存至目标链表的表尾,以此避免现有技术中,当目标链表内存不够时,需要删除链表表头的元素数据,存在删除被访问频次较高的元素数据问题,无需反复增加或删除被访问频次较高元素数据,提高元素数据存储的效率。
本发明实施例所提供的装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图6是本公开实施例提供的一种电子设备的结构示意图,如图6所示,该电子设备包括处理器710、存储器720、输入装置730和输出装置740;计算机设备中处理器710的数量可以是一个或多个,图6中以一个处理器710为例;电子设备中的处理器710、存储器720、输入装置730和输出装置740可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器720作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中方法对应的程序指令/模块。处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现本发明实施例所提供的方法。
存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,可以包括键盘、鼠标等。输出装置740可包括显示屏等显示设备。
本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现本发明实施例所提供的方法,方法包括:
响应数据操作请求,在目标哈希表中确定数据操作请求对应的数据操作指针,其中,目标哈希表用于存储数据操作指针以及数据操作指针对应的键值;
基于数据操作指针,从目标链表中获取数据操作请求对应的目标元素数据,并将目标元素数据存储在目标链表的表尾;
其中,目标链表用于存储数据操作请求对应的目标元素数据。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的方法中的相关操作。
本公开实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得所述计算机执行时本发明任意实施例所提供的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory, RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据存储管理方法,其特征在于,所述方法包括:
响应数据操作请求,在目标哈希表中确定所述数据操作请求对应的数据操作指针,其中,所述目标哈希表用于存储所述数据操作指针以及所述数据操作指针对应的键值;
基于所述数据操作指针,从目标链表中获取所述数据操作请求对应的目标元素数据,并将所述目标元素数据存储在所述目标链表的表尾;
其中,所述目标链表用于存储所述数据操作请求对应的所述目标元素数据。
2.根据权利要求1所述的方法,其特征在于,所述响应数据操作请求,在目标哈希表中确定所述数据操作请求对应的数据操作指针之前,所述方法还包括:
建立初始哈希表以及初始链表;
获取至少一个待存储数据;
依次针对每个所述待存储数据,在所述初始哈希表存储对应的数据操作指针以及所述数据操作指针对应的键值,得到目标哈希表,在所述初始链表中存储所述待存储数据,得到目标链表。
3.根据权利要求2所述的方法,其特征在于,还包括:
根据每个所述待存储数据对应的所述数据操作指针以及所述键值,在所述目标链表中确定所述待存储数据的存储位置。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
当基于所述数据操作指针,在所述目标链表中获取不到所述数据操作请求对应的目标元素数据时,在预设数据库中获取所述数据操作请求对应的目标元素数据;
判断所述目标链表的内存大小是否大于预设内存大小;
当确定所述目标链表的内存大小大于预设内存大小时,将所述目标元素数据存储在所述目标链表的表尾。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当确定所述目标链表的内存大小小于或等于预设内存大小时,删除所述目标链表的表头对应的元素数据,并将所述目标元素数据存储在所述目标链表的表尾。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当将所述目标元素数据存储在所述目标链表的表尾时,在所述目标哈希表中,更新所述数据操作指针以及所述数据操作指针对应的键值。
7.一种数据存储管理装置,其特征在于,包括:
数据操作指针确定模块,用于响应数据操作请求,在目标哈希表中确定所述数据操作请求对应的数据操作指针,其中,所述目标哈希表用于存储所述数据操作指针以及所述数据操作指针对应的键值;
处理模块,用于基于所述数据操作指针,从目标链表中获取所述数据操作请求对应的目标元素数据,并将所述目标元素数据存储在所述目标链表的表尾;
其中,所述目标链表用于存储所述数据操作请求对应的目标元素数据。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的数据存储管理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述的数据存储管理方法。
10.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-6任一项所述的数据存储管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210478918.1A CN114896177A (zh) | 2022-05-05 | 2022-05-05 | 数据存储管理方法、装置、设备、介质和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210478918.1A CN114896177A (zh) | 2022-05-05 | 2022-05-05 | 数据存储管理方法、装置、设备、介质和产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114896177A true CN114896177A (zh) | 2022-08-12 |
Family
ID=82719841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210478918.1A Pending CN114896177A (zh) | 2022-05-05 | 2022-05-05 | 数据存储管理方法、装置、设备、介质和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896177A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115507863A (zh) * | 2022-10-10 | 2022-12-23 | 重庆长安汽车股份有限公司 | 车辆的全局路径规划方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314485A (zh) * | 2011-07-27 | 2012-01-11 | 中国科学院计算机网络信息中心 | 哈希表添加、查找和删除方法及装置 |
US20150324281A1 (en) * | 2014-05-07 | 2015-11-12 | Diablo Technologies Inc. | System and method of implementing an object storage device on a computer main memory system |
CN107391398A (zh) * | 2016-05-16 | 2017-11-24 | 中国科学院微电子研究所 | 一种闪存缓存区的管理方法及系统 |
CN110069496A (zh) * | 2019-03-20 | 2019-07-30 | 韶关学院 | 一种新型链式哈希表构建方法及装置 |
CN110134514A (zh) * | 2019-04-18 | 2019-08-16 | 华中科技大学 | 基于异构内存的可扩展内存对象存储系统 |
-
2022
- 2022-05-05 CN CN202210478918.1A patent/CN114896177A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314485A (zh) * | 2011-07-27 | 2012-01-11 | 中国科学院计算机网络信息中心 | 哈希表添加、查找和删除方法及装置 |
US20150324281A1 (en) * | 2014-05-07 | 2015-11-12 | Diablo Technologies Inc. | System and method of implementing an object storage device on a computer main memory system |
CN107391398A (zh) * | 2016-05-16 | 2017-11-24 | 中国科学院微电子研究所 | 一种闪存缓存区的管理方法及系统 |
CN110069496A (zh) * | 2019-03-20 | 2019-07-30 | 韶关学院 | 一种新型链式哈希表构建方法及装置 |
CN110134514A (zh) * | 2019-04-18 | 2019-08-16 | 华中科技大学 | 基于异构内存的可扩展内存对象存储系统 |
Non-Patent Citations (2)
Title |
---|
许卓群: "8.4 缓冲区和缓冲池", 《数据结构与算法》 * |
金纯: "2.5.5 流媒体代理服务器及缓存技术", 《IPTV及其解决方案》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115507863A (zh) * | 2022-10-10 | 2022-12-23 | 重庆长安汽车股份有限公司 | 车辆的全局路径规划方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150234927A1 (en) | Application search method, apparatus, and terminal | |
CN108846753B (zh) | 用于处理数据的方法和装置 | |
CN109213699B (zh) | 一种元数据管理方法、系统、设备及计算机可读存储介质 | |
JP7047228B2 (ja) | データ照会方法、装置、電子機器、可読記憶媒体、及びコンピュータープログラム | |
CN111241108B (zh) | 基于键值对kv系统的索引方法、装置、电子设备和介质 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
JP2017535842A (ja) | データソースからデータターゲットにデータを転送するためのインポート手順の呼出しの単純化 | |
CN110442773A (zh) | 分布式系统中节点缓存方法、系统、装置及计算机介质 | |
CN109063215B (zh) | 数据检索方法及装置 | |
CN109375843B (zh) | 基于快捷方式的应用检索方法、装置、设备及介质 | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN110515979B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN111047434B (zh) | 一种操作记录生成方法、装置、计算机设备和存储介质 | |
CN114896177A (zh) | 数据存储管理方法、装置、设备、介质和产品 | |
CN111813517A (zh) | 任务队列的分配方法、装置、计算机设备及介质 | |
CN109710571B (zh) | 一种文件解析方法、设备及存储介质 | |
CN113535650A (zh) | 一种文件命名方法及计算设备 | |
WO2024016789A1 (zh) | 日志数据查询方法、装置、设备和介质 | |
CN111949648B (zh) | 内存缓存数据系统和数据索引方法 | |
CN113779068B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN115129324A (zh) | 规则匹配方法、装置、电子设备及介质 | |
CN114265533A (zh) | 一种资源访问方法、计算设备和存储介质 | |
CN108710661B (zh) | 一种基于内存顺序表实现文本文件的数据管理方法和装置 | |
CN111858652A (zh) | 基于消息队列的跨数据源查询方法、系统及服务器节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220812 |
|
RJ01 | Rejection of invention patent application after publication |