一种数据更新方法、装置及相关设备制造方法及图纸

技术编号:35924354 阅读:23 留言:0更新日期:2022-12-10 11:13
本发明专利技术适用于互联网广告技术领域,本发明专利技术涉及一种数据更新方法、装置及相关设备,该方法包括步骤:获取数据的更新请求;根据所述数据的数据量在线程池中分配多个线程执行;到预设的缓存中寻找对应的第一缓存数据;若所述缓存中找到对应的第一缓存数据,则基于所述第一缓存数据组装好待更新的数据,提交给数据库;若所述缓存中未找到对应的第一缓存数据,则到所述数据库中进行查询;将从所述数据库中查询到的查询结果写入所述缓存中得到对应的第二缓存数据;基于所述第二缓存数据组装好待更新的数据,提交给数据库。本发明专利技术可提升数据更新效率,提高系统稳定性。提高系统稳定性。提高系统稳定性。

【技术实现步骤摘要】
一种数据更新方法、装置及相关设备


[0001]本专利技术属于计算机
,尤其涉及一种数据更新方法、装置及相关设备。

技术介绍

[0002]随着互联网的发展,电子商务日益显示出巨大的发展潜力,并在各行各业广泛应用。电子商务改造了人们的购物、消费等经济行为的方式,同时结合物流的快速发展,使人们获得服务和产品的速度、丰富度增加。同时,用户的增加也反过来增加电子商务的服务范围,因此,越来越多类型的产品和服务踏入电子商务这一领域。
[0003]在一些时段,一些平台的商品订单会出现爆发式的增长,例如在促销时段,一些促销商品的销售量可达到亿级,又如,在某些高峰时期,票务售票的订单数量也会急剧攀升,如何及时的更新数据库中的订单数据,是一个很大的挑战。
[0004]目前已有的技术解决方案大多是单线程+MySQL。如果数据量的量级是亿级,那么使用单线程则会导致性能低下,再加上没有做缓存,线程会一直占用MySQL资源,这样会阻塞MySQL,从而加剧了MySQL的负载,随时都有可能把MySQL打垮,会存在宕机的危险。

技术实现思路

