数据库与缓存一致性同步方法、装置、设备及存储介质与流程

allin2022-10-30  153



1.本发明涉及人工智能技术领域,尤其涉及一种数据库与缓存一致性同步方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.随着计算机和通讯技术的发展,数据量急剧增加,人类进入大数据时代,在数据查询、检索等领域中应用的大数据平台,对能够及时获得数据有着很高的要求,如何在海量的数据中快速获取常用数据对大数据平台来说是一个挑战,为了解决上述问题,目前大数据平台存储系统的构造分为两部分,一是数据库,此部分主要用来存放原始数据;二是缓存(redis),此部分主要用来存放查询结果,其中结果为数据库构件中的数据副本;但是由于数据库和缓存(redis)之间没有一致性协议,导致数据库和缓存经常出现数据不一致的场景。
3.现有技术中有三种解决数据不一致问题的方法,一先更新数据库后删除缓存,这种情况下如果更新数据库之后,删除缓存操作失败,则缓存中还是更新前的数据,数据不一致;二先删除缓存后更新数据库,这种情况下如果删除缓存和更新数据库之间有其他的线程查询了目标数据,则会把更新前的数据查出来重新塞到缓存中,数据不一致;三先删除缓存后更新数据库,最后再删除一遍缓存,这种情况能够规避不一致问题,但是会带来额外的消耗,因为一次数据库修改缓存被刷新了两次。
4.综上所述,当前数据库与缓存同步时的数据一致性亟需提升。


技术实现要素:

