CN109413127B - 一种数据同步方法和装置 - Google Patents
一种数据同步方法和装置 Download PDFInfo
- Publication number
- CN109413127B CN109413127B CN201710711758.XA CN201710711758A CN109413127B CN 109413127 B CN109413127 B CN 109413127B CN 201710711758 A CN201710711758 A CN 201710711758A CN 109413127 B CN109413127 B CN 109413127B
- Authority
- CN
- China
- Prior art keywords
- version information
- service type
- database
- data
- preset service
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据同步方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,当第一版本信息指示的版本高于第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。该实施方式能够确保同步后的本地数据与数据库的最新数据最终保持一致,此外,还可以使不同业务类型的数据同步平行运行、互不干扰,减少请求同步单个业务类型数据时的数据传输。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法和装置。
背景技术
目前多数应用场景下会使用定时将数据库中的数据进行获取同步,从而进行数据使用操作,在具体业务领域中,许多系统线上应用时会使用到配置信息数据,例如风控系统的业务需要配置脚本语言执行规则,以便线上业务能灵活地执行处理各项业务逻辑,配置的规则数据为了稳定性及易操作性通常情况下会放在关系型数据库中,随着系统对数据获取时效性需求的提高,一般会将配置的执行规则数据定时从关系型数据库中同步出来以供应用系统调用。
一般情况下,同步数据库数据到其他系统采用的技术方案是定期检查数据库更新,如果有更新则进行同步并应用数据库更新到系统中。判断数据库是否有更新的方法是比较上次同步时间和数据库最后更新时间,如果上次同步时间早于数据库最后更新时间,则数据库中数据有更新。为了避免数据库记录删除无法获取最后更新时间,数据只允许更新和插入。这个方案存在的问题是效率不够高,对数据库过于依赖,当使用规则引擎的应用集群较大时,数据库查询并发很大,尤其是在数据库有更新时,应用会集中获取数据库规则内容,给数据库带来很大负担,若此时还有其他数据库操作,将会出现性能问题。
在上述方案的基础上可以使用redis缓存数据库查询结果,即将从数据库查询到的数据放入redis缓存中,再根据redis缓存中的数据同步本地数据,数据同步的步骤包括:
步骤1:查询数据库,获取数据库中的数据d1;
步骤2:将数据d1放到redis缓存;
步骤3:根据redis缓存中的数据d1同步本地数据。
数据库中数据更新的步骤包括:
步骤4:数据库将数据d1更新数据为d2;
步骤5:redis缓存执行数据删除操作,删除数据d1,以便下次读时会从数据库中读取数据查询结果到redis中。
然而,现有方案在分布式环境下,步骤1至步骤3和步骤4至步骤5很可能是在不同的机器上执行,如果机器A执行了步骤1以后,在执行步骤2和步骤3之前,机器B执行完成了步骤4至步骤5,那么redis缓存中存放的实际上是数据d1,而数据库中存放的是d2,并且因为上次同步数据d1的时间晚于数据库最后更新数据d2的时间,即使redis中数据过时后,本地系统也不会去再去请求数据库中的数据。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有方案存在同步后的本地数据与数据库中的最新数据不一致的情况。
发明内容
有鉴于此,本发明实施例提供一种数据同步方法和装置,能够确保同步后的本地数据与数据库的最新数据最终保持一致,此外,还可以使不同业务类型的数据同步平行运行、互不干扰,减少请求同步单个业务类型数据时的数据传输。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据同步方法。
一种数据同步方法,包括:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。
可选地,所述数据库数据包括多条记录,每条记录包括记录ID和业务类型,所述本地数据包括具有一预设业务类型的若干条记录,以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息的步骤,包括:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,若是,则执行步骤二,若否,则从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,然后执行步骤二;步骤二,获取缓存的所述对应的版本信息得到与本地数据对应的数据库数据的第一版本信息。
可选地,获取与所述本地数据对应的数据库数据的步骤,包括:查询所述缓存系统中是否存有对应所述预设业务类型的数据库数据,若有,则从所述缓存系统获取该对应所述预设业务类型的数据库数据,否则,从所述数据库查询对应所述预设业务类型的数据库数据并缓存到所述缓存系统,然后从所述缓存系统获取该对应所述预设业务类型的数据库数据。
可选地,所述与所述预设业务类型对应的版本信息为所述预设业务类型对应的最大记录ID。
可选地,所述数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。
可选地,从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息的步骤,包括:从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,所述一版本信息为与所述预设业务类型对应的版本信息;从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统的步骤,包括:从数据库中查询所述预设业务类型与所述一版本信息之间的一一对应关系,并将所述一一对应关系缓存到所述缓存系统;获取缓存的所述对应的版本信息的步骤,包括:根据缓存的所述一一对应关系获取所述对应的版本信息。
根据本发明实施例的另一方面,提供了一种数据同步装置。
一种数据同步装置,包括:查询模块,用于以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;比对模块,用于在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,同步模块,用于当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。
可选地,所述数据库数据包括多条记录,每条记录包括记录ID和业务类型,所述本地数据包括具有一预设业务类型的若干条记录,所述查询模块还用于:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,若是,则执行步骤二,若否,则从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,然后执行步骤二;步骤二,获取缓存的所述对应的版本信息得到与本地数据对应的数据库数据的第一版本信息。
可选地,所述同步模块还用于:查询所述缓存系统中是否存有对应所述预设业务类型的数据库数据,若有,则从所述缓存系统获取该对应所述预设业务类型的数据库数据,否则,从所述数据库查询对应所述预设业务类型的数据库数据并缓存到所述缓存系统,然后从所述缓存系统获取该对应所述预设业务类型的数据库数据。
可选地,所述与所述预设业务类型对应的版本信息为所述预设业务类型对应的最大记录ID。
可选地,所述数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。
可选地,所述查询模块中:从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,包括:从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,所述一版本信息为与所述预设业务类型对应的版本信息;从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,包括:从数据库中查询所述预设业务类型与所述一版本信息之间的一一对应关系,并将所述一一对应关系缓存到所述缓存系统;获取缓存的所述对应的版本信息,包括:根据缓存的所述一一对应关系获取所述对应的版本信息。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现数据同步方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现数据同步方法。
上述发明中的一个实施例具有如下优点或有益效果:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行查询并获取的操作之后,将本地数据的第二版本信息与第一版本信息进行比对,其中,当第一版本信息指示的版本高于第二版本信息指示的版本时,获取与本地数据对应的数据库数据,并根据该获取的数据库数据同步本地数据,然后将第二版本信息更新为第一版本信息。能够确保同步后的本地数据与数据库的最新数据最终保持一致,此外,数据库数据的每条记录标记有记录ID和业务类型,每个业务类型都与一最大记录ID存在一一对应关系,并且以本地数据的业务类型对应的最大记录ID作为数据库数据的版本信息,并获取对应本地数据业务类型的数据库数据来同步本地数据,从而使不同业务类型的数据同步可平行运行、互不干扰,并减少请求同步单个业务类型数据时的数据传输。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据同步方法的主要步骤示意图;
图2是根据本发明实施例的风控系统的在线规则同步流程示意图;
图3是根据本发明实施例的数据同步装置的主要模块示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的数据同步方法的主要步骤示意图。
如图1所示,本发明实施例的数据同步方法主要包括如下的步骤S101至步骤S103。
步骤S101:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息。
其中,数据库数据包括多条记录,每条记录包括记录ID和业务类型,还包括记录具体内容、记录变动的时间、和记录的状态。其中,记录变动包括记录的插入、更新或删除,记录的状态即指示本条记录是否生效。
数据库中,相同业务类型对应多条记录,从而每个业务类型与对应的多条记录的各记录ID具有对应关系,且业务类型与各记录ID中的最大记录ID之间的对应关系为一一对应的关系,与每个业务类型对应的最大记录ID即与该业务类型对应的版本信息,版本信息具体可以是版本号,其指示各业务类型的数据库数据具有的版本,因此,各业务类型与对应的版本信息(具体可为版本号)具有一一对应关系。
数据库可以Map结构存储各业务类型与版本信息之间的一一对应关系,以business_type1和business_type2表示业务类型,v1和v2分别表示各自对应的版本信息为例,Map结构形式例如:{business_type1:v1,business_type2:v2}。
本地数据包括具有一预设业务类型的若干条记录。
以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息的步骤,具体可以包括:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与预设业务类型对应的版本信息,若是,则执行步骤二,若否,则从数据库中查询与预设业务类型对应的版本信息并缓存到缓存系统,然后执行步骤二;步骤二,获取缓存的对应的版本信息得到与本地数据对应的数据库数据的第一版本信息。
其中,从缓存系统查询是否缓存有与预设业务类型对应的版本信息的步骤,具体可以包括:从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,该一版本信息为与预设业务类型对应的版本信息。
从数据库中查询与预设业务类型对应的版本信息并缓存到缓存系统的步骤,具体可以包括:从数据库中查询预设业务类型与上述的该一版本信息之间的一一对应关系,并将该一一对应关系缓存到缓存系统。
获取缓存的对应的版本信息的步骤,具体可以包括:根据缓存的该一一对应关系获取与预设业务类型对应的版本信息。
预设的时间间隔可根据需要设置具体数值,例如通常设置为5分钟。
与预设业务类型对应的版本信息具体为该预设业务类型对应的最大记录ID。
缓存系统具体可以为redis。从缓存系统查询是否缓存有与预设业务类型对应的版本信息具体可以从redis查询是否缓存有以Map结构存储的预设业务类型与相应的版本信息之间的一一对应关系。如果redis(缓存系统)缓存有该一一对应关系,那么该一一对应关系可以缓存在redis的key(键)中,例如以key1表示该key(键),并且缓存系统缓存该一一对应关系时可以设置相应的缓存过期时间(例如5分钟或其他自定义数值),当超过该缓存过期时间,缓存该一一对应关系的key1即过期,当该key1过期,则需从数据库查询该预设业务类型与该相应的版本信息之间的一一对应关系,再将查询到的该一一对应关系缓存到redis(缓存系统)的key(以key1表示)中,并设置相应的缓存过期时间,然后,从redis(缓存系统)中获取该缓存的一一对应关系,根据该预设业务类型与该相应的版本信息之间的一一对应关系,得到与预设业务类型对应的版本信息,该版本信息即与本地数据对应的数据库数据的第一版本信息。
步骤S102:在每次执行查询并获取的操作之后,将本地数据的第二版本信息与第一版本信息进行比对。
本地数据为在本次同步之前最近一次同步的数据库数据,因此,本地数据同样包括多条记录,每条记录包括记录ID和业务类型,还包括记录具体内容、记录变动的时间、和记录的状态。本地数据的第二版本信息可以为本地数据的版本号,其指示本地数据的版本,具体为与预设业务类型对应的最大记录ID。将本地数据的第二版本信息与第一版本信息进行比对,即比对本地数据的版本号和与本地数据对应的数据库数据的版本号,具体即将本地数据中与预设业务类型对应的最大记录ID与对应的数据库数据中与该预设业务类型对应的最大记录ID进行比对。
步骤S103:当第一版本信息指示的版本高于第二版本信息指示的版本时,获取与本地数据对应的数据库数据,并根据该获取的数据库数据同步本地数据,然后将第二版本信息更新为第一版本信息。
其中,获取与本地数据对应的数据库数据的步骤,具体可以包括:查询缓存系统中是否存有对应预设业务类型的数据库数据,若有,则从缓存系统获取该对应预设业务类型的数据库数据,否则,从数据库查询对应预设业务类型的数据库数据并缓存到缓存系统,然后从缓存系统获取该对应预设业务类型的数据库数据。
本发明实施例的对应预设业务类型的数据库数据可以缓存在redis的key(键)中,例如以key2表示该key(键),并且缓存数据库数据时可以按照业务类型分组缓存,具体可以在该redis的key(以key2表示)上添加业务类型的信息作为后缀。
缓存系统缓存该预设业务类型的数据库数据时可以设置相应的缓存过期时间,该缓存过期时间即该key(key2)的过期时间,具体可以根据需要设置数值,例如设置为5分钟或10分钟等,当达到该缓存过期时间,该key(key2)则过期,需要重新去数据库中查询对应预设业务类型的数据库数据。
缓存系统(如redis)中缓存各业务类型与对应的版本信息(具体可为版本号)之间的一一对应关系的key(key1)和缓存对应各业务类型的数据库数据的key(key2)通常为不同的key(键),即key1与key2为不同的key(键)。
数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增,即,与每个业务类型对应的最大记录ID随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。即每次对记录的插入、更新或删除都会带来记录ID的增加,
具体如下:
插入一条记录:新记录ID为对应业务类型的当前各条记录的最大记录ID加1;
更新一条记录:将被更新掉的记录的状态设为-1,代表该记录无效,然后新插入一条记录,新记录ID为对应业务类型的当前各条记录的最大记录ID加1;
删除一条记录:无法在数据库中删除记录,通过将记录的状态设置为0代表记录被删除的状态,并把本条记录的记录ID设置为对应业务类型的当前各条记录的最大记录ID加1。
由于每次对记录的插入、更新或删除都会带来记录ID的增加,使得将数据的更新转换为对数据库中记录的更新和插入,从而增加自增最大记录ID。
本发明实施例的数据同步方法具体可以用于同步规则,下面以同步风控系统(如电商领域风控系统)的业务人员配置的脚本语言执行规则(简称在线规则)为例详细介绍本发明实施例的数据同步方法的实现流程。
Java引入jsr223(Java平台脚本)以后,提供了一种使用一致的形式在JVM(Java虚拟机)上执行脚本语言的方式,可以很方便地引入javaScript或groovy等动态语言执行引擎。在电商订单风控或数据分析等场景下,动态语言规则引擎(简称规则引擎)应用十分广泛,能够在不进行上线发布的前提下,快速调整脚本逻辑,以应对不断变化的业务需求。
为了方便不熟悉风控系统的业务人员配置脚本语言执行规则,即在线规则,风控系统的服务器通常会提供一个可视化的规则编辑Web页面,生成的在线规则保存在数据库中,并及时同步数据库中的在线规则到风控系统的规则引擎中。
本发明实施例的数据库中保存的每条记录的具体内容包括记录ID、业务类型、记录具体内容、记录变动的时间、和记录的状态,相对应的各字段如表1所示。对应一业务类型的多条记录的集合组成一套完整的在线规则(全量在线规则内容),全量在线规则内容在数据库中按照表1所示的内容存储为数据库表的形式。
表1
字段名 | 数据类型 | 描述 |
id | int(11) | 记录ID |
business_type | varchar(50) | 业务类型 |
strategy_content | varchar(4096) | 记录具体内容 |
update_date | timestamp | 记录变动的时间 |
state | int(11) | 记录的状态 |
根据表1,本发明实施例使用business_type字段划分不同业务类型的在线规则,风控系统中业务类型相应为风控业务类型。id字段是自增字段,每插入一条新记录,id字段中最大记录ID均会增加1,并且该最大记录ID作为新插入记录的记录ID。update_date表示记录变动的时间,记录变动包括记录的插入、更新或删除,例如,插入一条新记录时,update_date为记录插入时间。strategy_content表示一条记录的具体内容,一个业务类型的在线规则有多条记录,即business_type字段相同,而strategy_content不同的记录可以有多条。state字段表示记录的状态,即当前记录是否生效。
图2是根据本发明实施例的风控系统的在线规则同步流程示意图。本发明实施例使用最大记录ID作为数据库中在线规则的版本号,通过比较本地(风控系统中)在线规则的版本号(即本地风控系统最近一次同步的在线规则各条记录的最大记录ID)p和当前数据库中在线规则的版本号(即当前数据库中对应风控业务类型的各条记录的最大记录ID)q,以判断数据库中的在线规则是否有更新,如果q>p,则表示在本地风控系统在最近一次从数据库获取在线规则内容后,数据库中的在线规则内容又发生了更新,而如果q=p,则表示数据库中的在线规则内容没有发生变化。
通常的业务场景中,需要同步的是某个业务即单个business_type的规则内容,例如本发明实施例的同步风控业务的在线规则。这种情况下p和q的存储结构都是一个Map(Map是计算机中使用比较频繁的一个数据结构,一个key->value键值对的集合),具体形式为{business_type1:v1,business_type2:v2},其中,v1和v2表示在线规则的版本号(即在线规则各条记录的最大记录ID),business_type1和business_type2表示业务类型,每个business_type对应一个版本号(该业务类型的最大记录ID),每次请求同步在线规则时比较该在线规则所属业务类型即特定business_type的版本号即可。
为了避免风控系统所部署的实例很多时造成数据库所承受的并发过大,本发明实施例可使用redis缓存每次数据库查询结果。
如图2所示,本发明实施例的风控系统的在线规则同步流程可包括如下的步骤S201至步骤S209。本在线规则同步流程可在风控系统的服务器执行。
步骤S201:查询redis是否缓存有q,若有,则执行步骤S202,若否,则执行步骤S203。
版本号q可缓存在redis的key(键)中,可以key1表示该键,并且具体地,redis通过缓存该版本号与业务类型字段的一一对应关系来缓存该版本号,图2所示的流程中,业务类型即风控业务类型。查询redis是否缓存有q可首先查询redis中是否缓存有风控业务类型字段与一版本号之间的一一对应关系,若有,则该风控业务类型字段对应的版本号即为q,否则,redis中则未缓存有q,redis的key1对应值为null。
步骤S202:从redis中获取q。
具体可以从redis的key1中获取该q,并在获取q之后,执行步骤S204。
步骤S203:从数据库中查询q,并将q缓存到redis,然后执行步骤S202。
将q缓存到redis即将q缓存在redis的key1中。
步骤S204:判断q是否大于p,若是,则执行步骤S205,若否,则执行步骤S209。
步骤S205:查询redis中是否缓存有风控业务类型的在线规则,若是,则执行步骤S206,若否,则执行步骤S207。
在线规则保存在redis的指定key(可以以key2表示)中,该指定key(key2)上添加有对应该在线规则的业务类型(字段为business_type)作为后缀。查询redis中是否缓存有风控业务类型的在线规则,具体为查询redis中带有风控业务类型的后缀的key(key2),并检查该key(key2)的对应值,如果该key(key2)对应值不为null,则表示redis中缓存有该在线规则,若该key(key2)的对应值为null,则表示数据库中相应的在线规则已更新或redis的缓存内容已过期。
步骤S206:从redis中获取该风控业务类型的在线规则,并根据该获取的在线规则同步本地在线规则。
当key2对应值不为null,即redis中缓存有该在线规则时,则直接返回在线规则数据反序列化后的结果,从而获取该风控业务类型的在线规则。
执行完本步骤S206之后,执行步骤S208。
步骤S207:从数据库查询该风控业务类型的在线规则,并缓存到redis,然后执行步骤S206。
若key2的对应值为null,即数据库中相应的在线规则已更新或redis的缓存内容已过期时,查询数据库,以获取全量在线规则内容,并序列化在线规则数据,以便将在线规则数据存放到redis中,并且设置redis的缓存过期时间(即key2的过期时间),例如设置为5分钟或10分钟等。
其中,数据库中相应的在线规则更新时,服务器将删除redis中缓存的在线规则数据,以便从数据库中读取新的在线规则到redis中。当缓存的在线规则数据被删除或者key2过期时,key2的对应值变为null。
步骤S208:将本地在线规则的版本号更新为在redis中获取的该风控业务类型的在线规则的版本号。
执行完本步骤S208之后,执行步骤S209。
步骤S209:等待预设的时间间隔,然后返回步骤S201。
结合图2所示的流程,以redis的key1和key2的缓存过期时间均为10分钟,等待预设的时间间隔为5分钟为例,假设存在如下的情况:
T1时刻:p=2,且q=3(假设已预先从redis中获取到q=3);因q>p,则实例(即执行同步的服务器)A查询redis中是否有q=3版本对应的在线规则,如果redis中没有该q=3版本对应的在线规则,则从数据库中查询并获取该q=3版本对应的在线规则;
T2时刻:实例B将数据库中的q=3版本的在线规则更新为q=4版本的在线规则,并且在数据库中在线规则被更新之后,删除redis中的缓存的在线规则数据;
T3时刻:实例A将该q=3版本对应的在线规则从数据库缓存到redis中,并设置该缓存过期时间(key2的过期时间)为10分钟;从redis中获取该q=3版本对应的在线规则,并同步到本地,使本地在线规则变更为p=3版本的在线规则。
其中,T1<T2<T3。以下分别以实例A执行的操作中可能存在的两种情况进行说明:
一、假设T2时刻之后数据库中在线规则无变动。
那么,在T3时刻本地在线规则的版本号p=3,而数据库中在线规则的版本号q=4,根据上述步骤S209,在等待预设的时间间隔(5分钟)之后的T4时刻,将返回步骤201重复执行步骤S201至步骤S209的流程。
T4时刻:因key1未达到过期时间,那么首先从redis中获取q=3,因该q=p,则执行步骤S209,在等待预设的时间间隔(5分钟)之后的T5时刻,再次返回步骤201重复执行步骤S201至步骤S209的流程。
T5时刻:因key1达到过期时间(10分钟),则从数据库中查询q,获取数据库中的q=4并缓存到redis中,因该q>p,那么需要同步该q=4版本的在线规则,由于key2达到过期时间(10分钟),那么查询到redis中无缓存的q=4版本的在线规则,则从数据库查询并获取该q=4版本的在线规则,并同步到本地,使本地在线规则变更为p=4版本的在线规则。
二、假设T2时刻之后数据库中在线规则有变动,例如在T时刻(T3<T<T4)数据库中更新在线规则(q=4变为q=5)。
T时刻:因数据库中在线规则发生变动,则删除redis的key2中缓存的在线规则数据。
那么在T3时刻等待预设的时间间隔(5分钟)之后的T4时刻,将返回步骤201重复执行步骤S201至步骤S209的流程。
T4时刻:因key1未达到过期时间,那么首先从redis中获取q=3,因该q=p,则执行步骤S209,在等待预设的时间间隔(5分钟)之后的T5时刻,再次返回步骤201重复执行步骤S201至步骤S209的流程。
T5时刻:因key1达到过期时间(10分钟),则从数据库中查询q,获取数据库中的q=5并缓存到redis中,因该q>p,那么需要同步该q=5版本的在线规则。由于key2中缓存的在线规则被删除,则从数据库查询并获取该q=5版本的在线规则然后缓存到redis中,再将redis缓存的该q=5版本的在线规则同步到本地,使本地在线规则变更为p=5版本的在线规则。
综上,即使在获取在线规则数据时可能暂时出现redis与数据库的在线规则不一致的情形,但是根据本发明实施例,在redis中缓存的该在线规则过期或数据库中该在线规则又有新的变动之后,服务器将再次查询数据库以获取数据库中在线规则的最新版本号,由于本地保存的规则内容版本号低于数据库中在线规则的最新版本号,则判定在线规则内容不是最新版本,则会将数据库中的最新版本的在线规则同步到本地,使得最终本地风控系统可以获取到最新版本的在线规则数据。克服了现有方案存在的同步后的本地数据与数据库中的最新数据不一致的缺陷。
根据本发明实施例,可及时高效地将数据库中的在线规则同步到风控系统的动态语言执行引擎中,让编辑好的在线规则成为之后的执行逻辑,并且由于各个业务场景有各自的在线规则,当有风控系统之外的其他业务系统也同步各自的规则或数据时,不同业务类型的在线规则同步可平行运行、互不干扰,此外,使用business_type(业务类型)字段进行业务分隔,所有业务使用各自最大记录ID作为独立版本号,并独立缓存各在线规则,减少请求单个业务在线规则内容时的数据传输。
图3是根据本发明实施例的数据同步装置的主要模块示意图。
如图3所示,本发明实施例的数据同步装置300主要包括:查询模块301、比对模块302、同步模块303。
查询模块301,用于以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息。
查询模块301以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息,具体可包括如下步骤:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与预设业务类型对应的版本信息,若是,则执行步骤二,若否,则从数据库中查询与预设业务类型对应的版本信息并缓存到缓存系统,然后执行步骤二;步骤二,获取缓存的对应的版本信息得到与本地数据对应的数据库数据的第一版本信息。
并且,查询模块301中:从缓存系统查询是否缓存有与预设业务类型对应的版本信息,包括:从缓存系统查询是否缓存有预设业务类型与一版本信息之间的一一对应关系,该一版本信息为与预设业务类型对应的版本信息;从数据库中查询与预设业务类型对应的版本信息并缓存到缓存系统,包括:从数据库中查询预设业务类型与该一版本信息之间的一一对应关系,并将该一一对应关系缓存到缓存系统;获取缓存的对应的版本信息,包括:根据缓存的该一一对应关系获取该对应的版本信息。
数据库数据可包括多条记录,每条记录包括记录ID和业务类型,本地数据包括具有一预设业务类型的若干条记录。
与预设业务类型对应的版本信息具体可为预设业务类型对应的最大记录ID。
比对模块302,用于在每次执行查询并获取的操作之后,将本地数据的第二版本信息与第一版本信息进行比对。
同步模块303,用于当第一版本信息指示的版本高于第二版本信息指示的版本时,获取与本地数据对应的数据库数据,并根据该获取的数据库数据同步本地数据,然后将第二版本信息更新为第一版本信息。
同步模块303获取与本地数据对应的数据库数据,具体包括如下步骤:查询缓存系统中是否存有对应预设业务类型的数据库数据,若有,则从缓存系统获取该对应预设业务类型的数据库数据,否则,从数据库查询对应预设业务类型的数据库数据并缓存到缓存系统,然后从缓存系统获取该对应预设业务类型的数据库数据。
数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。
图4示出了可以应用本发明实施例的数据同步方法或数据同步装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如风控分析结果)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据同步方法一般由服务器405执行,相应地,数据同步装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机系统500的结构示意图。图5示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括查询模块301、比对模块302、同步模块303。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,查询模块301还可以被描述为“用于以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行查询并获取的操作之后,将本地数据的第二版本信息与第一版本信息进行比对,其中,当第一版本信息指示的版本高于第二版本信息指示的版本时,获取与本地数据对应的数据库数据,并根据该获取的数据库数据同步本地数据,然后将第二版本信息更新为第一版本信息。
根据本发明实施例的技术方案,以预设的时间间隔定期查询并获取与本地数据对应的数据库数据的第一版本信息;在每次执行查询并获取的操作之后,将本地数据的第二版本信息与第一版本信息进行比对,其中,当第一版本信息指示的版本高于第二版本信息指示的版本时,获取与本地数据对应的数据库数据,并根据该获取的数据库数据同步本地数据,然后将第二版本信息更新为第一版本信息。能够确保同步后的本地数据与数据库的最新数据最终保持一致,此外,数据库数据的每条记录标记有记录ID和业务类型,每个业务类型都与一最大记录ID存在一一对应关系,并且以本地数据的业务类型对应的最大记录ID作为数据库数据的版本信息,并获取对应本地数据业务类型的数据库数据来同步本地数据,从而使不同业务类型的数据同步可平行运行、互不干扰,并减少请求同步单个业务类型数据时的数据传输。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
以预设的时间间隔定期从缓存系统查询并获取与本地数据对应的数据库数据的第一版本信息;其中包括:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与预设业务类型对应的版本信息,与所述预设业务类型对应的版本信息为所述预设业务类型对应的最大记录ID;若是,则执行步骤二,若否,则从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,然后执行步骤二;步骤二,获取缓存的所述对应的版本信息得到与本地数据对应的数据库数据的第一版本信息;所述数据库数据包括多条记录,每条记录包括记录ID和业务类型,所述本地数据包括具有所述预设业务类型的若干条记录;
在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,
当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。
2.根据权利要求1所述的方法,其特征在于,获取与所述本地数据对应的数据库数据的步骤,包括:
查询所述缓存系统中是否存有对应所述预设业务类型的数据库数据,
若有,则从所述缓存系统获取该对应所述预设业务类型的数据库数据,
否则,从所述数据库查询对应所述预设业务类型的数据库数据并缓存到所述缓存系统,然后从所述缓存系统获取该对应所述预设业务类型的数据库数据。
3.根据权利要求1所述的方法,其特征在于,所述数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。
4.根据权利要求1所述的方法,其特征在于,从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息的步骤,包括:
从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,所述一版本信息为与所述预设业务类型对应的版本信息;
从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统的步骤,包括:
从数据库中查询所述预设业务类型与所述一版本信息之间的一一对应关系,并将所述一一对应关系缓存到所述缓存系统;
获取缓存的所述对应的版本信息的步骤,包括:
根据缓存的所述一一对应关系获取所述对应的版本信息。
5.一种数据同步装置,其特征在于,包括:
查询模块,用于以预设的时间间隔定期从缓存系统查询并获取与本地数据对应的数据库数据的第一版本信息;其中包括用于执行:步骤一,以预设的时间间隔定期从缓存系统查询是否缓存有与预设业务类型对应的版本信息,与所述预设业务类型对应的版本信息为所述预设业务类型对应的最大记录ID;若是,则执行步骤二,若否,则从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,然后执行步骤二;步骤二,获取缓存的所述对应的版本信息得到与本地数据对应的数据库数据的第一版本信息;所述数据库数据包括多条记录,每条记录包括记录ID和业务类型,所述本地数据包括具有所述预设业务类型的若干条记录;
比对模块,用于在每次执行所述查询并获取的操作之后,将所述本地数据的第二版本信息与所述第一版本信息进行比对,其中,
同步模块,用于当所述第一版本信息指示的版本高于所述第二版本信息指示的版本时,获取与所述本地数据对应的数据库数据,并根据该获取的数据库数据同步所述本地数据,然后将所述第二版本信息更新为所述第一版本信息。
6.根据权利要求5所述的装置,其特征在于,所述同步模块还用于:
查询所述缓存系统中是否存有对应所述预设业务类型的数据库数据,
若有,则从所述缓存系统获取该对应所述预设业务类型的数据库数据,
否则,从所述数据库查询对应所述预设业务类型的数据库数据并缓存到所述缓存系统,然后从所述缓存系统获取该对应所述预设业务类型的数据库数据。
7.根据权利要求5所述的装置,其特征在于,所述数据库中,与每个业务类型对应的版本信息随着该业务类型的对应的记录被执行插入、更新或删除的操作而自增。
8.根据权利要求5所述的装置,其特征在于,所述查询模块中:
从缓存系统查询是否缓存有与所述预设业务类型对应的版本信息,包括:从缓存系统查询是否缓存有所述预设业务类型与一版本信息之间的一一对应关系,所述一版本信息为与所述预设业务类型对应的版本信息;
从数据库中查询与所述预设业务类型对应的版本信息并缓存到所述缓存系统,包括:从数据库中查询所述预设业务类型与所述一版本信息之间的一一对应关系,并将所述一一对应关系缓存到所述缓存系统;
获取缓存的所述对应的版本信息,包括:根据缓存的所述一一对应关系获取所述对应的版本信息。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710711758.XA CN109413127B (zh) | 2017-08-18 | 2017-08-18 | 一种数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710711758.XA CN109413127B (zh) | 2017-08-18 | 2017-08-18 | 一种数据同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109413127A CN109413127A (zh) | 2019-03-01 |
CN109413127B true CN109413127B (zh) | 2022-04-12 |
Family
ID=65462809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710711758.XA Active CN109413127B (zh) | 2017-08-18 | 2017-08-18 | 一种数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109413127B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111726375A (zh) * | 2019-03-19 | 2020-09-29 | 北京数聚鑫云信息技术有限公司 | 一种数据同步方法、装置和计算机设备 |
CN110008269B (zh) * | 2019-03-26 | 2023-08-01 | 创新先进技术有限公司 | 一种数据回流方法、装置、设备及系统 |
CN112084254A (zh) * | 2019-06-14 | 2020-12-15 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和系统 |
CN110297842B (zh) * | 2019-06-25 | 2021-10-15 | 武汉联影医疗科技有限公司 | 一种数据比对方法、装置、终端和存储介质 |
CN110765207B (zh) * | 2019-10-21 | 2022-12-09 | 福建博思软件股份有限公司 | 系统间数据同步的方法 |
CN110968646B (zh) * | 2019-12-20 | 2023-06-06 | 广东睿住智能科技有限公司 | 一种嵌入式系统数据库同步方法、装置及存储介质 |
CN111708836B (zh) * | 2020-06-03 | 2024-03-22 | 北京天空卫士网络安全技术有限公司 | 集群管理的方法、设备和集群系统 |
CN112597123B (zh) * | 2020-11-20 | 2023-01-06 | 贝壳技术有限公司 | 数据多版本动态切换方法及装置 |
CN112463882A (zh) * | 2020-11-20 | 2021-03-09 | 广东省安心加科技有限公司 | 数据同步方法及云平台、边缘端 |
CN112700214A (zh) * | 2020-12-29 | 2021-04-23 | 创优数字科技(广东)有限公司 | 一种人脸考勤数据处理方法、装置、服务器及存储介质 |
CN112860794A (zh) * | 2021-02-03 | 2021-05-28 | 百果园技术(新加坡)有限公司 | 基于缓存的并发能力提升方法、装置、设备及存储介质 |
CN113034715A (zh) * | 2021-03-02 | 2021-06-25 | 创优数字科技(广东)有限公司 | 一种考勤数据处理方法、装置、服务器及存储介质 |
CN113076304A (zh) * | 2021-04-16 | 2021-07-06 | 北京沃东天骏信息技术有限公司 | 一种分布式版本管理方法、装置和系统 |
CN114253944B (zh) * | 2021-12-16 | 2022-10-04 | 深圳壹账通科技服务有限公司 | 数据库双向同步方法、装置和电子设备 |
CN115422210A (zh) * | 2022-11-08 | 2022-12-02 | 北京锐融天下科技股份有限公司 | 一种多活架构下保障业务操作数据有效性的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104933127A (zh) * | 2015-06-12 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 基于MariaDB的跨机房数据库同步设备及方法 |
CN105095313A (zh) * | 2014-05-22 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种数据访问方法和设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464895A (zh) * | 2009-01-21 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种更新内存数据的方法、系统和装置 |
CN104572845B (zh) * | 2014-12-12 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 文件分发方法、装置、设备及系统 |
US9985832B2 (en) * | 2016-01-29 | 2018-05-29 | Dell Products L.P. | Method and system for syncronization and distribution of configuration cross cluster without blocking |
CN105893093A (zh) * | 2016-03-31 | 2016-08-24 | 北京奇艺世纪科技有限公司 | 一种应用程序升级方法及装置 |
CN106484858B (zh) * | 2016-10-09 | 2019-12-06 | 腾讯科技(北京)有限公司 | 热点内容推送方法和装置 |
-
2017
- 2017-08-18 CN CN201710711758.XA patent/CN109413127B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095313A (zh) * | 2014-05-22 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种数据访问方法和设备 |
CN104933127A (zh) * | 2015-06-12 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 基于MariaDB的跨机房数据库同步设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109413127A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413127B (zh) | 一种数据同步方法和装置 | |
CN110019350B (zh) | 基于配置信息的数据查询方法和装置 | |
CN109063196B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN110262807B (zh) | 集群创建进度日志采集系统、方法和装置 | |
CN105472045A (zh) | 数据库迁移的方法和装置 | |
CN110858194A (zh) | 一种数据库扩容的方法和装置 | |
CN110019263B (zh) | 信息存储方法和装置 | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN105868251A (zh) | 一种缓存数据更新方法及装置 | |
CN110866001A (zh) | 确定待处理订单的方法和装置 | |
CN111984686A (zh) | 一种数据处理的方法和装置 | |
CN110674082A (zh) | 移除在线文档的方法、装置、电子设备及计算机可读介质 | |
CN112783914B (zh) | 优化语句的方法和装置 | |
CN112711572B (zh) | 适用于分库分表的在线扩容方法和装置 | |
CN110019525A (zh) | 一种数据库扩容的方法和装置 | |
CN109087097B (zh) | 一种更新链码同一标识的方法和装置 | |
CN113760861A (zh) | 一种数据迁移的方法和装置 | |
CN113742376A (zh) | 一种同步数据的方法、第一服务器以及同步数据的系统 | |
CN113742321A (zh) | 一种数据更新的方法和装置 | |
CN107665241B (zh) | 一种实时数据多维度去重方法和装置 | |
CN113704242A (zh) | 一种数据处理方法和装置 | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
CN112579615A (zh) | 一种实现分布式锁的方法和装置 | |
CN110851192A (zh) | 一种响应降级开关配置的方法和装置 | |
CN112988857A (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 |