【技术实现步骤摘要】
数据更新方法、装置及计算机可读存储介质、服务器
本专利技术涉及数据处理领域,具体涉及一种数据更新方法、装置及计算机可读存储介质、服务器。
技术介绍
在并发环境下对数据的更新操作一般都需要上锁,只有对数据加上锁并且成功之后才能够对其进行操作,否则要等待别的已经获取锁的操作释放才能继续,这种叫悲观锁;还有一种叫乐观锁,即我抢不到锁就不抢了,等我下次想用的时候再来试一下。乐观锁在高并发的应用中有大量的场景需要使用,如购物网站的下单,秒杀等。现有技术方案基于数据库表记录的乐观锁,主要使用一个额外的字段来表示本记录当前的版本号version,只有来加锁的请求带来的版本号和该版本号一致才能够对该记录成功更新。如果有多个线程通知执行,且它们的version都是数据库里对应记录的version,也只能有一个线程操作成功,另外一个失败。数据库的操作是磁盘操作,耗时较高,需要增加额外字段对其进行检索和存储消耗较大。
技术实现思路
本专利技术的目的在于提供一种数据更新方法、装置及计算机可读存储介质、服务器,解决目前数据更新操作耗时较高、性能及效率较低的问题。为实现该目的,本专利技术采用如下 ...
【技术保护点】
1.一种数据更新方法,其特征在于,包括:接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
【技术特征摘要】
1.一种数据更新方法,其特征在于,包括:接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一版本号更新所述当前版本号之后,还包括:经过内存数据redis预设的缓存时间后,将所述业务数据的当前值及当前版本号写入持久化数据库中。3.根据权利要求1所述的方法,其特征在于,所述内存数据redis中业务数据的数据结构通过lua脚本定义,数据结构的前4个字节为业务数据的版本号,后N个字节为业务数据的值,N为预设正整数。4.根据权利要求1所述的方法,其特征在于,所述判断所述当前版本号与所述第一版本号是否匹配之后,还包括:若不匹配,则向业务数据更新请求方返回业务数据更新失败的提示信息。5.根据权利要求1所述的方法,其特征在于,所述根据所述第一版本号更新所述当前版本号,包括:将所述第一版本号加1作为所述当前版本号。6.一种数据更新装置,其特征在于,包括:接收模块:用于接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;获取模块:用于基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号...
【专利技术属性】
技术研发人员:刘硕,
申请(专利权)人:北京达佳互联信息技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。