[0005]本专利技术实施例提供一种数据更新方法,旨在解决上述技术问题。
[0006]第一方面,本专利技术实施例提供一种数据更新方法,包括步骤:
[0007]获取数据的更新请求;
[0008]根据所述数据的数据量在线程池中分配多个线程执行;
[0009]到预设的缓存中寻找对应的第一缓存数据;
[0010]若所述缓存中找到对应的第一缓存数据
[0011]则基于所述第一缓存数据组装好待更新的数据,提交给数据库;
[0012]若所述缓存中未找到对应的第一缓存数据,则到所述数据库中进行查询;
[0013]将从所述数据库中查询到的查询结果写入所述缓存中得到对应的第二缓存数据;
[0014]基于所述第二缓存数据组装好待更新的数据,提交给数据库。
[0015]优选的,所述到预设的缓存中寻找对应的第一缓存数据的步骤中,每个线程之间的第一缓存数据是相互隔离的。
[0016]优选的,所述每个线程与其对应的第一缓存数据通过线程局部变量进行维护,每个线程具有唯一的自定义映射,基于所述自定义映射,每个线程可查询到与之对应的第一缓存数据。
[0017]优选的,所述方法还包括步骤:
[0018]基于预设的规则,淘汰所述缓存中的与所述预设的规则相符的数据。
[0019]优选的,所述基于预设的规则,淘汰所述缓存中的部分所述第一缓存数据的步骤中,所述预设的规则为LRU算法,所述规则中的数据为最近最少被使用的数据。
[0020]优选的,所述缓存为分布式缓存集群。
[0021]优选的,所述方法还包括:
[0022]若所述分布式缓存集群中的一个或多个节点宕机;
[0023]则对所述分布式缓存集群进行水平扩容。
[0024]第二方面,本专利技术实施例还提供一种数据更新装置,包括:
[0025]请求模块,用于获取数据的更新请求;
[0026]线程分配模块,用于根据所述数据的数据量在线程池中分配多个线程执行;
[0027]数据查询模块,用于到预设的缓存中寻找对应的第一缓存数据;
[0028]数据组装模块,用于组装好待更新的数据,并提交给数据库;
[0029]数据写入模块,用于将查询结果写入缓存中;
[0030]若所述数据查询模块在所述缓存中找到对应的第一缓存数据;
[0031]则所述数据组装模块基于所述第一缓存数据组装好待更新的数据,提交给数据库;
[0032]若所述数据查询模块在所述缓存中未找到对应的第一缓存数据,则到所述数据库中进行查询;
[0033]所述数据写入模块将从所述数据库中查询到的查询结果写入所述缓存中得到对应的第二缓存数据;
[0034]所述数据组装模块基于所述第二缓存数据组装好待更新的数据,提交给数据库。
[0035]第三方面,本专利技术实施例还提供一种计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一项所述的数据更新方法中的步骤。
[0036]第四方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的数据更新方法中的步骤。
[0037]本专利技术实施例中,本专利技术数据更新的过程中,查询数据时优先从缓存查,查不到再去数据库查,利用缓存可提高查询性能,同时也减少了MySQL的负载。其次本专利技术实施例中,采用多线程方案可以单次更新多条数据,从而使得系统性能又大大地提升了。
[0038]在另一实施例中,缓存数据采用LRU算法,最近最久未被使用的数据会被淘汰,提高内存的使用率以及缓存查询效率。
[0039]在另一实施例中,通过线程局部变量管理每个线程,保证了多线程运行的安全。
[0040]在另一实施例中,缓存采用分布式缓存集群结构,即使集群中某个节点宕机了,也不会直接影响系统的其他业务,只需水平扩容集群即可。
[0041]基于以上,本专利技术在执行性能方面有明显的提升。单线程只能串型工作,多线程能并行工作,本专利技术的性能是现有技术的N倍以上。引入缓存减少数据库的查询次数,降低了数据库的负载。同时查询内存的性能要比查询数据库要快很多。
附图说明
[0042]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1是本专利技术实施例提供的一种数据更新方法的流程图;
[0044]图2是本专利技术实施例提供的数据更新方法基本流程框图;
[0045]图3是本专利技术实施例提供的数据更新方法数据走向图;
[0046]图4是本专利技术提供的另一实施例的数据走向图;
[0047]图5是本专利技术实施例提供的数据更新装置的结构示意图;
[0048]图6是本专利技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
[0049]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0050]本申请的说明书和权利要求书及附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据更新方法,其特征在于,包括步骤:获取数据的更新请求;根据所述数据的数据量在线程池中分配多个线程执行;到预设的缓存中寻找对应的第一缓存数据;若所述缓存中找到对应的第一缓存数据,则基于所述第一缓存数据组装好待更新的数据,提交给数据库;若所述缓存中未找到对应的第一缓存数据,则到所述数据库中进行查询;将从所述数据库中查询到的查询结果写入所述缓存中得到对应的第二缓存数据;基于所述第二缓存数据组装好待更新的数据,提交给数据库。2.根据权利要求1所述的数据更新方法,其特征在于,所述到预设的缓存中寻找对应的第一缓存数据的步骤中,每个线程之间的第一缓存数据是相互隔离的。3.根据权利要求2所述的广告投放方法,其特征在于,所述每个线程与其对应的第一缓存数据通过线程局部变量进行维护,每个线程具有唯一的自定义映射,基于所述自定义映射,每个线程可查询到与之对应的第一缓存数据。4.根据权利要求1所述的数据更新方法,其特征在于,所述方法还包括步骤:基于预设的规则,淘汰所述缓存中的与所述预设的规则相符的数据。5.根据权利要求4所述的数据更新方法,其特征在于,所述基于预设的规则,淘汰所述缓存中的部分所述第一缓存数据的步骤中,所述预设的规则为LRU算法,所述规则中的数据为最近最少被使用的数据。6.根据权利要求1所述的数据更新方法,其特征在于,所述缓存为分布式缓存集群。7.根据权利要...

【专利技术属性】
技术研发人员:曾文清甘梓亮虞孝伟卢明
申请(专利权)人:广州至真信息科技有限公司
类型:发明
国别省市:

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

1