CN110515959A - 数据一致性实现方法、装置及可读存储介质 - Google Patents

数据一致性实现方法、装置及可读存储介质 Download PDF

Info

Publication number
CN110515959A
CN110515959A CN201910678446.2A CN201910678446A CN110515959A CN 110515959 A CN110515959 A CN 110515959A CN 201910678446 A CN201910678446 A CN 201910678446A CN 110515959 A CN110515959 A CN 110515959A
Authority
CN
China
Prior art keywords
data
caching
identification
data identification
database
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.)
Granted
Application number
CN201910678446.2A
Other languages
English (en)
Other versions
CN110515959B (zh
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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910678446.2A priority Critical patent/CN110515959B/zh
Publication of CN110515959A publication Critical patent/CN110515959A/zh
Application granted granted Critical
Publication of CN110515959B publication Critical patent/CN110515959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

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

Abstract

本发明实施例提供了一种数据一致性实现方法、装置及可读存储介质。本发明数据一致性实现方法,包括:接收终端设备发送的数据查询请求,响应于所述数据查询请求,对所述第一数据标识执行第一加锁操作,并判断缓存中是否存在与第一数据标识关联的第一数据,若所述缓存中未存在与第一数据标识关联的所述第一数据,则从数据库中读取所述第一数据,并将读取的第一数据更新到所述缓存中。从而保证了数据库中的数据和缓存中的数据一致性。

Description

数据一致性实现方法、装置及可读存储介质
技术领域
本发明涉及通信领域,特别是涉及一种数据一致性实现方法、装置及可读存储介质。
背景技术
互联网环境中,对数据库系统的访问量大幅度提升,当同一时间对数据库系统的访问请求较多时,数据库的压力将大大增加,为了减轻数据库的压力,缓存是现在数据库系统中不可缺少的部分,通过缓存能够大大降低数据库的压力。
目前最常用的缓存模式为Cache Aside,具体流程为:查询数据时,应用程序先从缓存取数据,若没有获取数据,则从数据库中取数据,从数据库获取数据后,把获取的数据放到缓存中;若从缓存中获取到数据(命中缓存)则直接返回。需要更新数据库的数据时,是先把新数据存到数据库中,成功后,再删除缓存中的老数据。
然而,由于现有技术中需要同时维护两个数据存储,两个数据存储包括缓存和数据库,先更新数据库的数据,再删除缓存中的老数据的方式存在如下问题:如果查询操作没有命中缓存,之后从数据库查询到数据(例如数据A),此时有一个与查询操作并发的更新操作,更新操作在查询操作之后更新了数据库中的数据(例如更新数据后将数据A更新为数据B),并且删除了缓存中的数据,在删除缓存中的数据后查询操作将从数据库中读出的数据(数据A)更新回了缓存。这样就会导致数据库中的数据(数据B)和缓存中的数据(数据A)不一致,之后的查询操作从缓存中读取的都是老数据(脏数据)。
发明内容
本发明实施例提供一种数据一致性实现方法、装置及可读存储介质,以解决现有技术的方案在并发业务场景中,导致的缓存中的数据和数据库中的数据不一致的问题。
本发明实施例的第一方面,提供了一种数据一致性实现方法,执行于服务端,包括:
接收终端设备发送的数据查询请求,所述数据查询请求包括第一数据标识;
响应于所述数据查询请求,对所述第一数据标识执行第一加锁操作,并判断缓存中是否存在与所述第一数据标识关联的第一数据;
若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则从数据库中读取所述第一数据,并将读取的所述第一数据更新到所述缓存中。
本发明实施例的第二方面,提供了一种数据一致性实现装置,设置于服务端,包括:
第一接收模块,用于接收终端设备发送的数据查询请求,所述数据查询请求包括第一数据标识;
第一加锁模块,用于响应于所述数据查询请求,对所述第一数据标识执行第一加锁操作,并判断缓存中是否存在与所述第一数据标识关联的第一数据;
读取模块,用于若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则从数据库中读取所述第一数据,并将读取的所述第一数据更新到所述缓存中。
本发明实施例的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述所述的数据一致性实现方法的步骤。
本发明的第四方面,提供了一种数据一致性实现装置,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述所述的数据一致性实现方法的步骤。
针对在先技术,本发明具备如下优点:
通过对第一数据标识执行第一加锁操作,执行第一加锁操作后,服务端不再执行其他的包括第一数据标识的数据查询请求或数据更新请求,因此,从数据库中读取第一数据后,不会如现有技术中存在与数据查询请求并发的、且包括第一数据标识的数据更新操作。因此可以将从数据库中读取的第一数据直接更新到缓存中,将从数据库中读取的第一数据更新到缓存之前,不存在数据更新操作更新缓存和数据库,因此保证了数据库中的数据和缓存中的数据一致性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种实现数据一致性方法的系统框图;
图2为本发明实施例提供的一种数据一致性实现方法的步骤流程图;
图3为本发明实施例提供的另一种数据一致性实现方法的步骤流程图;
图4为本发明实施例提供的一种数据一致性实现装置;
图5为本发明实施例提供的另一种数据一致性实现装置。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。
参照图1,图1为本发明实施例提供的一种实现数据一致性方法的系统框图,该系统包括终端设备101和部署有服务端的服务器102,服务端可以为缓存服务服务端。实现数据一致性方法可以包括:终端设备101向服务器102发送数据查询请求,数据查询请求包括第一数据标识;服务器102通过服务端接收终端设备101发送的数据查询请求,响应于数据查询请求,对第一数据标识执行第一加锁操作,并判断缓存中是否存在与第一数据标识关联的第一数据;若缓存中未存在与第一数据标识关联的第一数据,则从数据库中读取第一数据,并将读取的第一数据更新到缓存中。
由于现有技术中,由于先更新数据库的数据,再删除缓存中的老数据的方式存在如下技术问题:如果查询操作没有命中缓存,之后从数据库查询到数据(例如数据A),此时有一个与查询操作并发的更新操作,更新操作在查询操作之后更新了数据库中的数据(例如更新数据后将数据A更新为数据B),并且删除了缓存中的数据,在删除缓存中的数据后查询操作将从数据库中读出的数据(数据A)更新回了缓存。这样就会导致数据库中的数据(数据B)和缓存中的数据(数据A)不一致,之后的查询操作从缓存中读取的都是老数据(脏数据)。而本实施中对第一数据标识执行了第一加锁操作,执行第一加锁操作后,服务端不再执行其他的包括第一数据标识的数据查询请求或数据更新请求,因此,从数据库中读取第一数据后,不会如现有技术中存在与数据查询请求并发的、且包括第一数据标识的数据更新操作(也即对第一数据标识关联的第一数据进行更新的操作),从而使本实施例提供的数据一致性实现方法在对第一数据标识关联的第一数据进行查询时,不会存在如现有技术中更新数据库中的第一数据、以及删除缓存中的第一数据,并且在删除缓存中的第一数据后才将通过数据查询请求读取的第一数据更新到缓存中导致数据库中的数据和缓存中的数据不一致的情况发生。也即本实施例提供的数据一致性实现方法保证了数据库中的数据和缓存中的数据一致性。
需要说明的是,对第一数据标识执行第一加锁操作也即对该数据查询请求执行加锁操作,对数据查询请求执行加锁操作后,服务端不再执行其他的包括第一数据标识的数据查询请求或数据更新请求。对第一数据标识执行第一加锁操作可以通过行级锁的方式实现,也即当前仅支持对数据库中与第一数据标识关联的一行数据记录中的第一数据进行读取,以及将读取的第一数据更新到缓存中的操作。其中,行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行数据记录进行加锁,这样其它进程还是可以对同一个表中的其它行的数据记录进行操作,行级锁能够减少对数据库操作的冲突。
参照图2,图2为本发明实施例提供的一种数据一致性实现方法的步骤流程图,本实施例的数据一致性实现方法适用于能够实现缓存中的数据和数据库中的数据保持一致性的情况。本实施例的方法执行于服务端,服务端可以部署在服务器上。本实施例的方法包括如下步骤:
步骤201、接收终端设备发送的数据查询请求,数据查询请求包括第一数据标识。
终端设备包括但不限于智能手机、平板电脑、台式计算机等。终端设备可以向服务端发送数据请求,数据请求中可以携带请求的类型标识,服务端可以根据终端设备发送的请求的类型标识判断数据请求的类型,数据请求的类型可以为数据查询请求或者为数据更新请求。本步骤中接收到的数据请求为终端设备发送的数据查询请求。
步骤202、响应于数据查询请求,对第一数据标识执行第一加锁操作,并判断缓存中是否存在与第一数据标识关联的第一数据。
其中,第一数据标识可以为第一数据的身份标识。
步骤203、若缓存中未存在与第一数据标识关联的第一数据,则从数据库中读取第一数据,并将读取的第一数据更新到缓存中。
需要说明的是,由于在步骤202中,对第一数据标识执行了第一加锁操作,执行第一加锁操作后,服务端不再执行其他的包括第一数据标识的数据查询请求或数据更新请求。因此,在步骤203中,从数据库中读取第一数据后,不会如现有技术中存在与数据查询请求并发的、且包括第一数据标识的数据更新操作(也即对第一数据标识关联的第一数据进行更新的操作),因此可以将从数据库中读取的第一数据直接更新到缓存中,将从数据库中读取的第一数据更新到缓存之前,不存在更新操作更新缓存和数据库,从而保证了数据库中的数据和缓存中的数据一致性。
并且,由于数据库的输入输出(IO,Input/Output)比较慢,仅仅采用数据库不存在不一致的问题,但是不能保证较高的IO吞吐量,而本实施中服务端封装了缓存,因此能够保证较高的IO吞吐量,并且解决了缓存中的数据和数据库中的数据不一致的问题,因此本实施例提供的数据一致性实现方法不但保证了较高的IO吞吐量,而且保证了缓存中的数据和数据库中的数据的一致性。
参照图3,图3为本发明实施例提供的另一种数据一致性实现方法的步骤流程图,本实施例的方法包括如下步骤:
步骤301、接收终端设备发送的数据请求。
若数据请求为数据查询请求,则执行步骤302;若数据请求为数据更新请求,则执行步骤303。
步骤302、响应于数据查询请求,对第一数据标识执行第一加锁操作,并判断缓存中是否存在与第一数据标识关联的第一数据。
本步骤可以参照步骤202,在此不再赘述。
其中,若缓存中存在与第一数据标识关联的第一数据,则执行步骤304;若缓存中未存在与第一数据标识关联的第一数据,则执行步骤305。
步骤303、响应于数据更新请求,对第一数据标识执行第二加锁操作,并判断缓存中是否存在与第一数据标识关联的第一数据。
其中,数据更新请求包括第一数据标识和与第一数据标识对应的待更新数据。若缓存中存在与第一数据标识关联的第一数据,则执行步骤306;若缓存中未存在与第一数据标识关联的第一数据,则执行步骤307。
需要说明的是,响应于数据更新请求,对第一数据标识执行第二加锁操作上述实施例中对第一数据标识执行第一加锁操作的原理相同,也即不再执行其他的包含第一数据标识的数据查询请求或数据更新请求,为避免重复,此处不再赘述。
步骤304、从缓存中读取第一数据。
其中,步骤304执行完成后,也即数据查询请求执行完成后,可以对第一数据标识执行第一解锁操作。读取第一数据后,可执行步骤308,也即将第一数据发送给终端设备。
步骤305、从数据库中读取第一数据,并将读取的第一数据更新到缓存中。
需要说明的是,由于在步骤302中对第一数据标识执行了第一加锁操作,执行第一加锁操作后,服务端不再执行其他的包括第一数据标识的数据查询请求或数据更新请求,因此,从数据库中读取第一数据后,不会如现有技术中存在与数据查询请求并发的、且包括第一数据标识的数据更新操作(也即对第一数据标识关联的第一数据进行更新的操作),也即执行步骤302时,不会执行步骤303,从而使在对第一数据标识关联的第一数据进行查询时,不会存在如现有技术中更新数据库中的第一数据、以及删除缓存中的第一数据的情况,以及在删除缓存中的第一数据后才将通过步骤305从数据库中读取的第一数据更新到缓存中,导致数据库中的数据和缓存中的数据不一致的情况发生。也即本实施例提供的数据一致性实现方法保证了数据库中的数据和缓存中的数据一致性。
从数据库中读取第一数据,并将读取的第一数据更新到缓存中后,也即在数据查询请求执行完成后,即可以对第一数据标识执行第一解锁操作。对第一数据标识执行第一解锁操作后,才能执行对包含第一数据标识的其他数据查询请求或数据更新请求的操作。
步骤305执行完后,可以执行步骤308,也即将第一数据发送给终端设备。
步骤306、采用待更新数据更新缓存中的第一数据和数据库中的第一数据。
需要说明的是,步骤306执行完成后,也即更新数据请求执行完成后,需要对第一数据标识执行第二解锁操作,以便后续对包含第一数据标识的数据查询请求或数据更新请求的操作。
步骤307、将待更新数据更新到数据库中。
需要说明的是,步骤307执行完成后,也即更新数据请求执行完成后,也需要对第一数据标识执行第二解锁操作,以便后续对包含第一数据标识的数据查询请求或数据更新请求的操作。
步骤308、将第一数据发送给终端设备。
需要说明的是,对于终端设备侧而言,终端设备只需向服务器发送数据请求即可查询数据或者更新数据,便于终端设备侧的用户使用。
参照图4,图4为本发明实施例提供的一种数据一致性实现装置,该装置400可以设置于服务端,包括:
第一接收模块410,用于接收终端设备发送的数据查询请求,所述数据查询请求包括第一数据标识;
第一加锁模块420,用于响应于所述数据查询请求,对所述第一数据标识执行第一加锁操作,并判断缓存中是否存在与所述第一数据标识关联的第一数据;
读取模块430,用于若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则从数据库中读取所述第一数据,并将读取的所述第一数据更新到所述缓存中。
可选的,所述读取模块430,还用于若所述缓存中存在与所述第一数据标识关联的所述第一数据,则从所述缓存中读取所述第一数据,并将所述第一数据发送给所述终端设备。
可选的,参照图5,图5为本发明实施例提供的另一种数据一致性实现装置,装置400还可以包括:
第一解锁模块510,用于在所述数据查询请求执行完成后,对所述第一数据标识执行第一解锁操作。
可选的,装置400还可以包括:
第二接收模块520,用于接收所述终端设备发送的数据更新请求,所述数据更新请求包括所述第一数据标识和与所述第一数据标识对应的待更新数据;
第二加锁模块530,用于响应于所述数据更新请求,对所述第一数据标识执行第二加锁操作,并判断所述缓存中是否存在与所述第一数据标识关联的所述第一数据;
更新模块540,用于若所述缓存中存在与所述第一数据标识关联的所述第一数据,则采用所述待更新数据更新所述缓存中的所述第一数据和所述数据库中的所述第一数据。
可选的,所述更新模块540,还用于若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则将所述待更新数据更新到所述数据库中。
可选的,装置400还可以包括:
第二解锁模块550,用于在所述数据更新请求执行完成后,对所述第一数据标识执行第二解锁操作。
另外,本发明实施例还提供一种数据一致性实现装置,该数据一致性实现装置包括处理器,存储器以及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述实施例的数据一致性实现方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的数据一致性实现方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,的计算机可读存储介质,可以为只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本发明实施例还提供了一种计算机程序,该计算机程序可以存储在云端或本地的存储介质上。在该计算机程序被计算机或处理器运行时用于执行本发明实施例的数据一致性实现方法的相应步骤,并且用于实现根据本发明实施例的数据一致性实现装置中的相应模块。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的数据一致性实现方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据一致性实现方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (13)

1.一种数据一致性实现方法,其特征在于,执行于服务端,包括:
接收终端设备发送的数据查询请求,所述数据查询请求包括第一数据标识;
响应于所述数据查询请求,对所述第一数据标识执行第一加锁操作,并判断缓存中是否存在与所述第一数据标识关联的第一数据;
若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则从数据库中读取所述第一数据,并将读取的所述第一数据更新到所述缓存中。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述缓存中存在与所述第一数据标识关联的所述第一数据,则从所述缓存中读取所述第一数据,并将所述第一数据发送给所述终端设备。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
在所述数据查询请求执行完成后,对所述第一数据标识执行第一解锁操作。
4.根据权利要求3所述的方法,其特征在于,在所述对所述第一数据标识执行解锁操作之后,还包括:
接收所述终端设备发送的数据更新请求,所述数据更新请求包括所述第一数据标识和与所述第一数据标识对应的待更新数据;
响应于所述数据更新请求,对所述第一数据标识执行第二加锁操作,并判断所述缓存中是否存在与所述第一数据标识关联的所述第一数据;
若所述缓存中存在与所述第一数据标识关联的所述第一数据,则采用所述待更新数据更新所述缓存中的所述第一数据和所述数据库中的所述第一数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则将所述待更新数据更新到所述数据库中。
6.根据权利要求4或5所述的方法,其特征在于,还包括:
在所述数据更新请求执行完成后,对所述第一数据标识执行第二解锁操作。
7.一种数据一致性实现装置,其特征在于,设置于服务端,包括:
第一接收模块,用于接收终端设备发送的数据查询请求,所述数据查询请求包括第一数据标识;
第一加锁模块,用于响应于所述数据查询请求,对所述第一数据标识执行第一加锁操作,并判断缓存中是否存在与所述第一数据标识关联的第一数据;
读取模块,用于若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则从数据库中读取所述第一数据,并将读取的所述第一数据更新到所述缓存中。
8.根据权利要求7所述的装置,其特征在于,
所述读取模块,还用于若所述缓存中存在与所述第一数据标识关联的所述第一数据,则从所述缓存中读取所述第一数据,并将所述第一数据发送给所述终端设备。
9.根据权利要求7或8所述的装置,其特征在于,还包括:
第一解锁模块,用于在所述数据查询请求执行完成后,对所述第一数据标识执行第一解锁操作。
10.根据权利要求9所述的装置,其特征在于,还包括:
第二接收模块,用于接收所述终端设备发送的数据更新请求,所述数据更新请求包括所述第一数据标识和与所述第一数据标识对应的待更新数据;
第二加锁模块,用于响应于所述数据更新请求,对所述第一数据标识执行第二加锁操作,并判断所述缓存中是否存在与所述第一数据标识关联的所述第一数据;
更新模块,用于若所述缓存中存在与所述第一数据标识关联的所述第一数据,则采用所述待更新数据更新所述缓存中的所述第一数据和所述数据库中的所述第一数据。
11.根据权利要求10所述的装置,其特征在于,
所述更新模块,还用于若所述缓存中未存在与所述第一数据标识关联的所述第一数据,则将所述待更新数据更新到所述数据库中。
12.根据权利要求10或11所述的装置,其特征在于,还包括:
第二解锁模块,用于在所述数据更新请求执行完成后,对所述第一数据标识执行第二解锁操作。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的数据一致性实现方法。
CN201910678446.2A 2019-07-25 2019-07-25 数据一致性实现方法、装置及可读存储介质 Active CN110515959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910678446.2A CN110515959B (zh) 2019-07-25 2019-07-25 数据一致性实现方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910678446.2A CN110515959B (zh) 2019-07-25 2019-07-25 数据一致性实现方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN110515959A true CN110515959A (zh) 2019-11-29
CN110515959B CN110515959B (zh) 2022-09-20

Family

ID=68624091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910678446.2A Active CN110515959B (zh) 2019-07-25 2019-07-25 数据一致性实现方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN110515959B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198517A1 (en) * 2004-06-08 2007-08-23 Stefan Bresch Interface to lock a database row through a logical locking interface
CN101765096A (zh) * 2008-12-26 2010-06-30 中兴通讯股份有限公司 定购关系查询方法、装置和系统
CN102831156A (zh) * 2012-06-29 2012-12-19 浙江大学 一种云计算平台上的分布式事务处理方法
CN105138587A (zh) * 2015-07-31 2015-12-09 小米科技有限责任公司 数据访问方法、装置和系统
US20160147859A1 (en) * 2014-11-25 2016-05-26 Juchang Lee Transactional and Parallel Log Replay for Asynchronous Table Replication
CN106708975A (zh) * 2016-12-06 2017-05-24 上海艾融软件股份有限公司 商品库存信息的处理方法及系统
CN107122410A (zh) * 2017-03-29 2017-09-01 武汉斗鱼网络科技有限公司 一种缓存更新方法及装置
CN107391041A (zh) * 2017-07-28 2017-11-24 郑州云海信息技术有限公司 一种数据访问方法及装置
CN107644071A (zh) * 2017-09-18 2018-01-30 广州爱九游信息技术有限公司 缓存更新方法、装置及数据存储系统
CN108345627A (zh) * 2017-12-19 2018-07-31 海尔优家智能科技(北京)有限公司 本地缓存数据更新的方法、装置、可读存储介质及设备
CN109145020A (zh) * 2018-07-23 2019-01-04 程之琴 信息查询方法、从服务器、客户端及计算机可读存储介质
CN109271258A (zh) * 2018-08-28 2019-01-25 百度在线网络技术(北京)有限公司 读写锁重入的实现方法、装置、终端及存储介质
CN109597818A (zh) * 2018-11-28 2019-04-09 优刻得科技股份有限公司 数据更新方法、装置、存储介质和设备
CN109885786A (zh) * 2019-01-23 2019-06-14 聚好看科技股份有限公司 数据缓存处理方法、装置、电子设备及可读存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198517A1 (en) * 2004-06-08 2007-08-23 Stefan Bresch Interface to lock a database row through a logical locking interface
CN101765096A (zh) * 2008-12-26 2010-06-30 中兴通讯股份有限公司 定购关系查询方法、装置和系统
CN102831156A (zh) * 2012-06-29 2012-12-19 浙江大学 一种云计算平台上的分布式事务处理方法
US20160147859A1 (en) * 2014-11-25 2016-05-26 Juchang Lee Transactional and Parallel Log Replay for Asynchronous Table Replication
CN105138587A (zh) * 2015-07-31 2015-12-09 小米科技有限责任公司 数据访问方法、装置和系统
CN106708975A (zh) * 2016-12-06 2017-05-24 上海艾融软件股份有限公司 商品库存信息的处理方法及系统
CN107122410A (zh) * 2017-03-29 2017-09-01 武汉斗鱼网络科技有限公司 一种缓存更新方法及装置
CN107391041A (zh) * 2017-07-28 2017-11-24 郑州云海信息技术有限公司 一种数据访问方法及装置
CN107644071A (zh) * 2017-09-18 2018-01-30 广州爱九游信息技术有限公司 缓存更新方法、装置及数据存储系统
CN108345627A (zh) * 2017-12-19 2018-07-31 海尔优家智能科技(北京)有限公司 本地缓存数据更新的方法、装置、可读存储介质及设备
CN109145020A (zh) * 2018-07-23 2019-01-04 程之琴 信息查询方法、从服务器、客户端及计算机可读存储介质
CN109271258A (zh) * 2018-08-28 2019-01-25 百度在线网络技术(北京)有限公司 读写锁重入的实现方法、装置、终端及存储介质
CN109597818A (zh) * 2018-11-28 2019-04-09 优刻得科技股份有限公司 数据更新方法、装置、存储介质和设备
CN109885786A (zh) * 2019-01-23 2019-06-14 聚好看科技股份有限公司 数据缓存处理方法、装置、电子设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈飞达: "分布式库存信息系统方案研究", 《信息通信》 *

Also Published As

Publication number Publication date
CN110515959B (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
US10503720B2 (en) Providing eventual consistency for multi-shard transactions
US7752165B2 (en) Persistent query system for automatic on-demand data subscriptions from mobile devices
CN108234641A (zh) 基于分布式一致性协议实现的数据读写方法及装置
CN109597818A (zh) 数据更新方法、装置、存储介质和设备
CN108846753B (zh) 用于处理数据的方法和装置
CN109117169A (zh) 用于修复内核漏洞的方法和装置
CN109391664A (zh) 用于多集群容器部署的系统和方法
CN104423982B (zh) 请求的处理方法和处理设备
US20160210313A1 (en) System for high-throughput handling of transactions in a data-partitioned, distributed, relational database management system
US10880260B1 (en) Distributed domain name resolution and method for use of same
CN108614976A (zh) 权限配置方法、装置及存储介质
CN105447167B (zh) 分布式系统中节点缓存数据的处理方法及装置
CN106776795B (zh) 基于Hbase数据库的数据写入方法及装置
CN106844676A (zh) 数据存储方法及装置
CN106776720A (zh) 一种文件处理方法和装置
CN108139927A (zh) 联机事务处理系统中事务的基于动作的路由
CN110515959A (zh) 数据一致性实现方法、装置及可读存储介质
CN113361236A (zh) 一种编辑文档的方法和装置
CN111831744A (zh) Dapp的链上数据检索系统、方法及介质
US10185735B2 (en) Distributed database system and a non-transitory computer readable medium
CN111753141A (zh) 一种数据管理方法及相关设备
US10685014B1 (en) Method of sharing read-only data pages among transactions in a database management system
CN109815213A (zh) 一种Append-Only数据库上删除和修改数据的方法及系统
CN107038617A (zh) 支付订单的预创建方法及装置
CN105630889A (zh) 通用缓存的方法及装置

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
GR01 Patent grant
GR01 Patent grant