CN108829413A - 数据更新方法、装置及计算机可读存储介质、服务器 - Google Patents

数据更新方法、装置及计算机可读存储介质、服务器 Download PDF

Info

Publication number
CN108829413A
CN108829413A CN201810426188.4A CN201810426188A CN108829413A CN 108829413 A CN108829413 A CN 108829413A CN 201810426188 A CN201810426188 A CN 201810426188A CN 108829413 A CN108829413 A CN 108829413A
Authority
CN
China
Prior art keywords
version number
business datum
current
value
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
Application number
CN201810426188.4A
Other languages
English (en)
Inventor
刘硕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201810426188.4A priority Critical patent/CN108829413A/zh
Publication of CN108829413A publication Critical patent/CN108829413A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据处理领域,具体涉及一种数据更新方法、装置及存储介质、服务器,该方法包括:接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。提高在并发环境下对数据的更新的性能及效率。

Description

数据更新方法、装置及计算机可读存储介质、服务器
技术领域
本发明涉及数据处理领域,具体涉及一种数据更新方法、装置及计算机可读存储介质、服务器。
背景技术
在并发环境下对数据的更新操作一般都需要上锁,只有对数据加上锁并且成功之后才能够对其进行操作,否则要等待别的已经获取锁的操作释放才能继续,这种叫悲观锁;还有一种叫乐观锁,即我抢不到锁就不抢了,等我下次想用的时候再来试一下。乐观锁在高并发的应用中有大量的场景需要使用,如购物网站的下单,秒杀等。现有技术方案基于数据库表记录的乐观锁,主要使用一个额外的字段来表示本记录当前的版本号version,只有来加锁的请求带来的版本号和该版本号一致才能够对该记录成功更新。如果有多个线程通知执行,且它们的version都是数据库里对应记录的version,也只能有一个线程操作成功,另外一个失败。数据库的操作是磁盘操作,耗时较高,需要增加额外字段对其进行检索和存储消耗较大。
发明内容
本发明的目的在于提供一种数据更新方法、装置及计算机可读存储介质、服务器,解决目前数据更新操作耗时较高、性能及效率较低的问题。
为实现该目的,本发明采用如下技术方案:
第一方面,本发明提供了一种数据更新方法,包括以下步骤:
接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;
基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;
若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;
若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
一种实施例中,所述根据所述第一版本号更新所述当前版本号之后,还包括:
经过内存数据redis预设的缓存时间后,将所述业务数据的当前值及当前版本号写入持久化数据库中。
另一种实施例中,所述内存数据redis中业务数据的数据结构通过lua 脚本定义,数据结构的前4个字节为业务数据的版本号,后N个字节为业务数据的值,N为预设正整数。
进一步的,所述判断所述当前版本号与所述第一版本号是否匹配之后,还包括:
若不匹配,则向业务数据更新请求方返回业务数据更新失败的提示信息。
具体的,所述根据所述第一版本号更新所述当前版本号,包括:
将所述第一版本号加1作为所述当前版本号。
第二方面,本发明提供一种数据更新装置,包括:
接收模块:用于接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;
获取模块:用于基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;
第一更新模块:用于若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;
第二更新模块:用于若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
一种实施例中,所述装置还包括:
写入模块:用于经过内存数据redis预设的缓存时间后,将所述业务数据的当前值及当前版本号写入持久化数据库中。
另一种实施例中,所述内存数据redis中业务数据的数据结构通过lua 脚本定义,数据结构的前4个字节为业务数据的版本号,后N个字节为业务数据的值,N为预设正整数。
进一步的,所述装置还包括:
提示模块:用于在判断所述当前版本号与所述第一版本号是否匹配之后,若不匹配,则向业务数据更新请求方返回业务数据更新失败的提示信息。
具体的,所述第二更新模块根据所述第一版本号更新所述当前版本号,包括:
将所述第一版本号加1作为所述当前版本号。
第三方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的数据更新方法。
第四方面,本发明还提供了一种服务器,所述服务器包括一个或多个处理器、存储器、一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行上述的数据更新方法。
与现有技术相比,本发明具备如下优点:
本发明提供一种基于内存数据redis和lua插件来实现一个无需固定格式的高效的带版本的业务数据更新功能,在接收业务数据更新请求时获取业务数据更新请求携带的业务数据的更新值及第一版本号,再基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号,然后根据数据的当前值及当前版本号的不同状态更新业务数据的值及版本号,所有操作均在内存redis中执行,没有额外的存储开销,更新操作速度快,避免由于对数据库的操作是磁盘操作而耗时较高、需要增加额外字段对其进行检索和存储消耗较大的问题,提高在并发环境下对数据的更新的性能及效率。
显然,上述有关本发明优点的描述是概括性的,更多的优点描述将体现在后续的实施例揭示中,以及,本领域技术人员也可以本发明所揭示的内容合理地发现本发明的其他诸多优点。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明数据更新方法的一实施例流程示意图;
图2为本发明数据更新装置的一实施例示意图;
图3为本发明服务器的一实施例结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
在一种实施例中,本发明提供一种数据更新方法,如图1所示,包括:
S100:接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号。
本实施例可以应用在购物网站的下单,秒杀等应用场景,商品库存随着用户下单而需要作相应地调整,在该些应用场景下,用户的每一次下单行为都会触发业务数据更新请求,服务器端存储了业务数据如商品的库存量,然后接收所述业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号,以让服务器端根据所述业务数据更新请求对服务器端的业务数据进行更新。
S200:基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号。
本实施例中,服务器端将业务数据存储在内存数据redis中,服务器端接收到所述业务数据更新请求后,基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号,在服务器端,业务数据的版本号以version表征,业务数据的当前值以value表示。
S300:若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;
S310:若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
服务器端在对业务数据进行更新之前,尤其是在高并发场景下对业务数据进行更新之前,需要根据业务数据的当前值及当前版本号判断对所述业务数据更新请求采取怎样的数据更新操作。
一种实现逻辑是,若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值。例如,若业务数据的当前值不存在,即只定义了业务数据的名称,而没有定义业务数据的当前值,如只定义了“string len”,而没有定义“string len=1”,此时业务数据len 的当前值不存在,当有针对业务数据len的更新请求进来时,判断业务数据len的当前版本号是否为第一预设值如0,当为0时,则初始化该业务数据,将业务数据的当前值初始化为业务数据更新请求中业务数据的更新值,将业务数据的当前版本号初始化为第二预设值如1。而在此步骤中,若业务数据的当前值不存在且所述当前版本号不为第一预设值如不为0,则返回数据更新失败的信息。此步骤应用在对业务数据值作第一次处理的情况。
另一种实现逻辑是,当业务数据初始化完成后,所述业务数据的当前值存在,则判断所述当前版本号与所述第一版本号是否匹配,若匹配,则表示此时的业务数据更新请求合法、有效,服务器端修改内存数据redis 中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
本实施例提供一种基于内存数据redis和lua插件来实现一个无需固定格式的高效的带版本的业务数据更新功能,在接收业务数据更新请求时获取业务数据更新请求携带的业务数据的更新值及第一版本号,再基于lua 脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号,然后根据数据的当前值及当前版本号的不同状态更新业务数据的值及版本号,所有操作均在内存redis中执行,没有额外的存储开销,更新操作速度快,避免由于对数据库的操作是磁盘操作而耗时较高、需要增加额外字段对其进行检索和存储消耗较大的问题,提高在并发环境下对数据的更新的性能及效率。
本发明的一种实施例,所述根据所述第一版本号更新所述当前版本号之后,还包括:
经过内存数据redis预设的缓存时间后,将所述业务数据的当前值及当前版本号写入持久化数据库中。
上述实施例均通过内存数据redis对业务数据进行更新,使用redis可以有效减少对数据库的操作,避免由于对数据库的操作是磁盘操作而耗时较高的问题,在内存数据redis对业务数据进行更新后的预设的缓存时间,再将所述业务数据的当前值及当前版本号写入到持久化数据库,完成业务数据的保存。
优选的,本发明实施例中,所述内存数据redis中业务数据的数据结构通过lua脚本定义,数据结构的前4个字节为业务数据的版本号,后N 个字节为业务数据的值,N为预设正整数。
本实施例中,使用lua脚本来定义业务数据的数据结构,数据结构的前4个字节为业务数据的版本号,所述业务数据的当前版本号、第一版本号均为业务数据的版本号的概念范畴,后N个字节为业务数据的值,所述业务数据当前值,更新时均为业务数据的值的概念范畴。
进一步的,本发明的一种实施例中,所述判断所述当前版本号与所述第一版本号是否匹配之后,还包括:
若不匹配,则向业务数据更新请求方返回业务数据更新失败的提示信息。
服务器端在对业务数据更新之前,若业务更新请求的所述第一版本号与业务数据的当前版本号不匹配,则表示此时的业务数据更新请求无效,可能是当前业务数据正在更新而无法再接受其它更新请求,然后向业务数据更新请求方返回业务数据更新失败的提示信息。
本发明的实施例中,所述根据所述第一版本号更新所述当前版本号,包括:
将所述第一版本号加1作为所述当前版本号。
在根据第一版本号更新业务数据的当前版本号时,将所述第一版本号加1作为所述当前版本号。
例如,接收第一次业务数据更新请求,如果业务数据不存在则初始化为业务数据的当前版本号version为1,当前值value为传递进来的value;以后的每次业务数据更新请求时,unpack解码的时候获取业务数据的当前版本号version,并和业务数据更新请求传递进来的第一版本号 expectVersion对比,如果不相同则不能更新业务数据,如果相同则更新业务数据的当前版本号为expectVersion+1并保存当前值为传递进来的 value。
在另一种实施例中,本发明提供一种数据更新装置,如图2所示,包括:
接收模块100:用于接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;
获取模块200:用于基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;
第一更新模块300:用于若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;
第二更新模块310:用于若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
本发明的一种实施例,所述装置还包括:
写入模块:用于经过内存数据redis预设的缓存时间后,将所述业务数据的当前值及当前版本号写入持久化数据库中。
本发明的数量中,所述内存数据redis中业务数据的数据结构通过lua 脚本定义,数据结构的前4个字节为业务数据的版本号,后N个字节为业务数据的值,N为预设正整数。
本发明的一种实施例,所述装置还包括:
提示模块:用于在判断所述当前版本号与所述第一版本号是否匹配之后,若不匹配,则向业务数据更新请求方返回业务数据更新失败的提示信息。
本发明的一种实施例中,所述第二更新模块根据所述第一版本号更新所述当前版本号,包括:
将所述第一版本号加1作为所述当前版本号。
在另一种实施例中,本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例所述的视频处理方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、 EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本发明实施例提供的一种计算机可读存储介质,可实现接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。通过提供一种基于内存数据redis和lua插件来实现一个无需固定格式的高效的带版本的业务数据更新功能,在接收业务数据更新请求时获取业务数据更新请求携带的业务数据的更新值及第一版本号,再基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号,然后根据数据的当前值及当前版本号的不同状态更新业务数据的值及版本号,所有操作均在内存redis中执行,没有额外的存储开销,更新操作速度快,避免由于对数据库的操作是磁盘操作而耗时较高、需要增加额外字段对其进行检索和存储消耗较大的问题,提高在并发环境下对数据的更新的性能及效率。
本发明实施例提供的计算机可读存储介质可以实现上述数据更新方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。
此外,在又一种实施例中,本发明还提供一种服务器,如图3所示,所述服务器处理器303、存储器305、输入单元307以及显示单元309等器件。本领域技术人员可以理解,图3示出的结构器件并不构成对所有服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器305可用于存储应用程序301以及各功能模块,处理器303运行存储在存储器305的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器305可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器305只作为例子而非作为限定。
输入单元307用于接收信号的输入,以及接收用户输入的关键字。输入单元307可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元309可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元309可采用液晶显示器、有机发光二极管等形式。处理器303是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器303内的软件程序和/ 或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。图 3中所示的一个或多个处理器303能够执行、实现图2中所示的接收模块 100、获取模块200、第一更新模块300、第二更新模块310的功能。
在一种实施方式中,所述服务器包括一个或多个处理器303,以及一个或多个存储器305,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器305中并被配置为由所述一个或多个处理器 303执行,所述一个或多个应用程序301配置用于执行以上实施例所述的数据更新方法。
本发明实施例提供的一种服务器,可实现接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据 redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。通过提供一种基于内存数据redis和lua插件来实现一个无需固定格式的高效的带版本的业务数据更新功能,在接收业务数据更新请求时获取业务数据更新请求携带的业务数据的更新值及第一版本号,再基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号,然后根据数据的当前值及当前版本号的不同状态更新业务数据的值及版本号,所有操作均在内存redis中执行,没有额外的存储开销,更新操作速度快,避免由于对数据库的操作是磁盘操作而耗时较高、需要增加额外字段对其进行检索和存储消耗较大的问题,提高在并发环境下对数据的更新的性能及效率。
本发明实施例提供的服务器可以实现上述提供的数据更新方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种数据更新方法,其特征在于,包括:
接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;
基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;
若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;
若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一版本号更新所述当前版本号之后,还包括:
经过内存数据redis预设的缓存时间后,将所述业务数据的当前值及当前版本号写入持久化数据库中。
3.根据权利要求1所述的方法,其特征在于,所述内存数据redis中业务数据的数据结构通过lua脚本定义,数据结构的前4个字节为业务数据的版本号,后N个字节为业务数据的值,N为预设正整数。
4.根据权利要求1所述的方法,其特征在于,所述判断所述当前版本号与所述第一版本号是否匹配之后,还包括:
若不匹配,则向业务数据更新请求方返回业务数据更新失败的提示信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一版本号更新所述当前版本号,包括:
将所述第一版本号加1作为所述当前版本号。
6.一种数据更新装置,其特征在于,包括:
接收模块:用于接收业务数据更新请求,所述业务数据更新请求携带有业务数据的更新值及第一版本号;
获取模块:用于基于lua脚本从内存数据redis中获取所述更新请求对应的业务数据的当前值及当前版本号;
第一更新模块:用于若所述业务数据的当前值不存在且所述当前版本号为第一预设值,则初始化内存数据redis中所述业务数据的当前值为所述更新值,初始化所述当前版本号为第二预设值;
第二更新模块:用于若所述业务数据的当前值存在,判断所述当前版本号与所述第一版本号是否匹配;若匹配,则修改内存数据redis中所述业务数据的当前值为所述更新值,根据所述第一版本号更新所述当前版本号。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
写入模块:用于经过内存数据redis预设的缓存时间后,将所述业务数据的当前值及当前版本号写入持久化数据库中。
8.根据权利要求6所述的装置,其特征在于,所述内存数据redis中业务数据的数据结构通过lua脚本定义,数据结构的前4个字节为业务数据的版本号,后N个字节为业务数据的值,N为预设正整数。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
提示模块:用于在判断所述当前版本号与所述第一版本号是否匹配之后,若不匹配,则向业务数据更新请求方返回业务数据更新失败的提示信息。
10.根据权利要求6所述的装置,其特征在于,所述第二更新模块根据所述第一版本号更新所述当前版本号,包括:
将所述第一版本号加1作为所述当前版本号。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1至5任一项所述的数据更新方法。
12.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据权利要求1至5任一项所述的数据更新方法。
CN201810426188.4A 2018-05-07 2018-05-07 数据更新方法、装置及计算机可读存储介质、服务器 Pending CN108829413A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810426188.4A CN108829413A (zh) 2018-05-07 2018-05-07 数据更新方法、装置及计算机可读存储介质、服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810426188.4A CN108829413A (zh) 2018-05-07 2018-05-07 数据更新方法、装置及计算机可读存储介质、服务器