5.本发明提供一种数据库与缓存一致性同步方法、装置及计算机可读存储介质,其主要目的在于解决数据库与缓存同步时的数据一致性低的问题。
6.为实现上述目的,本发明提供的一种数据库与缓存一致性同步方法,包括:
7.获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;
8.将所述二进制日志数据解析为结构化数据;
9.将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;
10.消费所述结构化数据集,得到缓存数据;
11.根据所述缓存数据,基于消息响应机制更新预设缓存。
12.可选地,所述将所述二进制日志数据解析为结构化数据,包括:
13.利用预设解析器将对所述二进制日志数据进行协议解析,得到字段信息集;
14.将所述字段信息集填充到预设的结构化模板中,得到结构化数据。
15.可选地,所述将所述结构化数据发送给对应消息中间件,包括:
16.统计所述消息中间件中主题个数;
17.提取所述结构化数据中的数据主键,将所述数据主键与所述主题个数取模,得到数据主键取模值;
18.将所述结构化数据发送给所述消息中间件中编号为所述数据主键取模值的主题。
19.可选地,所述基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集,包括:
20.对所述结构化数据进行去重处理,得到非重复结构化数据;
21.利用预设时间窗口及预设数量窗口汇聚所述非重复结构化数据,得到结构化数据集。
22.可选地,所述消费所述结构化数据集,得到缓存数据,包括:
23.根据预设消费者数量对所述主题中所述结构化数据集进行分区,得到分区数据;
24.消费所述分区数据,得到消费后分区数据;
25.对所消费后分区数据进行过滤及汇聚操作,得到缓存数据。
26.可选地,所述消费所述结构化数据集,所述方法还包括:
27.设置自动停止读取所述结构化数据的开关,统计消费所述结构化数据的消费时间;
28.当所述消费时间超过预设时间阈值时,打开所述开关,停止读取所述结构化数据;
29.消费完所述结构化数据之后,统计所述结构化数据的总消费时间,根据所述总消费时间及所述预设时间阈值,对所述主题个数进行扩容处理。
30.可选地,所述根据所述缓存数据,基于消息响应机制更新预设缓存,包括:
31.计算所述缓存数据的key值;
32.根据所述key值更新预设缓存;
33.判断所述缓存数据是否更新成功;
34.当所述缓存数据更新成功,则利用消息响应机制,通知所述消息中间件所述预设缓存更新成功;
35.当所述缓存数据更新失败,则不通知所述消息中间件,返回所述消费所述结构化数据集,得到缓存数据的步骤,直至所述缓存数据更新成功。
36.为了解决上述问题,本发明还提供一种数据库与缓存一致性同步装置,所述装置包括:
37.日志数据获取模块,用于获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;
38.日志数据解析模块,用于将所述二进制日志数据解析为结构化数据;
39.数据汇聚模块,用于将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;
40.数据消费模块,用于消费所述结构化数据集,得到缓存数据;
41.缓存更新模块,用于根据所述缓存数据,基于消息响应机制更新预设缓存。
42.为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
43.至少一个处理器;以及,
44.与所述至少一个处理器通信连接的存储器;其中,
45.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序
被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的数据库与缓存一致性同步方法。
46.为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的数据库与缓存一致性同步方法。
47.本发明实施例通过将二进制日志数据解析为结构化数据;将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集,批量化操作所述结构化数据,减少操作缓存的次数,避免因为频繁操作缓存引起的拥堵,造成数据库与缓存数据不一致的问题,通过中间消费件实现数据异步传输,保证了缓存数据的可靠性,同时提升了数据缓存更新效率;消费所述结构化数据集,得到缓存数据;根据所述缓存数据,基于消息响应机制更新预设缓存,将数据库与缓存更新流程解耦,避免将缓存更新流程与数据更新流程独立运行,保证了数据库与缓存的一致性同步。因此本发明提出的数据库与缓存一致性同步方法、装置、电子设备及计算机可读存储介质,可以解决数据库与缓存同步时的数据一致性低的问题。
附图说明
48.图1为本发明一实施例提供的数据库与缓存一致性同步方法的流程示意图;
49.图2为图1数据库与缓存一致性同步方法中其中一个步骤的详细实施流程示意图;
50.图3为图1数据库与缓存一致性同步方法中其中另一个步骤的详细实施流程示意图;图4为本发明一实施例提供的数据库与缓存一致性同步装置的功能模块图;
51.图5为本发明一实施例提供的实现所述数据库与缓存一致性同步方法的电子设备的结构示意图。
52.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
53.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
54.本技术实施例提供一种数据库与缓存一致性同步方法。所述数据库与缓存一致性同步方法的执行主体包括但不限于服务端、终端等能够被配置为执行本技术实施例提供的该方法的电子设备中的至少一种。换言之,所述数据库与缓存一致性同步方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
55.参照图1所示,为本发明一实施例提供的数据库与缓存一致性同步方法的流程示意图。在本实施例中,所述数据库与缓存一致性同步方法包括:
56.s1、获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据。
57.本发明实施例中,所述数据更新请求包含修改、删除、新增数据,不包含查询数据。
58.本发明实施例中,所述预设数据库可以为关系型数据库,例如:mysql,所述mysql是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
59.本发明实施例中,所述二进制日志数据为binlog文件,所述binlog是用来记录mysql内部对数据库的改动(只记录对数据的更新操作,不记录查询内容),主要用于数据库的主从复制以及增量恢复。通过监听binlog文件,监听所述预设数据库中所有表的数据变化,在生成每一条二进制日志数据时,获取所述二进制日志数据,所述二进制日志数据携带有所有的变化数据。
60.本发明实施例中,可以通过第三方工具包,如biarylogclient获取所述二进制日志数据。
61.s2、将所述二进制日志数据解析为结构化数据。
62.本发明实施例中,可以采用解析工具解析所述二进制日志数据,所述解析工具包括但不限于maxwell、canal、databus、dts。
63.详细地,所述s2包括:
64.利用预设解析器将对所述二进制日志数据进行协议解析,得到字段信息集;
65.将所述字段信息集填充到预设的结构化模板中,得到结构化数据。
66.本发明实施例中,所述字段信息集包含但不限于:表名,字段名,操作前的值,操作后的值,具体的操作类型、主键信息。
67.本发明其中一个实施例中,可利用maxwell解析工具将所述二进制日志数据解析为json格式数据;具体地,所述maxwell解析工具是一个能实时读取mysql的二进制日志数据,并生成json格式数据,作为生产者发送给kafka,kinesis、rabbitmq、redis、googlecloudpub/sub、文件或其它平台的应用程序。
68.s3、将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集。
69.本发明实施例中,所述消息中间件kafka消息中间件。
70.详细地,参阅图2所示,s3中所述将所述结构化数据发送给对应消息中间件,包括:
71.s31、统计所述消息中间件中主题个数;
72.s32、提取所述结构化数据中的数据主键,将所述数据主键与所述主题个数取模,得到数据主键取模值;
73.s33、将所述结构化数据发送给所述消息中间件中编号为所述数据主键取模值的主题。
74.本发明实施例中,利用所述数据主键与所述主题(topic)个数取模,得到数据主键取模值,例如kafka中使用了10个主题来接收所述结构化数据,将所述数据主键与10取模,得到数据主键取模值,利用所述数据主键取模值指定主题,保证相同数据主键的日志数据在同一个主题中,从而保证相同数据主键的日志数据操作的有序性。
75.本发明实施例中,设置自动停止读取所述结构化数据的开关,当消费所述结构化数据的时间超过预设时间阈值时,打开所述开关,停止读取所述结构化数据,避免所述消息中间中消息队列冗余;当消费完所述结构化数据之后,根据所述消费时间对所述主题个数进行扩容处理。
76.具体地,发送所述结构化数据给主题的时在所述结构化数据中增加时间戳字段与消费完所述结构化数据的时间做个比对,得到总消费时间,当总消费时间超过预设时间阈值时,根据所述消费时间及预设时间阈值,对所述主题个数进行扩容处理。例如预设时间阈值是1毫秒,但是总消费时间有2毫秒,将主题个位扩容为原来的一倍。
77.进一步地,s3中所述基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集,包括:
78.对所述结构化数据进行去重处理,得到非重复结构化数据;
79.利用预设时间窗口及预设数量窗口汇聚所述非重复结构化数据,得到结构化数据集。
80.本发明其中一个实施例中,例如所述预设时间窗口为1ms,所述预设数量窗口为200条,表示满足1ms时间内统计的非重复结构化数据或所述非重复结构化数据达到200条任意一条时,汇聚所述结构化数据,得到结构化数据集,批量化操作所述结构化数据,减少操作缓存的次数,避免因为频繁操作缓存引起的拥堵,造成数据库与缓存数据不一致的问题。
81.s4、消费所述结构化数据集,得到缓存数据。
82.本发明实施例中,可以创建多个消费者消费所述结构化数据集,得到缓存数据。
83.详细地,所述s4包括:
84.根据预设消费者数量对所述主题中所述结构化数据集进行分区,得到分区数据;
85.消费所述分区数据,得到消费后分区数据;
86.对所消费后分区数据进行过滤及汇聚操作,得到缓存数据。
87.s5、根据所述缓存数据,基于消息响应机制更新预设缓存。
88.本发明实施例中,本发明其中实施例中,所述预设缓存(redis)是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库。
89.详细地,参阅图3所示,所述s5包括:
90.s51、计算所述缓存数据的key值;
91.s52、根据所述key值更新预设缓存;
92.s53、判断所述缓存数据是否更新成功;
93.当所述缓存数据更新成功,则执行s54、利用消息响应机制,通知所述消息中间件所述预设缓存更新成功;
94.当所述缓存数据更新失败,则执行s55、不通知所述消息中间件,并返回所述s4的步骤,直至所述缓存数据更新成功。
95.本发明实施例中,利用消息响应机制更新预设缓存,保证缓存数据更新的顺利完成进而保证数据库与缓存的一致性同步,加入所述消息中间件使得整个缓存更新过程数据可靠,同时缓存更新效率大大提高。
96.本发明实施例通过将二进制日志数据解析为结构化数据;将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集,批量化操作所述结构化数据,减少操作缓存的次数,避免因为频繁操作缓存引起的拥堵,造成数据库与缓存数据不一致的问题,通过中间消费件实现数据异步传输,保证了缓存数据的可靠性,同时提升了数据缓存更新效率;消费所述结构化数据集,得到缓存数据;
根据所述缓存数据,基于消息响应机制更新预设缓存,将数据库与缓存更新流程解耦,避免将缓存更新流程与数据更新流程独立运行,保证了数据库与缓存的一致性同步。因此本发明提出的数据库与缓存一致性同步方法,可以解决数据库与缓存同步时的数据一致性低的问题。
97.如图4所示,是本发明一实施例提供的数据库与缓存一致性同步装置的功能模块图。
98.本发明所述数据库与缓存一致性同步装置100可以安装于电子设备中。根据实现的功能,所述数据库与缓存一致性同步装置100可以包括日志数据获取模块101、日志数据解析模块102、数据汇聚模块103、数据消费模块104及缓存更新模块105。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
99.在本实施例中,关于各模块/单元的功能如下:
100.所述日志数据获取模块101,用于获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;
101.所述日志数据解析模块102,用于将所述二进制日志数据解析为结构化数据;
102.所述数据汇聚模块103,用于将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;
103.所述数据消费模块104,用于消费所述结构化数据集,得到缓存数据;
104.所述缓存更新模块105,用于根据所述缓存数据,基于消息响应机制更新预设缓存。
105.详细地,本发明实施例中所述数据库与缓存一致性同步装置100中所述的各模块在使用时采用与上述图1至图3中所述的数据库与缓存一致性同步方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
106.如图5所示,是本发明一实施例提供的实现数据库与缓存一致性同步方法的电子设备的结构示意图。
107.所述电子设备1可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如数据库与缓存一致性同步程序。
108.其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行数据库与缓存一致性同步程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
109.所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备
的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如数据库与缓存一致性同步程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
110.所述通信总线12可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
111.所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
112.图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
113.例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
114.应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
115.所述电子设备1中的所述存储器11存储的数据库与缓存一致性同步程序是多个指令的组合,在所述处理器10中运行时,可以实现:
116.获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;
117.将所述二进制日志数据解析为结构化数据;
118.将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;
119.消费所述结构化数据集,得到缓存数据;
120.根据所述缓存数据,基于消息响应机制更新预设缓存。
121.具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。
122.进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作
为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
123.本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
124.获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;
125.将所述二进制日志数据解析为结构化数据;
126.将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;
127.消费所述结构化数据集,得到缓存数据;
128.根据所述缓存数据,基于消息响应机制更新预设缓存。
129.在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
130.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
131.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
132.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
133.因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
134.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
135.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
136.此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中
陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
137.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

