【技术实现步骤摘要】
数据缓存方法、装置、电子设备和可读介质
[0001]本申请涉及计算机
,尤其涉及一种数据缓存方法、装置、电子设备和可读介质。
技术介绍
[0002]随着电子科技和网络技术的发展,物联网(The Internet of Things,简称IOT)技术也愈发成熟。在物联网中,各个物联网终端会通过网络发送请求或者上报数据等操作。在弱网络环境中,当这些操作失败时,物联网终端会将数据缓存在本地以便网络恢复后重新发送。
[0003]在相关技术中,缓存数据的方式通过将缓存文件读取到内存中,对内存的文件进行修改后,再将内存中修改后的内容保存到缓存文件中。
[0004]然而,在该过程中,读写缓存数据时都需要在内核空间和用户空间之间复制缓存数据,期间需要进行多次读写,缓存过程的占用资源多且执行效率低,造成设备卡顿。
技术实现思路
[0005]基于上述技术问题,本申请提供一种数据缓存方法、装置、电子设备和可读介质,以降低缓存过程中需要的读写次数,减少缓存过程的占用资源,提高执行效率以避免设备卡顿。
[0006]本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
[0007]根据本申请实施例的一个方面,提供一种数据缓存方法,包括:
[0008]获取缓存数据;
[0009]根据用户空间的循环队列,获取所述循环队列中的第一虚拟地址,所述用户空间的第一虚拟地址与内核空间中读缓冲区的物理地址之间存在映射关系;
[0010]根据所述第一虚拟
【技术保护点】
【技术特征摘要】
1.一种数据缓存方法,其特征在于,包括:获取缓存数据;根据用户空间的循环队列,获取所述循环队列中的第一虚拟地址,所述用户空间的第一虚拟地址与内核空间中读缓冲区的物理地址之间存在映射关系;根据所述第一虚拟地址与内核空间中读缓冲区的物理地址之间的映射关系,将所述缓存数据写入到所述第一虚拟地址对应的所述内核空间的读缓冲区中;通过所述读缓冲区,将所述缓存数据记录到缓存文件中。2.根据权利要求1所述的方法,其特征在于,所述通过所述读缓冲区,将所述缓存数据记录到缓存文件中之后,所述方法还包括:将所述缓存文件的缓存数据读取到所述读缓冲区中;为所述读缓冲区中的缓存数据分配第二虚拟地址,所述第二虚拟地址与所述读缓冲区的物理地址之间存在映射关系;根据所述第二虚拟地址与所述读缓冲区的物理地址之间的映射关系和所述读缓冲区的所述缓存数据,在所述用户空间中构建循环队列,所述循环队列中的存储空间通过所述第二虚拟地址指示所述读缓冲区中的缓存数据;通过所述循环队列,发送所述缓存数据。3.根据权利要求2所述的方法,其特征在于,所述通过所述循环队列,发送所述缓存数据,包括:检查所述循环队列的队头指针和所述队尾指针在所述循环队列中指示的位置;若所述队头指针和所述队尾指针指示的位置不同,则将所述队头指针移动到所述队尾指针所指示的位置;根据所述队头指针所指示的虚拟地址的映射关系,从所述读缓存区中读取待发送缓存数据;发送所述待发送缓存数据并将所述队头指针前移到下一个位置。4.根据权利要求3所述的方法,其特征在于,所述发送所述待发送缓存数据并将所述队头指针前移到下一个位置之后,所述方法还包括:将所述队尾指针前移到指示所述待处理存储空间的位置;根据所述队尾指针所指示的虚拟地址的映射关系,将所述待发送缓存数据从所述内核空间的所述读缓冲区中删除;根据所述读缓冲区的数据,更新所述缓存文件以将所述待发送缓存数据从所述缓存文件中删除。5.根据权利要求2所述的方法,其特征在于,所述通过所述循环队列,发送所述缓存数据,包括:检查所述队头指针和所述队尾指针在所述循环队列中指示的位置;若所述队头指针和所述队尾指针指示的位置相同,则停止发送数据;若所述队头指针和所述队尾指针指示的位置不同,则根据所述队尾指针当前指示存储空间的虚拟地址,从所述读缓存区中读取待发送缓存数据;发送所述待发送缓存数据并将所述队尾指针前移到下一个位置。6.根据权利要求1所述的方法,其特征在于,所述根据用户空间的循环队列,获取所述
循环队列中的第一虚拟地址,包括:根据所述循环队列中存储空间的排列顺序以及所述循环队列的队头指针和队尾指针当前指示的位置,将所述队头指针移动到下一个位置;获取所述队头指针当前指示位置的地址作为所述第一虚拟地址。7.根据权利要求6所述的方法,其特征在于,所述根据所述循环队列中存储空间的排列顺序以及所述循环队列的队头指针和队...
【专利技术属性】
技术研发人员:张志强,侯锦坤,郭润增,王少鸣,张晓翼,吴进发,王丹伟,刘鸿达,晋中望,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。