Publications (1)

Publication Number Publication Date
CN108829413A true CN108829413A (zh) 2018-11-16

Family

ID=64147511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810426188.4A Pending CN108829413A (zh) 2018-05-07 2018-05-07 数据更新方法、装置及计算机可读存储介质、服务器

Country Status (1)

Country Link
CN (1) CN108829413A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502523A (zh) * 2019-08-01 2019-11-26 广东浪潮大数据研究有限公司 业务数据存储方法、装置、服务器及计算机可读存储介质
CN111126948A (zh) * 2019-12-02 2020-05-08 中国建设银行股份有限公司 用于审批流程的处理方法和装置
CN111125057A (zh) * 2019-12-05 2020-05-08 江苏苏宁物流有限公司 一种业务请求的处理方法、装置及计算机系统
CN111177110A (zh) * 2019-06-11 2020-05-19 腾讯科技(深圳)有限公司 库存数据的处理方法及装置
CN111291012A (zh) * 2020-01-16 2020-06-16 深圳市前海随手财富管理有限公司 一种规则文件部署系统、方法、设备及介质
CN111400283A (zh) * 2020-03-19 2020-07-10 中国建设银行股份有限公司 一种数据处理方法、系统、电子设备及存储介质
CN111767074A (zh) * 2020-05-12 2020-10-13 Oppo(重庆)智能科技有限公司 配置更新方法、装置、终端及存储介质
CN111813509A (zh) * 2020-06-09 2020-10-23 四川虹美智能科技有限公司 分布式集群管理方法、装置、存储介质和计算可读介质
CN111984289A (zh) * 2020-07-31 2020-11-24 广州市百果园信息技术有限公司 一种服务更新方法、装置、设备及存储介质
CN112104743A (zh) * 2020-09-21 2020-12-18 北京金山云网络技术有限公司 序列生成方法、装置和电子设备
CN112817995A (zh) * 2021-02-22 2021-05-18 北京奇艺世纪科技有限公司 数据处理方法和装置、电子设备及存储介质
CN112860794A (zh) * 2021-02-03 2021-05-28 百果园技术(新加坡)有限公司 基于缓存的并发能力提升方法、装置、设备及存储介质
CN113220669A (zh) * 2021-06-09 2021-08-06 京东科技控股股份有限公司 业务数据的处理方法、装置及电子设备
CN113282626A (zh) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 基于Redis的缓存数据的方法、装置、计算机设备及存储介质
CN114598559A (zh) * 2021-07-22 2022-06-07 湖南亚信软件有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317914A (zh) * 2014-10-28 2015-01-28 小米科技有限责任公司 数据获取方法和装置
CN104991818A (zh) * 2015-06-30 2015-10-21 北京奇虎科技有限公司 一种数据处理方法、服务器和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317914A (zh) * 2014-10-28 2015-01-28 小米科技有限责任公司 数据获取方法和装置
CN104991818A (zh) * 2015-06-30 2015-10-21 北京奇虎科技有限公司 一种数据处理方法、服务器和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
扑火的蛾: "MySQL乐观锁在分布式场景下的实践", 《HTTPS://SEGMENTFAULT.COM/A/1190000008935924》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177110A (zh) * 2019-06-11 2020-05-19 腾讯科技(深圳)有限公司 库存数据的处理方法及装置
CN110502523A (zh) * 2019-08-01 2019-11-26 广东浪潮大数据研究有限公司 业务数据存储方法、装置、服务器及计算机可读存储介质
CN111126948A (zh) * 2019-12-02 2020-05-08 中国建设银行股份有限公司 用于审批流程的处理方法和装置
CN111125057B (zh) * 2019-12-05 2022-08-19 江苏苏宁物流有限公司 一种业务请求的处理方法、装置及计算机系统
CN111125057A (zh) * 2019-12-05 2020-05-08 江苏苏宁物流有限公司 一种业务请求的处理方法、装置及计算机系统
CN111291012A (zh) * 2020-01-16 2020-06-16 深圳市前海随手财富管理有限公司 一种规则文件部署系统、方法、设备及介质
CN111400283A (zh) * 2020-03-19 2020-07-10 中国建设银行股份有限公司 一种数据处理方法、系统、电子设备及存储介质
CN111400283B (zh) * 2020-03-19 2024-02-06 中国建设银行股份有限公司 一种数据处理方法、系统、电子设备及存储介质
CN111767074A (zh) * 2020-05-12 2020-10-13 Oppo(重庆)智能科技有限公司 配置更新方法、装置、终端及存储介质
CN111813509A (zh) * 2020-06-09 2020-10-23 四川虹美智能科技有限公司 分布式集群管理方法、装置、存储介质和计算可读介质
CN111984289A (zh) * 2020-07-31 2020-11-24 广州市百果园信息技术有限公司 一种服务更新方法、装置、设备及存储介质
CN112104743A (zh) * 2020-09-21 2020-12-18 北京金山云网络技术有限公司 序列生成方法、装置和电子设备
CN112860794A (zh) * 2021-02-03 2021-05-28 百果园技术(新加坡)有限公司 基于缓存的并发能力提升方法、装置、设备及存储介质
CN112817995B (zh) * 2021-02-22 2023-09-15 北京奇艺世纪科技有限公司 数据处理方法和装置、电子设备及存储介质
CN112817995A (zh) * 2021-02-22 2021-05-18 北京奇艺世纪科技有限公司 数据处理方法和装置、电子设备及存储介质
CN113282626A (zh) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 基于Redis的缓存数据的方法、装置、计算机设备及存储介质
CN113220669A (zh) * 2021-06-09 2021-08-06 京东科技控股股份有限公司 业务数据的处理方法、装置及电子设备
CN113220669B (zh) * 2021-06-09 2024-04-16 京东科技控股股份有限公司 业务数据的处理方法、装置及电子设备
CN114598559A (zh) * 2021-07-22 2022-06-07 湖南亚信软件有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN114598559B (zh) * 2021-07-22 2024-06-07 湖南亚信软件有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN108829413A (zh) 数据更新方法、装置及计算机可读存储介质、服务器
CN109032846A (zh) 设备远程备份升级方法、装置、计算机存储介质及设备
CN104714822B (zh) 用于执行操作系统的实时更新的方法和系统
CN105122206B (zh) 用于支持推测的访客返回地址栈仿真的方法和装置
CN110221901A (zh) 容器资源创建方法、装置、设备及计算机可读存储介质
CN105378661B (zh) 资源包索引
US10447812B2 (en) On demand resources
WO2014194695A1 (en) Method and server for pvp team matching in computer games
CN110162525A (zh) 基于b+树的读写冲突解决方法、装置及存储介质
CN109960521B (zh) 应用程序升级方法、装置、电子设备及存储介质
US8959504B2 (en) Update scanning
CN108431831A (zh) 循环代码处理器优化
CN107818129A (zh) 查询可重新开始性
CN109582382B (zh) 配置信息的加载方法、装置、存储介质及终端设备
JP2016503214A (ja) 動的ファームウェア更新
CN108989891A (zh) 电视机系统更新方法、装置、可读存储介质及电视机
CN107391539A (zh) 事务处理方法、服务器和存储介质
CN111737166B (zh) 数据对象的处理方法、装置及设备
KR20130028903A (ko) 대화형 결정 지향적 소프트웨어 애플리케이션을 위한 데이터 스트리밍
US9519494B2 (en) Optimizing application resources
US20120096057A1 (en) Default object fragments
US20150186283A1 (en) Smart Pre-Fetch for Sequential Access on BTree
US10850201B2 (en) Method and apparatus for awarding trophies
CN109660587A (zh) 基于随机数的数据推送方法、装置、存储介质及服务器
JP7293544B2 (ja) 質問回答システムの更新処理方法及び装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20181116