【技术实现步骤摘要】
基于链表的数据缓存方法、装置、电子设备和存储介质
本专利技术实施例涉及数据存储
,尤其涉及一种基于链表的数据缓存方法、装置、电子设备和存储介质。
技术介绍
在数据存储领域常用链表技术来对数据存储进行管理,使用链表进行数据存储管理的特点是插入、删除数据时效率高,插入或删除数据只需要参考相邻存储节点的指针改变。链表中包括多个存储节点,每个存储节点包括数据域和指针域,每个存储节点的指针域指向该存储节点的下一个存储节点,数据域存储该存储节点的相关参数,例如存储数据的存储地址等参数。目前,查询数据时,需要从链表的头存储节点遍历每个存储节点,在遍历每个存储节点时,根据存储节点的指针域遍历下一个存储节点直到遍历到需要查询的数据,需要从存储节点头一个个遍历查找数据,查询数据的效率低。
技术实现思路
本专利技术提供了一种基于链表的数据缓存方法、装置、电子设备和存储介质,以解决现有技术中采用链表管理数据存储时存在查询数据效率低的问题。第一方面,本专利技术实施例提供了一种基于链表的数据缓存方法,所述链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,所述数据缓存方法包括:接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;根据所述节点号和 ...
【技术保护点】
1.一种基于链表的数据缓存方法,其特征在于,所述链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,所述基于链表的数据缓存方法包括:/n接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;/n响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;/n根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,所述目标存储节点的节点头参数包括数据存储地址;/n从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址;/n在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端。/n
【技术特征摘要】
1.一种基于链表的数据缓存方法,其特征在于,所述链表包括链表头节点和多个存储节点,所述链表头节点的链表头参数和所述存储节点的节点头参数依次存储在连续的内存空间中,每个存储节点的节点头参数对应的内存空间大小相等,所述基于链表的数据缓存方法包括:
接收业务端发送的数据查询请求,所述数据查询请求包括目标存储节点对应的节点号;
响应所述数据查询请求,基于预先存储的所述链表头节点的链表头参数,获取头存储节点的节点头参数的第一存储地址;
根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,所述目标存储节点的节点头参数包括数据存储地址;
从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址;
在所述数据存储地址所指向的内存空间中读取数据发送到所述业务端。
2.根据权利要求1所述的基于链表的数据缓存方法,其特征在于,所述根据所述节点号和所述第一存储地址,确定所述目标存储节点的节点头参数对应的第二存储地址,包括:
计算所述节点号与预设节点头参数的内存空间大小的乘积作为偏移值,所述预设节点头参数内存空间大小是用于存储节点头参数的内存空间大小;
以所述第一存储地址为起始地址偏移所述偏移值,得到所述目标存储节点的节点头参数的第二存储地址。
3.根据权利要求1所述的基于链表的数据缓存方法,其特征在于,所述数据查询请求还包括鉴权码,在从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址之前,还包括:
获取所述目标存储节点的预设鉴权码;
判断所述数据查询请求中的鉴权码与所述预设鉴权码是否相同;
若是,执行从所述第二存储地址所指向的内存空间中读取所述目标存储节点的节点头参数以获得数据存储地址的步骤;
若否,则返回错误信息到所述业务端。
4.根据权利要求1-3任一项所述的基于链表的数据缓存方法,其特征在于,在接收业务端发送的数据查询请求之前,还包括:
接收业务端发送的链表注册请求,所述链表注册请求包括指定内存地址;
响应所述链表注册请求生成链表,并将所述链表存储在所述指定内存地址所指向的内存空间中,所述链表包括链表头节点和存储节点,所述链表头节点包括链表头参数,所述存储节点包括节点头参数;
向所述业务端返回访问句柄,所述业务端用于根据所述访问句柄访问所述指定内存地址所指向的内存空间以对所述链表进行操作。
5.根据权利要求4所述的基于链表的数据缓存方法,其特征在于,所述链表注册请求还包括数据结构体信息,所述响应所述链表注册请求生成链表,并将所述链表存储在所述指定内存地址所指向的内存空间中,包括:
生成包含链表头和预设数量个存储节点的链表;
根据所述数据结构体信息和所述指定内存地址初始化所述链表头参数和所述节点头参数;
在所述指定内存地址所指向的内存空间中依次存储链表头参数和节点头参数,其中,每个节点头参数的内存空间大小相等。
6.根据权利要求4所述的基于链表的数据缓存方法,其特征在于,所述指定内存所指向的内存空间为静态分配的内存空间。
7.根据权利要求5所述的基于链表的数据缓存方法,其特征在于,所述数据结构体信息包括数据结构体大小,所述根据所述数据结构体信息和所述指定内存地址初始化所述链表头参数和所述节点头参数,包括:
初始化所述链表头的链表头参数,所述链表头参数包括链表存储地址、存储节点总数、当前访问节点号、节点头参数内存空间大小、已使用存储节点数以及头节点地址,其中,所述链表存储地址为所述指定内存地址,所述...
【专利技术属性】
技术研发人员:江汉朝,
申请(专利权)人:广州极飞科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。