技术特征:
1.一种数据库与缓存一致性同步方法,其特征在于,所述方法包括:获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;将所述二进制日志数据解析为结构化数据;将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;消费所述结构化数据集,得到缓存数据;根据所述缓存数据,基于消息响应机制更新预设缓存。2.如权利要求1所述的数据库与缓存一致性同步方法,其特征在于,所述将所述二进制日志数据解析为结构化数据,包括:利用预设解析器将对所述二进制日志数据进行协议解析,得到字段信息集;将所述字段信息集填充到预设的结构化模板中,得到结构化数据。3.如权利要求2所述的数据库与缓存一致性同步方法,其特征在于,所述将所述结构化数据发送给对应消息中间件,包括:统计所述消息中间件中主题个数;提取所述结构化数据中的数据主键,将所述数据主键与所述主题个数取模,得到数据主键取模值;将所述结构化数据发送给所述消息中间件中编号为所述数据主键取模值的主题。4.如权利要求1所述的数据库与缓存一致性同步方法,其特征在于,所述基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集,包括:对所述结构化数据进行去重处理,得到非重复结构化数据;利用预设时间窗口及预设数量窗口汇聚所述非重复结构化数据,得到结构化数据集。5.如权利要求1所述的数据库与缓存一致性同步方法,其特征在于,所述消费所述结构化数据集,得到缓存数据,包括:根据预设消费者数量对所述主题中所述结构化数据集进行分区,得到分区数据;消费所述分区数据,得到消费后分区数据;对所消费后分区数据进行过滤及汇聚操作,得到缓存数据。6.如权利要求1至5中任一项所述的数据库与缓存一致性同步方法,其特征在于,所述消费所述结构化数据集,所述方法还包括:设置自动停止读取所述结构化数据的开关,统计消费所述结构化数据的消费时间;当所述消费时间超过预设时间阈值时,打开所述开关,停止读取所述结构化数据;消费完所述结构化数据之后,统计所述结构化数据的总消费时间,根据所述总消费时间及所述预设时间阈值,对所述主题个数进行扩容处理。7.如权利要求6所述的数据库与缓存一致性同步方法,其特征在于,所述根据所述缓存数据,基于消息响应机制更新预设缓存,包括:计算所述缓存数据的key值;根据所述key值更新预设缓存;判断所述缓存数据是否更新成功;当所述缓存数据更新成功,则利用消息响应机制,通知所述消息中间件所述预设缓存
更新成功;当所述缓存数据更新失败,则不通知所述消息中间件,返回所述消费所述结构化数据集,得到缓存数据的步骤,直至所述缓存数据更新成功。8.一种数据库与缓存一致性同步装置,其特征在于,所述装置包括:日志数据获取模块,用于获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;日志数据解析模块,用于将所述二进制日志数据解析为结构化数据;数据汇聚模块,用于将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;数据消费模块,用于消费所述结构化数据集,得到缓存数据;缓存更新模块,用于根据所述缓存数据,基于消息响应机制更新预设缓存。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的数据库与缓存一致性同步方法。10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的数据库与缓存一致性同步方法。

技术总结
本发明涉及人工智能技术,揭露了一种数据库与缓存一致性同步方法,包括:获取数据更新请求,根据所述数据更新请求更新预设数据库数据,生成二进制日志数据;将所述二进制日志数据解析为结构化数据;将所述结构化数据发送给对应消息中间件,基于预设时间窗口及预设数量窗口汇聚所述结构化数据,得到结构化数据集;消费所述结构化数据集,得到缓存数据;根据所述缓存数据,基于消息响应机制更新预设缓存。此外,本发明还涉及区块链技术,结构化数据可存储于区块链的节点。本发明还提出一种数据库与缓存一致性同步装置、电子设备以及存储介质。本发明可以提高数据库与缓存同步时的数据一致性。一致性。一致性。


技术研发人员:周永雄
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:2022.04.24
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-4103.html

最新回复(0)