CN117667964A - 数据处理方法、装置、设备、数据库及计算机程序产品 - Google Patents
数据处理方法、装置、设备、数据库及计算机程序产品 Download PDFInfo
- Publication number
- CN117667964A CN117667964A CN202410115104.0A CN202410115104A CN117667964A CN 117667964 A CN117667964 A CN 117667964A CN 202410115104 A CN202410115104 A CN 202410115104A CN 117667964 A CN117667964 A CN 117667964A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- database
- storage layer
- target
- 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
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 21
- 238000003672 processing method Methods 0.000 title abstract description 28
- 238000013500 data storage Methods 0.000 claims abstract description 190
- 238000012545 processing Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000004891 communication Methods 0.000 claims description 12
- 238000011161 development Methods 0.000 abstract description 6
- 230000015556 catabolic process Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000003993 interaction Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013439 planning Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据处理方法、装置、设备、数据库及计算机程序产品。其中,方法包括:通过缓存读节点获取数据读取请求,缓存读节点位于数据库中,数据库中的缓存读节点与数据库读写节点之间共享数据存储层;确定缓存读节点中的与数据读取请求相对应的目标缓存区域;在目标缓存区域为空的情况下,获取存储在数据存储层中的与数据读取请求相对应的目标数据;将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据一致。本实施例中,有效地实现了无需额外开发、通过数据库与缓存一体化的方式即可保证数据存储层与缓存区域之间的数据一致,这样不仅提高了数据处理的稳定可靠性,并且还能够降低数据库被击穿的风险。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、设备、数据库及计算机程序产品。
背景技术
随着数据库技术的飞速发展,数据库的应用越来越广泛,在利用数据库进行数据读写操作时,数据库和缓存中数据的一致性在当前应用场景中所存在的难题。目前,为了能够实现数据库和缓存中数据的一致性,当前使用的较为广泛的实现方式为:利用中间件来保证数据库与缓存之间的一致性,具体的,可以利用中间件订阅数据库的日志,然后,基于数据库的读写操作来生成投递到消息队列中的消息,利用消息队列中的消息来失效缓存。
然而,在上述实现方式中,数据库的更新操作与缓存中的更新操作是异步进行的,因此只能保证数据库中的数据与缓存中数据的最终一致性,并且有额外的成本。
发明内容
本发明实施例提供了一种数据处理方法、装置、设备、数据库及计算机程序产品,能够实现数据库与缓存之间保持数据一致,保证了数据处理操作的准确可靠性。
第一方面,本发明实施例提供一种数据处理方法,包括:
通过所述缓存读节点获取数据读取请求,其中,所述缓存读节点位于数据库中,所述数据库中的缓存读节点与数据库读写节点之间共享数据存储层;
确定所述缓存读节点中的与所述数据读取请求相对应的目标缓存区域;
在所述目标缓存区域为空的情况下,获取存储在所述数据存储层中的与所述数据读取请求相对应的目标数据;
将所述目标数据更新存储至所述目标缓存区域中,以使所述数据存储层与所述缓存区域之间的数据一致。
第二方面,本发明实施例提供一种数据处理装置,包括:
第一获取模块,用于通过所述缓存读节点获取数据读取请求,其中,所述缓存读节点位于数据库中,所述数据库中的缓存读节点与数据库读写节点之间共享数据存储层;
第一确定模块,用于确定所述缓存读节点中的与所述数据读取请求相对应的目标缓存区域;
所述第一获取模块,还用于在所述目标缓存区域为空的情况下,获取存储在所述数据存储层中的与所述数据读取请求相对应的目标数据;
第一处理模块,用于将所述目标数据更新存储至所述目标缓存区域中,以使所述数据存储层与所述缓存区域之间的数据一致。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的数据处理方法。
第四方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的数据处理方法。
第五方面,本发明实施例提供了一种计算机程序产品,包括:计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器执行上述第一方面中的数据处理方法中的步骤。
第六方面,本发明实施例提供了一种数据库,包括:用于对缓存区域进行读操作的缓存读节点和用于对数据库存储层进行读写操作的数据库读写节点,所述数据库中的缓存读节点与数据库读写节点之间共享数据存储层;所述缓存读节点用于:
获取数据读取请求;
确定所述缓存读节点中的与所述数据读取请求相对应的目标缓存区域;
在所述目标缓存区域为空的情况下,获取存储在所述数据存储层中的与所述数据读取请求相对应的目标数据;
将所述目标数据更新存储至所述目标缓存区域中,以使所述数据存储层与所述缓存区域之间的数据一致。
本实施例提供的数据处理方法、装置、设备、数据库及计算机程序产品,通过缓存读节点获取数据读取请求,确定缓存读节点中的与数据读取请求相对应的目标缓存区域;在目标缓存区域为空的情况下,获取存储在数据存储层中的与数据读取请求相对应的目标数据;并将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据一致;有效地实现了无需额外的开发成本,通过数据库与缓存一体化的方式即可保证数据存储层与缓存区域之间的数据一致,即保证缓存区域与数据存储层之间的数据一致的效果,这样不仅提高了数据处理的稳定可靠性,并且,在目标缓存区域为空时,通过直接访问数据存储层即可直接进行数据读取操作,这样使得缓存读节点能够帮助数据库读写节点挡住一些流量,同时能够降低对数据库读写节点的访问流量,从而能够降低数据库被击穿、被穿透的风险,进一步提高了该方法的实用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术提供的数据写入操作的原理示意图;
图2为本发明实施例提供的一种数据处理方法的原理示意图;
图3为本发明实施例提供的一种数据处理方法的流程示意图;
图4为本发明实施例提供的另一种数据处理方法的流程示意图;
图5为本发明实施例提供的又一种数据处理方法的流程示意图;
图6为本发明应用实施例提供的一种数据库与缓存一致的方法的原理示意图;
图7为本发明实施例提供的一种数据处理装置的结构示意图;
图8为与图7所示实施例提供的数据处理装置对应的电子设备的结构示意图;
图9为本发明实施例提供的一种数据库的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
为了能够理解本实施例中技术方案的具体实现过程,下面先对相关技术进行简要说明:
数据库是一种持久化存储数据的方式,它通常用于存储结构化和长期保留的数据。数据库可以通信连接有数据库管理系统,该数据库管理系统可以负责管理数据库的创建、存储、访问、更新和删除等操作。通过与数据库通信连接的应用程序可以进行高效的数据检索和处理。
缓存是一种临时存储数据的方式,主要用于提高数据的访问速度。缓存通常位于应用程序和数据库之间,当应用程序需要访问数据时,可以先检查缓存中是否有该数据,如果有,则直接从缓存中获取数据,避免了对数据库的访问。如果缓存中没有数据,则从数据库中读取,并将数据存入缓存中,以便下次访问时可以直接从缓存中获取数据。这样通过缓存即可以减少对数据库的访问次数,提高系统的响应速度和并发能力。
随着数据库技术的飞速发展,数据库的应用越来越广泛,在利用数据库进行数据读写操作时,数据库和缓存中数据的一致性在当前应用场景中所存在的难题。具体的,数据库层和缓存层的一致性问题主要是“双写”,即既在数据库中保存一份,也在缓存中保存一份。对于数据库中包括的一份数据和缓存中保存的另一份数据而言,可以通过应用侧来维护两份数据的一致性,维护两份数据的一致性可以包括以下逻辑:数据库(Data Base,简称DB)和缓存Cache的操作先后顺序、Cache选择更新和删除、以及DB和Cache的操作原子性如何保证、失败之后如何重试以及同时保持数据一致等等问题。
除了利用应用逻辑来维护数据库中数据和缓存中数据一致性之外,还可以通过复杂的中间件(包括:消息队列和消费者)来实现数据的最终一致性,具体的,如图1所示,在用户存在数据写入请求时,可以基于数据写入请求更新数据库DB中的数据,为了能够使得DB与缓存区域cache中的数据保持一致,则可以删除对应的缓存区域中的数据。当网络异常情况、cache负载较高等情况出现时,则容易导致删除对应的缓存区域中数据导致失败,为了能够再次对缓存区域中数据进行删除,可以生成删除失败消息发送至消息队列,而后将删除失败的缓存key发送至消费者件,以便通过消息者件来重试删除缓存操作,以实现数据库与cache之间的数据一致性。
由上可知,相关技术中可以通过应用逻辑来实现数据弱一致,在基于数据库和cache进行数据读写操作时,则容易导致数据不一致的情况;而通过复杂的中间件只能实现数据库与cache之间的最终一致性,且有额外的成本。
为了解决上述技术问题,本实施例提供了一种数据处理方法、装置、设备、数据库及计算机程序产品,参考附图2所示,本实施例提供的数据处理方法的执行主体可以为数据处理装置,需要注意的是,该数据处理装置可以实现为能够提供数据库服务的任意设备或者数据库,在数据处理装置实现为数据库时,该数据库可以嵌入到能够提供数据库服务的设备中,例如:终端设备、个人电脑、平板电脑、本地服务器或者云端的服务器,此时,在数据处理装置实现为云端的服务器时,该数据处理方法可以在云端来执行,在云端可以部署有若干计算节点(云服务器),每个计算节点中都具有计算、存储等处理资源。在云端,可以组织由多个计算节点来提供某种服务,当然,一个计算节点也可以提供一种或多种服务。云端提供该服务的方式可以是对外提供服务接口,用户调用该服务接口以使用相应的服务。服务接口包括软件开发工具包(Software Development Kit,简称SDK)、应用程序接口(Application Programming Interface,简称API)等形式。
该数据处理装置与客户端通信连接,其中,客户端用于供用户进行应用,以能够实现数据处理操作,上述的客户端可以是任何具有一定数据传输能力的计算设备,具体实现时,客户端可以是手机、个人电脑PC、平板电脑、设定应用程序等等。此外,客户端的基本结构可以包括:至少一个处理器。处理器的数量取决于客户端的配置和类型。客户端也可以包括存储器,该存储器可以为易失性的,例如:随机存取存储器(Random Access Memory,简称RAM),也可以为非易失性的,例如:只读存储器(Read-Only Memory,简称ROM)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(Operating System,简称OS)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,客户端还包括一些基本配置,例如网卡芯片、IO总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、鼠标、输入笔、打印机等。其它外围设备在本领域中是众所周知的,在此不做赘述。
数据处理装置是指可以在网络虚拟环境中提供数据处理操作的设备,通常是指利用网络进行信息规划以及数据处理操作的装置。在物理实现上,数据处理装置可以是任何能够提供计算服务,响应数据处理请求,并可以基于数据处理请求进行数据处理操作的设备,例如:可以是集群服务器、常规服务器、云服务器、云主机、虚拟中心等。数据处理装置的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
在上述本实施例中,客户端与数据处理装置进行网络连接,该网络连接可以是无线或有线网络连接。若客户端可以与数据处理装置是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G、6G等中的任意一种。
在本申请实施例中,客户端,用于生成或者获取缓存读节点所对应的数据读取请求,具体的,客户端可以显示人机交互界面,获取用户在人机交互界面中输入的执行操作,基于执行操作生成或者获取与缓存读节点相对应的数据读取请求,缓存读节点位于数据库中,数据库中还可以包括数据库读写节点,缓存读节点和数据库读写节点之间共享数据存储层。为了能够通过缓存读节点来实现数据读取操作,可以将数据读取请求发送至数据处理装置。
数据处理装置,用于获取与缓存读节点相对应的数据读取请求,为了能够准确地实现数据读取操作,可以确定缓存读节点中的与数据读取请求相对应的目标缓存区域,在目标缓存区域不为空的情况下,则可以直接通过目标缓存区域获得与数据读取请求相对应的目标数据;在目标缓存区域为空的情况下,则说明缓存读节点中并不存在与数据读取请求相对应的目标数据,此时,则可以通过数据库中的数据存储层获取与数据读取请求相对应的目标数据,由于缓存读节点中的目标缓存区域并不存在与数据读取请求相对应的目标数据,为了能够使得缓存读节点中的缓存区域与数据存储层之间数据一致,则可以将通过数据读取请求读取的目标数据更新存储至目标缓存区域中,这样即实现了数据存储层与缓存区域之间的数据强一致或者一致。有效地实现了无需额外的开发、通过数据库与缓存一体化的方式即可保证数据存储层与缓存区域之间的数据一致,这样不仅提高了数据处理的稳定可靠性,并且由于在目标缓存区域中不存在目标数据时,可以无需通过数据库、直接通过数据存储层进行交互获取到目标数据,这样有效地减少了数据库所需处理的数据读取请求的数量,从而能够降低数据库被击穿、被穿透的风险,进一步提高了该方法的实用性。
下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图3为本发明实施例提供的一种数据处理方法的流程示意图;参考附图3所示,本实施例提供了一种数据处理方法,该方法的执行主体可以为数据处理装置,可以理解的是,该数据处理装置可以实现为软件、或者软件和硬件的组合,具体的,在数据处理装置实现为硬件时,在一些实例中,数据处理装置可以实现为数据库,该数据库可以嵌入在能够实现数据处理操作的各种电子设备,包括但不限于平板电脑、个人电脑PC、服务器等等。当数据处理装置实现为软件时,其可以安装在上述所例举的电子设备中。基于上述的数据处理装置,本实施例中的数据处理方法可以包括以下步骤:
步骤S301:通过缓存读节点获取数据读取请求,其中,缓存读节点位于数据库中,数据库中的缓存读节点与数据库读写节点之间共享数据存储层。
步骤S302:确定缓存读节点中的与数据读取请求相对应的目标缓存区域。
步骤S303:在目标缓存区域为空的情况下,获取存储在数据存储层中的与数据读取请求相对应的目标数据。
步骤S304:将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据一致。
下面对上述各个步骤的具体实现原理和实现效果进行详细说明:
步骤S301:通过缓存读节点获取数据读取请求,其中,缓存读节点位于数据库中,数据库中的缓存读节点与数据库读写节点之间共享数据存储层。
其中,数据处理装置中设置有数据库,数据库可以为计算和存储相分离的结构,具体的,数据库中可以包括:数据存储层和与数据存储层通信连接的数据库读写节点和缓存读节点,上述的数据存储层用于实现数据存储操作,数据库读写节点用于实现对数据存储层进行读写操作,缓存读节点用于实现对缓存区域进行读取操作,并且,数据库读写节点与缓存读节点之间共享数据存储层。
在用户存在数据读取需求时,为了能够实现数据读取操作,可以使得数据处理装置通过缓存读节点获取数据读取请求,在一些实例中,数据读取请求可以通过人机交互操作所获得,此时,通过缓存读节点获取数据读取请求可以包括:显示人机交互界面;获取用户在人机交互界面中输入的数据读取操作;基于数据读取操作和缓存读节点获取数据读取请求。
在另一些实例中,数据读取请求不仅可以通过人机交互操作所获得,可以通过客户端或者第三设备获得数据读取请求,此时,通过缓存读节点获取数据读取请求可以包括:确定与数据处理装置通信连接的客户端或者第三设备;通过客户端或者第三设备可以主动或者被动地将数据读取请求发送至缓存读节点,这样有效地实现了可以通过缓存读节点主动或者被动地获取到数据读取请求,从而有效地保证了对数据读取请求进行获取的准确可靠性。
在又一些实例中,由于数据库中包括缓存读节点和数据库读写节点,而缓存读节点所支持的请求类型为键值类请求,数据库读写节点所支持的请求类型为结构查询语言(Structured Query Language,简称SQL)类型请求,上述的键值类请求和SQL类型请求为不同类型的请求,因此,为了能够在不同的应用场景中基于不同类型的请求来实现数据读取操作或者数据写入操作,数据处理装置中可以配置有用于通过缓存读节点来实现数据读取操作或者通过数据库读写节点来实现数据读写操作的通信接口,例如:数据库读写节点通信连接有数据库接口,缓存读节点通信连接有缓存接口,此时,数据处理装置可以通过缓存接口和缓存读节点获取到数据读取请求,这样同样保证了对数据读取请求进行获取的准确可靠性;相类似的,数据处理装置可以通过数据库接口和数据库读写节点获取到数据读写请求。
步骤S302:确定缓存读节点中的与数据读取请求相对应的目标缓存区域。
在获取到数据读取请求之后,为了能够实现数据的读取操作,则可以确定缓存读节点中的与数据读取节点相对应的目标缓存区域,在一些实例中,目标缓存区域可以通过数据读取请求中的请求区域标识、或者与数据读取请求存在关联关系的请求区域标识来确定,此时,确定缓存读节点中的与数据读取请求相对应的目标缓存区域可以包括:基于数据读取请求,确定请求区域标识;基于请求区域标识来确定目标缓存区域。
举例来说,在缓存读节点中的缓存区域包括:区域1、区域2和区域3时,在获取到数据读取请求之后,基于数据读取请求获取请求区域标识,在请求区域标识与区域3相对应时,则可以确定区域3为目标缓存区域,这样有效地保证了对目标缓存区域进行确定的准确可靠性。
步骤S303:在目标缓存区域为空的情况下,获取存储在数据存储层中的与数据读取请求相对应的目标数据。
在确定目标缓存区域之后,可以识别是否可以通过目标缓存区域获取到与数据读取请求相对应的目标数据;在一些实例中,可以通过识别目标缓存区域是否为空的情况来识别能否目标缓存区域获取到与数据读取请求相对应的目标数据,具体的,在目标缓存区域为非空的情况下,则说明此时的目标缓存区域中存储有与数据读取请求相对应的目标数据,此时则可以直接通过缓存区域获取到目标数据。
相对应的,在目标缓存区域为空的情况下,则说明此时的目标缓存区域中未存储有任何数据,此时,为了保证实现准确地读取到目标数据,可以通过数据存储层获取存储在数据存储层中的与数据读取请求相对应的目标数据,这样有效地保证了对目标数据进行获取的准确可靠性。
另外,在目标缓存区域为空的情况下,为了能够保证通过数据存储层获取目标数据的稳定可靠性,缓存读节点中可以包括与数据存储层通信连接的第二数据库引擎,而后可以通过第二数据库引擎在数据存储层中获取与数据读取请求相对应的目标数据,这样有效地保证了对目标数据进行确定的准确可靠性。
步骤S304:将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据一致。
由于目标缓存区域为空,则说明缓存读节点中的缓存区域中并未存储与数据读取请求相对应的目标数据,为了能够使得缓存读节点中的缓存区域与数据存储层之间保持数据一致,在一些实例中,缓存区域与数据存储层之间的数据可以保持实时一致或者强一致,则可以将目标数据更新存储至目标缓存区域中,这样有效地实现了可以通过数据存储层直接对缓存读节点中的缓存区域进行更新操作,提高了数据更新操作的质量和效率。
本实施例提供的数据处理方法,通过缓存读节点获取数据读取请求,确定缓存读节点中的与数据读取请求相对应的目标缓存区域;在目标缓存区域为空的情况下,获取存储在数据存储层中的与数据读取请求相对应的目标数据;并将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据一致;有效地实现了无需额外的开发成本,通过数据库与缓存一体化的方式即可保证数据存储层与缓存区域之间的数据一致,即保证了缓存区域与数据存储层之间的数据一致的效果,这样不仅提高了数据处理的稳定可靠性,并且,在目标缓存区域为空时,通过直接访问数据存储层即可直接进行数据读取操作,这样使得缓存读节点能够帮助数据库读写节点挡住一些流量,同时能够降低对数据库读写节点的访问流量,从而能够降低数据库被击穿、被穿透的风险,进一步提高了该方法的实用性。
图4为本发明实施例提供的另一种数据处理方法的流程示意图;在上述实施例的基础上,参考附图4所示,在通过缓存读节点获取数据读取请求之后,为了能够稳定地实现数据读取操作,可以先识别数据存储层中是否已写入目标数据,而后可以基于识别结果来进行相对应的数据读取操作,具体的,本实施例中的方法还包括:
步骤S401:识别数据读取请求所对应的目标数据是否写入至数据存储层。
其中,对于数据库中的数据存储层而言,用户可以根据需求向数据存储层中写入多个数据,而多个数据中可以包括与数据读取请求相对应的目标数据,或者,多个数据库中未包括与数据读取请求相对应的目标数据。在多个数据包括与数据读取请求相对应的目标数据的情况下,则能够准确地实现目标数据的读取操作;在多个数据未包括与数据读取请求相对应的目标数据的情况下,则无法准确地实现目标数据的读取操作。
基于上述陈述内容可知,在获取到数据读取请求之后,为了能够保证数据处理操作的稳定可靠性,在通过缓存读节点获取数据读取请求之后,可以识别数据读取请求所对应的目标数据是否写入至数据存储层,在一些实例中,识别数据读取请求所对应的目标数据是否写入至数据存储层可以通过数据匹配操作所实现,此时,识别数据读取请求所对应的目标数据是否写入至数据存储层可以包括:获取与数据读取请求相对应的目标数据以及数据存储层中存储的所有数据;识别所有数据中是否存在目标数据;在所有数据中存在目标数据的情况下,则确定数据读取请求所对应的目标数据已写入至数据存储层;在所有数据中不存在目标数据的情况下,则确定数据读取请求所对应的目标数据未写入至数据存储层。
在另一些实例中,不仅可以通过数据匹配操作来识别数据读取请求所对应的目标数据是否写入至数据存储层,还可以通过写入操作记录来识别数据读取请求所对应的目标数据是否写入至数据存储层,此时,识别数据读取请求所对应的目标数据是否写入至数据缓存层可以包括:通过数据库读写节点获取与数据存储层相对应的写入操作记录;确定与数据读取请求相对应的关键字;基于写入操作记录和关键字,识别数据读取请求所对应的目标数据是否写入至数据存储层。
具体的,在利用数据库读写节点向数据存储层写入数据的情况下,数据库读写节点中可以存储有写入操作记录,或者,数据库读写节点可以对应有写入操作记录,该写入操作记录可以包括利用数据库读写节点在任何时间点、任何场景中向数据存储层中写入数据的相关记录,需要注意的是,该写入操作记录中的任意一个写入操作所对应的数据可能已经写入至数据存储层,或者,写入操作记录中的任意一个写入操作所对应的数据可能正在写入至数据存储层的过程中、且还未存储至数据存储层中。因此,为了能够准确地识别数据读取请求所对应的目标数据是否写入至数据缓存层,在获取到数据读取请求之后,可以通过数据库读写节点获取与数据存储层相对应的写入操作记录。
另外,在获取到数据读取请求之后,可以对数据读取请求进行分析处理,从而可以获得与数据读取请求相对应的关键字key,该关键字key用于标识与数据读取请求相对应的目标数据,在获取到写入操作记录和关键字之后,可以对写入操作记录和关键字进行分析处理,以识别数据读取请求所对应的目标数据是否写入至数据存储层,在一些实例中,识别数据读取请求所对应的目标数据是否写入至数据存储层可以通过预先训练好的机器学习模型或者神经网络模型所实现,此时,识别数据读取请求所对应的目标数据是否写入至数据存储层可以包括:获取预先训练好的机器学习模型或者神经网络模型;将写入操作记录和关键字输入至机器学习模型或者神经网络模型中,获得机器学习模型或者神经网络模型所输出的识别结果,该识别结果可以为用于标识数据读取请求所对应的目标数据已写入或者正在写入至数据存储层的第一识别结果;或者,识别结果可以为用于标识数据读取请求所对应的目标数据未写入至数据存储层的第二识别结果。
在另一些实例中,不仅可以通过预先训练好的机器学习模型或者神经网络模型来识别数据读取请求所对应的目标数据是否写入至数据存储层,还可以直接对写入操作记录和关键字进行分析处理来识别数据读取请求所对应的目标数据是否写入至数据存储层,此时,基于写入操作记录和关键字,识别数据读取请求所对应的目标数据是否写入至数据存储层可以包括:在写入操作记录中包括与关键字相对应的值信息的情况下,则确定目标数据已写入或者正在写入至数据存储层;在写入操作记录中不包括与关键字相对应的值信息的情况下,则确定目标数据未写入数据存储层。
具体的,由于数据存储层中的数据往往以键值对的方式进行存储,因此,在获取到写入操作记录和关键字之后,先获取关键字相对应的值信息,而后识别写入操作记录中是否包括与关键字相对应的值信息,在写入操作记录中包括与关键字相对应的值信息的情况下,则可以确定目标数据已写入或者正在写入至数据存储层,进而则可以基于数据存储层实现准确地数据读取操作。在写入操作记录中不包括与关键字相对应的值信息的情况下,则可以确定目标数据未写入数据存储层,进而则无法基于数据存储层实现准确地数据读取操作。
步骤S402:在目标数据已写入或者正在写入至数据存储层的情况下,则允许确定缓存读节点中的与数据读取请求相对应的目标缓存区域。
步骤S403:在目标数据未写入数据存储层的情况下,则等待直至目标数据写入数据存储层。
在获取到识别结果之后,则可以基于不同的识别结果采用不同的策略来进行数据读取操作,具体的,在识别结果为目标数据已写入或者正在写入至数据存储层时,说明数据存储层中可以在当前时刻或者未来某一时刻存储有与数据读取请求相对应的目标数据,此时则可以通过数据存储层直接实现数据读取操作,进而则允许确定缓存读节点中的与数据读取请求相对应的目标缓存区域。
在目标数据未写入数据存储层的情况下,说明数据存储层中在当前时刻并未存储有与数据读取请求相对应的目标数据,此时,为了能够稳定地实现数据读取操作,则可以先暂停确定缓存读节点中的与数据读取请求相对应的目标缓存区域,并进行等待,直至目标数据写入至数据存储层,当确定目标数据已写入至数据存储层时,则可以允许确定缓存读节点中的与数据读取请求相对应的目标缓存区域,以便基于目标缓存区域进行相对应的数据读取操作,进而保证了数据处理操作的稳定运行。
本实施例中,通过识别数据读取请求所对应的目标数据是否写入至数据存储层,在目标数据已写入或者正在写入至数据存储层的情况下,则允许确定缓存读节点中的与数据读取请求相对应的目标缓存区域;在目标数据未写入数据存储层的情况下,则等待直至目标数据写入数据存储层,从而有效地实现了可以基于数据存储层中是否写入目标数据的结果来采用不同的策略来进行数据读取操作,进一步提高了该方法的实用性。
图5为本发明实施例提供的又一种数据处理方法的流程示意图;在上述任意一个实施例的基础上,参考附图5所示,本实施例中的方法不仅可以实现数据读取操作,还可以利用数据库读写节点来实现数据写入操作,此时,在通过缓存读节点获取数据读取请求之前,本实施例中的方法还可以包括:
步骤S501:通过数据库读写节点获取与待执行数据相对应的数据写入请求。
在用户存在数据写入需求时,可以使得数据处理装置通过数据库读写节点获取与待执行数据相对应的数据写入请求,其中,本实施例中数据写入请求的获取方式与上述实施例中的数据读取请求的具体获取方式相类似,具体可参考上述陈述内容,在此不再赘述。
步骤S502:基于数据写入请求将待执行数据写入至数据存储层,获得存储在数据存储层中的数据库数据。
在获取到数据写入请求之后,则可以基于数据写入请求将待执行数据写入至数据存储层,从而可以获得存储在数据存储层中的数据库数据,在一些实例中,数据写入操作可以通过第一数据库引擎来实现,此时,在数据库读写节点中可以包括与数据存储层通信连接的第一数据库引擎,而后可以通过第一数据库引擎将待执行数据写入至数据存储层,这样有效地保证了数据写入操作的稳定可靠性。
步骤S503:基于数据库数据对缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据。
在将待执行数据写入至数据存储层之后,为了能够保证数据存储层与缓存读节点中的缓存区域之间的数据一致,在获得存储在数据存储层中的数据库数据之后,则可以基于数据库数据对缓存读节点中的缓存区域进行数据更新操作,从而可以获得存储在缓存区域中的更新后的缓存数据。在一些实例中,数据更新操作可以数据同步操作来实现,此时,基于数据库数据对缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据可以包括:基于数据库数据生成数据同步指令;基于数据同步指令将数据库数据发送至缓存读节点中的缓存区域并进行更新存储,从而可以获得更新后的缓存数据。
在另一些实例中,数据更新操作不仅可以通过数据同步操作来实现,还可以通过数据无效操作来实现,此时,基于数据库数据对缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据可以包括:获取数据库数据的关键字;在缓存读节点中的缓存区域中,确定与关键字相对应的目标缓存区域;生成与目标缓存区域相对应的数据无效指令;基于数据无效指令将目标缓存区域中的数据无效,从而可以获得更新后的缓存数据。
其中,为了能够准确地基于数据库数据对缓存读节点中的缓存区域进行数据更新操作,在获取到数据库数据之后,可以对数据库数据进行分析处理,从而可以获得与数据库数据的关键字,而后可以在缓存读节点中的缓存区域中确定与关键字相对应的目标缓存区域,由于缓存读节点中的目标缓存区域中的缓存数据为历史时刻进行缓存的数据,上述缓存的数据与数据存储层中当前所存储的数据库数据不同,因此,为了能够使得数据存储层和缓存区域之间的数据一致,则可以生成与目标缓存区域相对应的数据无效指令。在一些实例中,数据无效指令可以通过预先训练好的机器学习模型或者神经网络模型所生成,或者,数据无效指令可以通过预设的提示信息所生成,此时,生成与目标缓存区域相对应的数据无效指令可以包括:通过数据存储层,获取用于标识数据库读写节点将待执行数据写入至数据存储层的提示信息;基于提示信息,生成与目标缓存区域相对应的数据无效指令。
具体的,在数据库读写节点将待执行数据写入至数据存储层的情况下,为了能够使得缓存读节点可以及时地了解到数据存储层中有待执行数据写入的情况,数据存储层可以生成用于标识数据库读写节点将待执行数据写入至数据存储层的提示信息,该提示信息可以包括以下至少之一:待执行数据所对应的关键字、待执行数据所对应的操作时间、待执行数据所对应的数据库读写节点的身份标识、待执行数据在数据存储层中的存储区域等等。在数据存储层生成提示信息之后,可以将提示信息主动或者被动地发送至缓存读节点,在缓存读节点获取到提示信息之后,则可以基于提示信息生成与目标缓存区域相对应的数据无效指令,具体的,缓存读节点中的第二数据库引擎获取到提示信息,并可以基于提示信息生成与目标缓存区域相对应的数据无效指令,该数据无效指令中包括与数据库数据相对应的目标缓存区域的标识。
在获取到数据无效指令之后,则可以基于数据无效指令将目标缓存区域中的数据无效,例如:可以将目标缓存区域中的数据删除,或者利用数据无效指令中的数据库数据替换目标缓存区域中的数据,从而可以获得更新后的缓存数据,保证了对缓存区域进行数据更新操作的稳定可靠性。
本实施例中,通过数据库读写节点获取与待执行数据相对应的数据写入请求,基于数据写入请求将待执行数据写入至数据存储层,获得存储在数据存储层中的数据库数据,基于数据库数据对缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据,这样有效地保证了缓存区域与数据存储层之间保持数据一致,进一步提高了数据处理操作的准确可靠性。
具体应用时,参考附图6所示,本应用实施例提供了一种数据库和缓存之间数据强一致的方法,该方法的执行主体可以为数据存储层与缓存区域一体化的数据库,该数据库中包括数据计算层和数据存储层,数据计算层可以包括:代理模块、与代理模块通信连接的数据库读写节点RW和缓存读节点RO,其中,代理模块中包括与数据库读写节点RW通信连接的数据库接口、与缓存读节点RO通信连接的缓存接口,上述的数据库读写节点RW用于对数据存储层进行数据读写操作,缓存读节点RO用于对缓存区域进行数据读取操作。
对于数据库读写节点RW而言,数据库读写节点RW中可以包括:SQL解析模块、执行器引擎和第一数据库引擎,数据库读写节点RW可以通过第一数据库引擎与数据存储层通信连接,其中,SQL解析模块用于对数据读取请求/数据写入请求进行解析、规划或者优化处理,以将数据读取请求/数据写入请求翻译为设备所能够识别的机器语言。执行器引擎用于基于数据读取请求来确定相对应的数据读取操作;或者,基于数据写入请求来确定相对应的数据写入操作。第一数据库引擎用于基于执行器引擎所确定的数据读取操作读取数据存储层中的相关数据,或者,用于基于执行器引擎所确定的数据写入操作将相关数据写入至数据存储层中。
对于缓存读节点RO而言,缓存读节点RO中可以包括:解析模块、缓存区域、执行器引擎和第二数据库引擎,缓存读节点RO可以通过第二数据库引擎与数据存储层通信连接,其中,解析模块用于对数据读取请求进行解析、规划或者优化处理,以将数据读取请求翻译为设备所能够识别的机器语言。执行器引擎用于基于数据读取请求来确定相对应的数据读取操作。第二数据库引擎用于基于执行器引擎所确定的数据读取操作读取数据存储层中的相关数据。需要注意的事,第一数据库引擎与第二数据库引擎之间共享数据存储层,以保证数据存储层与缓存读节点RO之间实现数据强一致。
基于上述的数据库可以实现数据库和缓存强一致的方法,该方法可以包括以下步骤:
步骤1:通过缓存接口使得缓存读节点RO获得数据读取请求。
步骤2:在缓存读节点RO获得数据读取请求之后,可以确定与数据读取请求相对应的关键字key。
步骤3:基于关键字key,确定缓存读节点中的与数据读取请求相对应的目标缓存区域。
步骤4:在目标缓存区域不为空的情况下,则可以直接基于数据读取请求来读取目标缓存区域中的数据。
步骤5:在目标缓存区域为空的情况下,获取通过第二数据库引擎在数据存储层中读取与数据读取请求相对应的目标数据。
步骤6:将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据强一致。
此外,本实施例中的方法还可以包括以下步骤:
步骤11:数据库读写节点RW通过数据库接口获取数据写入请求。
步骤12:基于数据写入请求将待执行数据写入至数据存储层,获得存储在数据存储层中的数据库数据。
步骤13:基于数据库数据对缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据。
需要注意的是,在RW节点中的第一数据库引擎中可以包括用于实现日志管理操作的日志引擎,该日志引擎可以将数据库读写节点所对应的日志信息存储至数据存储层,并可以基于操作对日志信息进行更新管理操作。由上可知,本实施例中的数据库中可以用包括第一数据库引擎、日志引擎和第二数据库引擎,该数据库可以支持上述异构引擎的任何数据更新和数据管理操作,从而有效地保证了数据处理操作的稳定可靠性。
另外,在数据库中的RW节点中可以配置有强一致机制(Stict ConsistencyCluster,简称SCC)策略,这样可以保证RW节点、RO节点以及数据存储层中的数据强一致,即在对数据库进行双写操作的过程中,对于数据存储层和缓存区域而言,双写操作可以均成功或者均失败,并不会存在数据不一致的情况,进一步提高了数据读写操作的稳定可靠性。
本应用实施例提供的技术方案,具体的,在通过缓存读节点RO进行数据读取操作的过程中,通过共享数据存储层的第一数据库引擎和第二数据库引擎可以实现数据存储层和缓存区域之间的数据强一致,另外,在通过RW节点进行数据写入操作时,同样可以通过数据存储层来实现RW节点和RO节点之间的数据强一致,这样有效地实现了无需额外开发使得数据库提供了RO节点、RW节点以及数据存储层之间保持数据强一致的能力,并且还能够解决缓存更新、过期等运维问题,同时降低缓存失效后、数据库被击穿、穿透的风险,通过数据库和缓存一体化的方式来保证数据一致性,进一步提高了该方法使用的稳定可靠性。
图7为本发明实施例提供的一种数据处理装置的结构示意图;参考附图7所示,本实施例提供了一种数据处理装置,该数据处理装置用于执行上述图3所示的数据处理方法,该数据处理装置可以包括:
第一获取模块11,用于通过缓存读节点获取数据读取请求,其中,缓存读节点位于数据库中,数据库中的缓存读节点与数据库读写节点之间共享数据存储层;
第一确定模块12,用于确定缓存读节点中的与数据读取请求相对应的目标缓存区域;
第一获取模块11,还用于在目标缓存区域为空的情况下,获取存储在数据存储层中的与数据读取请求相对应的目标数据;
第一处理模块13,用于将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据一致。
在一些实例中,在通过缓存读节点获取数据读取请求之后,本实施例中的第一处理模块13用于执行:识别数据读取请求所对应的目标数据是否写入至数据存储层;在目标数据已写入或者正在写入至数据存储层的情况下,则允许确定缓存读节点中的与数据读取请求相对应的目标缓存区域;在目标数据未写入数据存储层的情况下,则等待直至目标数据写入数据存储层。
在一些实例中,在第一处理模块13识别数据读取请求所对应的目标数据是否写入至数据缓存层的情况下,该第一处理模块13用于执行:通过数据库读写节点获取与数据存储层相对应的写入操作记录;确定与数据读取请求相对应的关键字;基于写入操作记录和关键字,识别数据读取请求所对应的目标数据是否写入至数据存储层。
在一些实例中,在第一处理模块13基于写入操作记录和关键字,识别数据读取请求所对应的目标数据是否写入至数据存储层的情况下,该第一处理模块13用于执行:在写入操作记录中包括与关键字相对应的值信息的情况下,则确定目标数据已写入或者正在写入数据存储层;在写入操作记录中不包括与关键字相对应的值信息的情况下,则确定目标数据未写入数据存储层。
在一些实例中,在通过缓存读节点获取数据读取请求之前,本实施例中的第一获取模块11和第一处理模块13用于执行:
第一获取模块11,用于通过数据库读写节点获取与待执行数据相对应的数据写入请求;
第一处理模块13,用于基于数据写入请求将待执行数据写入至数据存储层,获得存储在数据存储层中的数据库数据;基于数据库数据对缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据。
在一些实例中,在第一处理模块13基于数据库数据对缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据时,该第一处理模块13用于执行:获取数据库数据的关键字;在缓存读节点中的缓存区域中,确定与关键字相对应的目标缓存区域;生成与目标缓存区域相对应的数据无效指令;基于数据无效指令将目标缓存区域中的数据无效,获得更新后的缓存数据。
在一些实例中,在第一处理模块13生成与目标缓存区域相对应的数据无效指令时,该第一处理模块13用于执行:通过数据存储层,获取用于标识数据库读写节点将待执行数据写入至数据存储层的提示信息;基于提示信息,生成与目标缓存区域相对应的数据无效指令。
图7所示装置可以执行图2-图6所示实施例的方法,本实施例未详细描述的部分,可参考对图2-图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2-图6所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图7所示数据处理装置的结构可实现为一电子设备,该电子设备可以是控制器、个人电脑、分区等各种设备。如图8所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,第一存储器22用于存储相对应电子设备执行上述图2-图6所示实施例中提供的数据处理方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:通过缓存读节点获取数据读取请求,其中,缓存读节点位于数据库中,数据库中的缓存读节点与数据库读写节点之间共享数据存储层;确定缓存读节点中的与数据读取请求相对应的目标缓存区域;在目标缓存区域为空的情况下,获取存储在数据存储层中的与数据读取请求相对应的目标数据;将目标数据更新存储至目标缓存区域中,以使数据存储层与缓存区域之间的数据一致。
进一步的,第一处理器21还用于执行前述图2-图6所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图2-图6所示实施例中数据处理方法所涉及的程序。
此外,本发明实施例提供了一种计算机程序产品,包括:存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述图2-图6所示方法实施例中数据处理方法中的步骤。
图9为本发明实施例提供的一种数据库的结构示意图,参考附图9所示,本实施例中的数据库可以执行上述图2所示的数据处理方法,具体的,该数据库可以包括:用于对缓存区域进行读操作的缓存读节点301和用于对数据库存储层302进行读写操作的数据库读写节点300,数据库中的缓存读节点301与数据库读写节点300之间共享数据存储层302;缓存读节点301用于:获取数据读取请求;确定缓存读节点301中的与数据读取请求相对应的目标缓存区域;在目标缓存区域为空的情况下,获取存储在数据存储层302中的与数据读取请求相对应的目标数据;将目标数据更新存储至目标缓存区域中,以使数据存储层302与缓存区域之间的数据一致。
在一些实例中,数据库读写节点300通过所包括的第一数据库引擎与数据存储层302通信连接,缓存读节点301通过所包括的第二数据库引擎与数据存储层302通信连接,第一数据库引擎与第二数据库引擎之间通过数据存储层302进行数据共享。
图9所示数据库可以执行图2-图6所示实施例的方法,本实施例未详细描述的部分,可参考对图2-图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2-图6所示实施例中的描述,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
通过缓存读节点获取数据读取请求,其中,所述缓存读节点位于数据库中,所述数据库中的缓存读节点与数据库读写节点之间共享数据存储层;
确定所述缓存读节点中的与所述数据读取请求相对应的目标缓存区域;
在所述目标缓存区域为空的情况下,获取存储在所述数据存储层中的与所述数据读取请求相对应的目标数据;
将所述目标数据更新存储至所述目标缓存区域中,以使所述数据存储层与所述缓存区域之间的数据一致。
2.根据权利要求1所述的方法,其特征在于,在通过所述缓存读节点获取数据读取请求之后,所述方法还包括:
识别所述数据读取请求所对应的目标数据是否写入至所述数据存储层;
在所述目标数据已写入或者正在写入至所述数据存储层的情况下,则允许确定所述缓存读节点中的与所述数据读取请求相对应的目标缓存区域;
在所述目标数据未写入所述数据存储层的情况下,则等待直至所述目标数据写入所述数据存储层。
3.根据权利要求2所述的方法,其特征在于,识别所述数据读取请求所对应的目标数据是否写入至所述数据缓存层,包括:
通过所述数据库读写节点获取与所述数据存储层相对应的写入操作记录;
确定与所述数据读取请求相对应的关键字;
基于所述写入操作记录和所述关键字,识别所述数据读取请求所对应的目标数据是否写入至所述数据存储层。
4.根据权利要求3所述的方法,其特征在于,基于所述写入操作记录和所述关键字,识别所述数据读取请求所对应的目标数据是否写入至所述数据存储层,包括:
在所述写入操作记录中包括与所述关键字相对应的值信息的情况下,则确定所述目标数据已写入或者正在写入所述数据存储层;
在所述写入操作记录中不包括与所述关键字相对应的值信息的情况下,则确定所述目标数据未写入所述数据存储层。
5.根据权利要求1-4中任意一项所述的方法,其特征在于,在通过所述缓存读节点获取数据读取请求之前,所述方法还包括:
通过所述数据库读写节点获取与待执行数据相对应的数据写入请求;
基于所述数据写入请求将所述待执行数据写入至所述数据存储层,获得存储在所述数据存储层中的数据库数据;
基于所述数据库数据对所述缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据。
6.根据权利要求5所述的方法,其特征在于,基于所述数据库数据对所述缓存读节点中的缓存区域进行数据更新,以获得更新后的缓存数据,包括:
获取所述数据库数据的关键字;
在所述缓存读节点中的缓存区域中,确定与所述关键字相对应的目标缓存区域;
生成与所述目标缓存区域相对应的数据无效指令;
基于所述数据无效指令将所述目标缓存区域中的数据无效,获得更新后的缓存数据。
7.根据权利要求6所述的方法,其特征在于,生成与所述目标缓存区域相对应的数据无效指令,包括:
通过所述数据存储层,获取用于标识所述数据库读写节点将待执行数据写入至所述数据存储层的提示信息;
基于所述提示信息,生成与所述目标缓存区域相对应的数据无效指令。
8.一种数据处理装置,其特征在于,包括:
第一获取模块,用于通过缓存读节点获取数据读取请求,其中,所述缓存读节点位于数据库中,所述数据库中的缓存读节点与数据库读写节点之间共享数据存储层;
第一确定模块,用于确定所述缓存读节点中的与所述数据读取请求相对应的目标缓存区域;
所述第一获取模块,还用于在所述目标缓存区域为空的情况下,获取存储在所述数据存储层中的与所述数据读取请求相对应的目标数据;
第一处理模块,用于将所述目标数据更新存储至所述目标缓存区域中,以使所述数据存储层与所述缓存区域之间的数据一致。
9.一种数据库,其特征在于,包括:用于对缓存区域进行读操作的缓存读节点和用于对数据库存储层进行读写操作的数据库读写节点,所述数据库中的缓存读节点与数据库读写节点之间共享数据存储层;所述缓存读节点用于:
获取数据读取请求;
确定所述缓存读节点中的与所述数据读取请求相对应的目标缓存区域;
在所述目标缓存区域为空的情况下,获取存储在所述数据存储层中的与所述数据读取请求相对应的目标数据;
将所述目标数据更新存储至所述目标缓存区域中,以使所述数据存储层与所述缓存区域之间的数据一致。
10.根据权利要求9所述的数据库,其特征在于,
所述数据库读写节点通过所包括的第一数据库引擎与所述数据存储层通信连接,所述缓存读节点通过所包括的第二数据库引擎与所述数据存储层通信连接,所述第一数据库引擎与所述第二数据库引擎之间通过所述数据存储层进行数据共享。
11.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述权利要求1-8中任意一项的方法。
12.一种计算机程序产品,其特征在于,包括:计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器执行上述权利要求1-8中任意一项的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410115104.0A CN117667964B (zh) | 2024-01-26 | 2024-01-26 | 数据处理方法、装置、设备、数据库及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410115104.0A CN117667964B (zh) | 2024-01-26 | 2024-01-26 | 数据处理方法、装置、设备、数据库及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117667964A true CN117667964A (zh) | 2024-03-08 |
CN117667964B CN117667964B (zh) | 2024-06-14 |
Family
ID=90079125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410115104.0A Active CN117667964B (zh) | 2024-01-26 | 2024-01-26 | 数据处理方法、装置、设备、数据库及计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667964B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110218971A1 (en) * | 2010-03-08 | 2011-09-08 | Yahoo! Inc. | System, Method And Computer Program Product For Managing Caches |
WO2022041812A1 (zh) * | 2020-08-28 | 2022-03-03 | 平安科技(深圳)有限公司 | 一种数据处理方法、相关设备及计算机可读存储介质 |
CN114168636A (zh) * | 2021-12-10 | 2022-03-11 | 成都新希望金融信息有限公司 | 基于缓存一致性的数据处理方法、装置、设备及存储介质 |
CN114297284A (zh) * | 2021-12-30 | 2022-04-08 | 零氪科技(北京)有限公司 | 一种接口快速反应方法、装置、电子设备及存储介质 |
CN115328406A (zh) * | 2022-08-29 | 2022-11-11 | 北京达佳互联信息技术有限公司 | 数据的写入和获取方法、装置、电子设备及计算机介质 |
-
2024
- 2024-01-26 CN CN202410115104.0A patent/CN117667964B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110218971A1 (en) * | 2010-03-08 | 2011-09-08 | Yahoo! Inc. | System, Method And Computer Program Product For Managing Caches |
WO2022041812A1 (zh) * | 2020-08-28 | 2022-03-03 | 平安科技(深圳)有限公司 | 一种数据处理方法、相关设备及计算机可读存储介质 |
CN114168636A (zh) * | 2021-12-10 | 2022-03-11 | 成都新希望金融信息有限公司 | 基于缓存一致性的数据处理方法、装置、设备及存储介质 |
CN114297284A (zh) * | 2021-12-30 | 2022-04-08 | 零氪科技(北京)有限公司 | 一种接口快速反应方法、装置、电子设备及存储介质 |
CN115328406A (zh) * | 2022-08-29 | 2022-11-11 | 北京达佳互联信息技术有限公司 | 数据的写入和获取方法、装置、电子设备及计算机介质 |
Non-Patent Citations (4)
Title |
---|
BINGSHENG HE等: ""Cache-conscious automata for XML filtering"", 《21ST INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE\'05)》, 8 April 2005 (2005-04-08), pages 1 - 12 * |
叶文;: "NoSQL数据库与缓存一致性研究", 信息与电脑(理论版), no. 21, 15 November 2018 (2018-11-15), pages 148 - 149 * |
杜源;: "一种深入解决MySQL数据库优化方案", 电脑知识与技术, no. 07, 5 March 2015 (2015-03-05), pages 10 - 12 * |
甘长春 等: "《Oracle数据库从入门到运维实战》", 31 January 2021, 中国铁道出版社, pages: 5 - 7 * |
Also Published As
Publication number | Publication date |
---|---|
CN117667964B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046133B (zh) | 一种存储文件系统的元数据管理方法、装置及系统 | |
EP3262512B1 (en) | Application cache replication to secondary application(s) | |
CN111901294A (zh) | 一种构建在线机器学习项目的方法及机器学习系统 | |
CN108701048A (zh) | 数据加载方法及装置 | |
US20100191757A1 (en) | Recording medium storing allocation control program, allocation control apparatus, and allocation control method | |
US20180300147A1 (en) | Database Operating Method and Apparatus | |
CN111930848A (zh) | 数据分区存储方法、装置及系统 | |
CN108475201B (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
US10565184B2 (en) | Method and system for committing transactions in a semi-distributed manner | |
CN109213691B (zh) | 用于缓存管理的方法和设备 | |
CN102779088A (zh) | 事务处理设备、事务处理方法及事务处理程序 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN112433921A (zh) | 用于动态埋点的方法及设备 | |
US20110093688A1 (en) | Configuration management apparatus, configuration management program, and configuration management method | |
CN117290395A (zh) | 优惠券库存管理方法、装置、存储介质及处理器 | |
CN117667964B (zh) | 数据处理方法、装置、设备、数据库及计算机程序产品 | |
CN110928941B (zh) | 一种数据分片抽取方法及装置 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN110119388B (zh) | 文件读写方法、装置、系统、设备及计算机可读存储介质 | |
CN114691720A (zh) | 数据查询方法、数据库系统、可读介质和电子设备 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN112632211A (zh) | 用于移动机器人的语义信息处理方法与设备 | |
CN110750569A (zh) | 数据提取方法、装置、设备及存储介质 | |
US20240078221A1 (en) | Systems and methods of modeling and querying dynamic temporal graph on massive parallel graph processing and storage engine | |
US20220164313A1 (en) | Prefetching data from a data storage system |
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 |