CN109597817A - 一种缓存数据处理方法、装置、设备及介质 - Google Patents

一种缓存数据处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN109597817A
CN109597817A CN201811350103.5A CN201811350103A CN109597817A CN 109597817 A CN109597817 A CN 109597817A CN 201811350103 A CN201811350103 A CN 201811350103A CN 109597817 A CN109597817 A CN 109597817A
Authority
CN
China
Prior art keywords
data
cached
change log
data cached
variance
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
CN201811350103.5A
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811350103.5A priority Critical patent/CN109597817A/zh
Publication of CN109597817A publication Critical patent/CN109597817A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例公开了一种缓存数据处理方法、装置、设备及介质,缓存数据处理方法包括:按次获取数据库的数据更改日志;若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理;若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和/或处理内容处理缓存数据。

Description

一种缓存数据处理方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种缓存数据处理方法、装置、设 备及介质。
背景技术
现有技术中,对于应用系统来说,为了提升系统处理性能,设计上会将一 些数据缓存到服务器中,避免每次业务处理都重新从数据库查询,减少耗时。 此类数据大多为一些配置参数、规则、主数据等,其主要特点为读多写少。虽 然大多数时间下数据库中的这类数据不会发生改变,但是还是存在变更情况。 在数据库数据变更后,应用系统需要基于新数据来处理,那么需要尽快感知数 据库中数据的变化并对缓存进行处理,主要是更新缓存。现有的缓存数据更新 方法侧重于缓存数据刷新,例如:1、通用缓存组件设计,通常在代码中配置缓 存刷新时间,定时重新加载缓存数据以刷新缓存,相当于主动更新;2、管理员通过后台推送刷新任务,系统接收到相应的刷新任务后,根据设定的代码逻辑, 重新加载缓存数据以刷新缓存,相当于被动更新。综合来看,现有的缓存数据 更新方法无法快速更新缓存,无论是主动更新还是被动更新,都需要人工参与, 也都存在较长时间的延迟(通常延迟大于5min,人工后台刷新延迟大于10min); 同时,现有缓存更新是服务器与数据库之间进行数据传输,每次更新时都是使 用数据库中的数据对缓存刷新前的缓存数据进行全量刷新,即使数据库的变更 数据不涉及缓存数据,从而对服务器和数据库造成巨大的数据压力,且更新越 频繁数据压力越大,更新不频繁则增加延迟;另外,对于人工后台刷新的情况, 还需要增加中间件消息推送逻辑,应用系统需要编写相应处理逻辑,成本巨大。
有鉴于此,需要更有效和更高效的缓存数据处理方案。
发明内容
本说明书实施例提供了一种缓存数据处理方法、装置、设备及介质,用以 解决如何更有效和更高效地进行缓存数据处理的技术问题。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供一种缓存数据处理方法,包括:
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改 日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和 /或处理内容处理缓存数据。
本说明书实施例提供一种缓存数据处理装置,包括:
日志获取模块,用于按次获取数据库的数据更改日志;
条件判定模块,用于若任相邻两次获取的所述数据更改日志不同,则根据 两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理;
缓存处理模块,用于若确定对缓存数据进行处理,则确定对缓存数据的处 理模式和/或处理内容,根据所述处理模式和/或处理内容处理缓存数据。
本说明书实施例提供一种缓存数据处理设备,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述 至少一个处理器执行,以使所述至少一个处理器能够:
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改 日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和 /或处理内容处理缓存数据。
本说明书实施例提供一种计算机可读存储介质,所述计算机可读存储介质 存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如下的 步骤:
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改 日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和 /或处理内容处理缓存数据。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过按次获取的数据更改日志自动确定是否对缓存数据进行处理以及如何 处理,无需人工操作,缓存数据处理效率更高;缓存并不与数据库进行数据传 输或交互,从而不会对数据库造成数据交互或者开销压力,同时有效降低对缓 存的数据压力以及对应用系统的交互或者开销压力;由于是通过数据更改日志 的差异数据对缓存数据进行处理,而无需对缓存数据进行全量处理,进一步降 低了处理缓存数据的压力,避免大数据量交互造成的性能开销瓶颈;在降低缓 存数据处理压力的基础上,可进一步缩短获取数据更改日志的时间间隔,提高 感知数据更改日志的数据变化的灵敏性,从而缩短缓存数据处理间隔,提高缓 存数据与数据库数据的同步性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对本 说明书实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术 人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的 附图。
图1是本说明书第一个实施例中的缓存数据处理系统工作示意图。
图2是本说明书第二个实施例中的一种缓存数据处理方法的流程示意图。
图3是本说明书第二个实施例中的缓存数据处理过程示意图。
图4是本说明书第三个实施例中的一种缓存数据处理装置的结构示意图。
图5是本说明书第三个实施例中的另一种缓存数据处理装置的结构示意图。
图6是本说明书第三个实施例中的另一种缓存数据处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合 本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地 描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施 例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下 所获得的所有其他实施例,都应当属于本申请保护的范围。
如图1所示,在本说明书的第一个实施例中,缓存数据处理系统按次获取 数据库的数据更改日志;若任相邻两次获取的所述数据更改日志不同,则缓存 数据处理系统根据两次获取的数据更改日志的差异数据确定是否对缓存数据进 行处理;若是,则缓存数据处理系统确定对缓存数据的处理模式和/或处理内容, 根据所述处理模式和/或处理内容处理缓存数据。
在第一个实施例中,缓存数据处理系统通过按次获取的数据更改日志自动 确定是否对缓存数据进行处理以及如何处理,无需人工操作,缓存数据处理效 率更高;缓存并不与数据库进行数据传输或交互,从而不会对数据库造成数据 交互或者开销压力,同时有效降低对缓存的数据压力以及对应用系统的交互或 者开销压力;由于是通过数据更改日志的差异数据对缓存数据进行处理,而无 需对缓存数据进行全量处理,进一步降低了处理缓存数据的压力,避免大数据 量交互造成的性能开销瓶颈;在降低缓存数据处理压力的基础上,可进一步缩 短获取数据更改日志的时间间隔,提高感知数据更改日志的数据变化的灵敏性, 从而缩短缓存数据处理间隔,提高缓存数据与数据库数据的同步性。
从程序角度而言,上述流程的执行主体可以为计算机或者服务器或者相应 的缓存数据处理系统等。另外,也可以由第三方应用客户端协助所述执行主体 执行上述流程。
图2是本说明书第二个实施例提供的一种缓存数据处理方法的流程示意图, 图3是本说明书第二个实施例中的缓存数据处理过程示意图,参考图2和图3, 本实施例中的该缓存数据处理方法包括:
S101:按次获取数据库的数据更改日志。
本实施例中,所述数据更改日志为二进制日志,即binlog,是记录数据库 发生的或潜在发生的更改或更新(比如DELETE语句执行删除而实际并没有符合 条件的数据)的SQL语句,并以二进制的形式保存在磁盘中,故可以说binlog记录了数据库上的所有改变。实际场景中,当有数据写入到数据库时,还会同 时把更新的SQL语句写入到对应的binlog文件里。
本实施例中,数据库的数据更改日志(以下简称“数据更改日志”)的获取 方可以是应用(或业务)系统或服务器或者其他主体,例如第一个实施例中的 缓存数据处理系统;是否对缓存数据进行处理的确定方可以是应用(或业务) 系统或服务器或者其他主体,例如第一个实施例中的缓存数据处理系统;对缓 存数据的处理方可以是应用(或业务)系统或服务器或者其他主体,例如第一 个实施例中的缓存数据处理系统。缓存数据处理系统与应用系统可以是相对独 立的系统,也可以是相互包含或部分包含或相互嵌入或部分嵌入的关系。以下 以应用系统作为上述各方进行说明,服务器或者其他主体同应用系统。
本实施例中,所述的“按次获取”即一次次获取,那么:每相邻两次获取 数据更改日志的时间间隔可以是相同的,即定时获取;每相邻两次获取数据更 改日志的时间间隔也可以是不同的,即不定时获取;也可以是周期性地定时获 取,即有固定的周期,比如以一个小时为一个周期。在每个周期内是定时获取 数据更改日志,但不同周期内相邻两次获取数据更改日志的时间间隔可以不同; 还可以是不定周期地定时获取,即周期不固定,比如某相邻三个周期都是一小 时,而之后的两个周期都是两小时。在每个周期内是定时获取数据更改日志, 但不同周期内相邻两次获取数据更改日志的时间间隔可以相同或不同。
进一步,可以按照如下方式确定获取数据更改日志的时间间隔:
S1011:确定缓存数据的使用频率和/或使用量,可以是应用系统或应用对 缓存数据的使用频率和/或使用量。使用频率和/或使用量可以是一个或多个固 定时间段内的使用频率和/或使用量,一般可以是每天的一个或多个固定时间段 内的使用频率和/或使用量,比如确定每天7点到19点的使用频率和/或使用量, 或者以一个小时为一个时间段,确定每天各个时间段内的使用频率和/或使用 量,当然也可以以多个小时为一个时间段,确定每天各个时间段内的使用频率 和/或使用量。某个时间段内的使用频率可以利用“该时间段内的总使用次数除 以该时间段的时长”的方式得出,某个时间段内的使用量可以是该时间段内的 总使用量。所述的“使用”可以是对缓存数据的读取和写入,也可以只是读取或只是写入。
S1012:根据所述使用频率和/或使用量确定获取数据库数据更改日志的时 间间隔。
一般可以采取的策略是,根据前一天内缓存数据的使用频率和/或使用时间 段确定后一天内获取数据更改日志的时间间隔。可能出现的情况例如:
1、若只是确定每天的一个时间段内(比如7点至19点)缓存数据的使用 频率和/或使用量,则可以根据前一天该时间段内缓存数据的使用频率和/或使 用量确定后一天全天或某个或某些时间段内获取数据更改日志的时间间隔,即 前一天该时间段对应后一天全天或某个或某些时间段。
2、若是确定每天的多个时间段内缓存数据的使用频率和/或使用量,则可 以根据前一天这多个时间段内缓存数据的使用频率和/或使用量确定后一天全 天或某个或某些时间段内获取数据更改日志的时间间隔,即前一天这多个时间 段对应后一天全天或某个或某些时间段。比如获取的是每天各个小时内缓存数 据的使用频率和/或使用量的情况下,可以根据前一天某小时内缓存数据的使用 频率和/或使用量确定后一天对应小时内获取数据更改日志的时间间隔。
特别的,确定缓存数据的使用频率和/或使用量可以是:每隔第一时长确定 最新的第一时长内缓存数据的使用频率和/或使用量,比如每隔两小时确定最新 过去的两小时内缓存数据的使用频率和/或使用量;根据所述使用频率和/或使 用量确定获取数据库数据更改日志的时间间隔可以是:根据上一个第一时长内 缓存数据的使用频率和/或使用量确定下一个第一时长内获取数据库数据更改 日志的时间间隔,即上一个第一时长对应下一个第一时长。比如根据上一个两 小时内缓存数据的使用频率和/或使用量确定下一个两小时内获取数据更改日 志的时间间隔。采用这种方式,可以利用前一个第一时长内缓存数据的使用情 况调整下一个第一时长内获取数据更改日志的时间间隔,使得获取数据更改日 志的时间间隔能够随缓存数据的使用情况变化而变化。通常,第一时长越短, 这种随从变化的灵敏性越高。
特别的,也可以将某个或某些时间段内数据更改日志的时间间隔设为固定 值,并可以与上面的确定时间间隔的情况结合使用。
一般来说,不管是哪种确定时间间隔的方式,某时间段内缓存数据的使用 频率和/或使用量越高,与其对应的时间段内获取数据更改日志的时间间隔越 短。
需要说明的是,本说明书中的前一天和后一天是指相邻的两天,上一个和 下一个是指相邻的两个。
在确定了获取数据更改日志的时间间隔后,便可以按照确定的时间间隔获 取数据更改日志,即:
S1013:根据所述时间间隔按次获取数据库数据更改日志。
本实施例中,获取数据更改日志可以采用如下方式(但不限于如下方式):
(1)连接数据库。如前述,可以是应用系统连接数据库。
(2)解析握手信息。当连接上数据库后,数据库会回消息给应用系统,如 果连接失败,会返回错误信息,如果连接成功,则返回必要的握手信息,应用 系统可以解析握手信息。
(3)发送认证信息。要同数据库建立一个安全的连接,可能需要将用户名 和密码发送给数据库。
(4)解析认证信息。数据库解析认证信息后返回消息给应用系统,如果是 错误信息应用系统可以对错误消息进行解析,获取错误提示并处理,无错误则 可忽略。
(5)发送认证请求。即应用系统向数据库发送认证请求。例如:应用系统 利用握手消息的seed和密码用scramble323函数对密码进行加密,将密码发送 给数据库,发送的内容是加密后的byte数组,即323认证请求。
(6)数据库返回认证消息。数据库解析认证请求后返回消息给应用系统, 如果是错误信息应用系统可以对错误消息进行解析,获取错误提示并处理,无 错误则可忽略。
(7)发送连接参数。即应用系统向数据库发送连接参数,进行设置。
(8)返回参数设置结果。设置成功后数据库会返回消息给应用系统,如果 失败会有错误消息,应用系统可以对错误消息进行解析,获取错误提示并处理。
(9)发送获取checksum的消息。应用系统发送获取checksum的请求给数 据库,数据库返回消息。
(10)解析消息,记录checksum。由于有结果集返回,应用系统需要对结 果集进行解析。包括:验证消息是否有错误;解析正确的消息;循环读取列信 息;读取EOF;循环读取行数据;设置binlog checksum的值。
(11)发送获取binlog位置消息。应用系统发送查询请求给数据库。
(12)解析返回消息,获得位置。数据库返回消息给应用系统,应用系统 解析消息,解析过程类似于(10),最后获得binlog文件名称和位置。
(13)发送同步binlog请求。应用系统发送同步binlog请求给数据库。
(14)启动读取线程,循环读取binlog。应用系统启动读取线程,接收数 据库的binlog。
S102:若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数 据更改日志的差异数据确定是否对缓存数据进行处理。
由于应用系统是一次次获取数据更改日志,则若任相邻两次获取的数据更 改日志有差异,则应用系统根据两次获取的数据更改日志的差异数据(以下简 称“差异数据”,即相邻两次获取的数据更改日志之间不同的数据)确定是否对 缓存数据进行处理。不妨将上面的任相邻两次记为第m次和第m+1次,下文中 基于该两次来进行说明。
进一步,根据两次获取的数据更改日志的差异数据确定是否对缓存数据进 行处理可以包括:确定两次获取的数据更改日志的差异数据是否为缓存项的对 应数据,若是,则确定对缓存数据进行处理;若否,则不处理缓存数据。
进一步,确定两次获取的数据更改日志的差异数据是否为缓存项的对应数 据可以包括:利用binlog协议对两次获取的数据更改日志的差异数据进行解析 (例如DML解析),确定解析后得到的数据是否为缓存项的对应数据或者是否属 于缓存项数据(例如前述的配置参数、规则、主数据等)。若是,则所述差异数 据为缓存项的对应数据,并确定对缓存数据进行处理;若否,则所述差异数据 不是缓存项的对应数据,从而不处理缓存数据,并可以将所述差异数据抛弃。
S103:若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理 模式和/或处理内容处理缓存数据。
若确定对缓存数据进行处理,则应用系统可以确定对缓存数据的处理模式 和/或处理内容。具体来说,可以是根据所述差异数据或者根据对所述差异数据 进行解析后得到的数据(以下简称“解析后数据”)确定对缓存数据的处理模式 和/或处理内容。注:在根据解析后数据确定处理模式和/或处理内容的情况下, 若此前已经解析过所述缓存数据,此处可以不用解析,而使用此前解析得到的 数据;若前面没有解析过所述差异数据,此处需对所述差异数据进行解析,通 过解析可以得到两次获取的数据更改日志之间发生变更的表、数据(可精确到 字段)等。本实施例中,binlog解析可以使用Golang,处理性能上较好;当前 存在binlog解析开源软件,比如canal。
在本实施例中,所述处理模式可以包括新增数据模式和/或删除数据模式和 /或变更数据模式,和/或,所述处理内容可以包括新增数据和/或删除数据和/ 或变更数据。
具体的,在本实施例中,应用系统在确定要对缓存数据进行处理的情况下, 可以基于反射查找到解析后数据所对应或所属于的缓存项(系统XML配置),找 到缓存项后按照确定的处理模式和/或处理内容对相应缓存进行处理。注:若此 前已经解析过所述缓存数据,此处可以不用解析,而使用此前解析得到的数据; 若前面没有解析过所述差异数据,此处需对所述差异数据进行解析。
具体的,根据所述处理模式和/或处理内容处理缓存数据包括:
将解析后数据加入缓存数据(对应上面的新增数据模式或新增数据的处理 内容);
或,
删除与解析后数据中的部分或全部内容相同或对应的缓存数据(对应上面 的删除数据模式或删除数据的处理内容);
或,
将缓存数据中与解析后数据中的部分或全部内容对应的数据替换为解析后 数据中的相应数据(对应上面的变更数据模式或变更数据的处理内容)。
上述的各处理模式和/或各处理内容可以结合使用,即对于所述解析后数 据,可以同时执行多种处理模式和/或多种处理内容,比如将解析后数据的一部 分加入缓存数据,同时删除与解析后数据中的部分内容相同或对应的缓存数据, 同时将缓存数据中与解析后数据中的部分内容对应的数据替换为解析后数据中 的相应数据。
需要说明的是,在本实施例中,当得到任相邻两次获取的数据更改日志的 差异数据时,确定是否对缓存数据进行处理以及执行相应的处理所面对的都是 该相邻两次中后一次获取数据更改日志时的缓存数据。沿用上例,第m次和第 m+1次是任意的相邻两次,且第m次和第m+1次获取的数据更改日志存在差异数 据,则在第m+1次获取数据更改日志后,确定是否对缓存数据进行处理以及执 行相应的处理所面对的都是第m+1次获取数据更改日志时的缓存数据。另外, 本实施例中,数据包括数据更改日志中的SQL语句这种形式。
如图3所示,本实施例中,业务方对数据操作,例如DML操作,从而改变 数据库中的数据;数据库以binlog的方式记录自身的变更;通过按次向数据库 发送binlog dump命令等方式可以按次获取数据库的binlog;通过按次获取数 据库的binlog,可以监控或监听数据库的变化以及获取binlog的差异数据;通 过binlog的差异数据可以对缓存数据进行处理。
本实施例中,通过按次获取的数据更改日志自动确定是否对缓存数据进行 处理以及如何处理,无需人工操作,缓存数据处理效率更高,并且整个过程中 除了可能在获取数据更改日志时应用系统与数据库有少量数据交互外,缓存(或 者服务器)并不与数据库进行数据传输或交互,从而不会因缓存数据处理对数 据库造成数据交互或者开销压力,同时有效降低对缓存的数据压力以及对应用 系统的交互或者开销压力;由于是通过数据更改日志的差异数据(相当于增量 数据)对相应的缓存数据进行处理,故对缓存数据实行的是增量数据处理,而 无需对缓存数据进行全量处理(即无需刷新全部的缓存数据),进一步降低了处 理缓存数据的压力,避免大数据量交互造成的性能开销瓶颈;由于降低了数据压力和开销压力,可进一步缩短获取数据更改日志的时间间隔(本实施例中时 间间隔可以达到秒级),提高感知数据更改日志变化的灵敏性,从而缩短缓存数 据处理间隔和处理延迟,提高缓存数据与数据库数据的同步性。
如图4所示,本说明书第三个实施例提供一种缓存数据处理装置,包括:
日志获取模块201,用于按次获取数据库的数据更改日志;
条件判定模块202,用于若任相邻两次获取的所述数据更改日志不同,则根 据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理;
缓存处理模块203,用于若确定对缓存数据进行处理,则确定对缓存数据的 处理模式和/或处理内容,根据所述处理模式和/或处理内容处理缓存数据。
可选的,按次获取数据库的数据更改日志包括:
确定缓存数据的使用频率和/或使用量;
根据所述使用频率和/或使用量确定获取数据库数据更改日志的时间间隔;
根据所述时间间隔按次获取数据库数据更改日志。
可选的,确定缓存数据的使用频率和/或使用量包括:
每隔第一时长确定最新的第一时长内缓存数据的使用频率和/或使用量。
可选的,根据所述使用频率和/或使用量确定获取数据库数据更改日志的时 间间隔包括:
根据上一个第一时长内缓存数据的使用频率和/或使用量确定下一个第一 时长内获取数据库数据更改日志的时间间隔。
可选的,根据两次获取的数据更改日志的差异数据确定是否对缓存数据进 行处理包括:
确定两次获取的数据更改日志的差异数据是否为缓存项的对应数据;
若是,则确定对所述缓存数据进行处理;
若否,则不处理所述缓存数据。
可选的,如图5所示,所述装置还包括:
解析模块204,用于对两次获取的数据更改日志的差异数据进行解析;
确定两次获取的数据更改日志的差异数据是否为缓存项的对应数据包括:
确定对两次获取的数据更改日志的差异数据进行解析后得到的数据是否为 缓存项的对应数据;
若是,则所述差异数据为缓存项的对应数据;
若否,则所述差异数据非缓存项的对应数据。
可选的,如图6所示,所述装置还包括:
解析模块204,用于对两次获取的数据更改日志的差异数据进行解析;
确定对缓存数据的处理模式和/或处理内容包括:
根据对所述差异数据进行解析后得到的数据确定对缓存数据的处理模式和 /或处理内容。
可选的,所述处理模式包括新增数据模式和/或删除数据模式和/或变更数 据模式;
和/或,
所述处理内容包括新增数据和/或删除数据和/或变更数据。
可选的,如图6所示,所述装置还包括:
解析模块204,用于对两次获取的数据更改日志的差异数据进行解析;
根据所述处理模式和/或处理内容处理缓存数据包括:
将对所述差异数据进行解析后得到的数据加入缓存数据;
或,
删除与对所述差异数据进行解析后得到的数据中的部分或全部相同或对应 的缓存数据;
或,
将缓存数据中与对所述差异数据进行解析后得到的数据中的部分或全部对 应的数据替换为所述解析后数据中的相应数据。
可选的,所述缓存数据为该相邻两次中后一次获取数据更改日志时的缓存 数据。
本说明书第四个实施例提供一种缓存数据处理设备,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述 至少一个处理器执行,以使所述至少一个处理器能够:
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改 日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和 /或处理内容处理缓存数据。
本说明书第五个实施例提供一种计算机可读存储介质,所述计算机可读存 储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现 如下的步骤:
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改 日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和 /或处理内容处理缓存数据。
上述各实施例可以结合使用。
上述对本说明书特定实施例进行了描述,其它实施例在所附权利要求书的 范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实 施例中的顺序来执行并且仍然可以实现期望的结果。另外,附图中描绘的过程 不一定必须按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实 施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相 似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。 尤其,对于装置、设备、非易失性计算机可读存储介质实施例而言,由于其基 本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分 说明即可。
本说明书实施例提供的装置、设备、非易失性计算机可读存储介质与方法 是对应的,因此,装置、设备、非易失性计算机存储介质也具有与对应方法类 似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因 此,这里不再赘述对应装置、设备、非易失性计算机存储介质的有益技术效果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改 进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对 于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经 可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编 程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改 进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field ProgrammableGate Array, FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计 人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商 来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯 片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程 序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定 的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language, HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、 Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL (Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL (RubyHardware Description Language)等,目前最普遍使用的是VHDL (Very-High-SpeedIntegrated Circuit Hardware Description Language) 与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描 述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法 流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器 或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件 或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制 器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存 储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序 代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制 器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包 括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以 将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部 件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实 体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。 具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、 智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制 台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然, 在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计 算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施 例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在 一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不 限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序 产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图 和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和 /或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌 入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计 算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一 个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备 以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的 指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流 程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出 接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM) 和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计 算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任 何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序 的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、 静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存 取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快 闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其 他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定, 计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据 信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他 性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那 些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方 法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一 个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中 还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述, 例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型 的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践 本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设 备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的 本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相 似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。 尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较 简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技 术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所 作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (22)

1.一种缓存数据处理方法,其特征在于,
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和/或处理内容处理缓存数据。
2.如权利要求1所述的方法,其特征在于,按次获取数据库的数据更改日志包括:
确定缓存数据的使用频率和/或使用量;
根据所述使用频率和/或使用量确定获取数据库数据更改日志的时间间隔;
根据所述时间间隔按次获取数据库数据更改日志。
3.如权利要求2所述的方法,其特征在于,确定缓存数据的使用频率和/或使用量包括:
每隔第一时长确定最新的第一时长内缓存数据的使用频率和/或使用量。
4.如权利要求3所述的方法,其特征在于,根据所述使用频率和/或使用量确定获取数据库数据更改日志的时间间隔包括:
根据上一个第一时长内缓存数据的使用频率和/或使用量确定下一个第一时长内获取数据库数据更改日志的时间间隔。
5.如权利要求1所述的方法,其特征在于,根据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理包括:
确定两次获取的数据更改日志的差异数据是否为缓存项的对应数据;
若是,则确定对所述缓存数据进行处理;
若否,则不处理所述缓存数据。
6.如权利要求5所述的方法,其特征在于,确定两次获取的数据更改日志的差异数据是否为缓存项的对应数据包括:
确定对两次获取的数据更改日志的差异数据进行解析后得到的数据是否为缓存项的对应数据;
若是,则所述差异数据为缓存项的对应数据;
若否,则所述差异数据非缓存项的对应数据。
7.如权利要求1所述的方法,其特征在于,确定对缓存数据的处理模式和/或处理内容包括:
根据对所述差异数据进行解析后得到的数据确定对缓存数据的处理模式和/或处理内容。
8.如权利要求1所述的方法,其特征在于,
所述处理模式包括新增数据模式和/或删除数据模式和/或变更数据模式;
和/或,
所述处理内容包括新增数据和/或删除数据和/或变更数据。
9.如权利要求8所述的方法,其特征在于,根据所述处理模式和/或处理内容处理缓存数据包括:
将对所述差异数据进行解析后得到的数据加入缓存数据;
或,
删除与对所述差异数据进行解析后得到的数据中的部分或全部相同或对应的缓存数据;
或,
将缓存数据中与对所述差异数据进行解析后得到的数据中的部分或全部对应的数据替换为所述解析后数据中的相应数据。
10.如权利要求1至9中任一项所述的方法,其特征在于,所述缓存数据为该相邻两次中后一次获取数据更改日志时的缓存数据。
11.一种缓存数据处理装置,其特征在于,包括:
日志获取模块,用于按次获取数据库的数据更改日志;
条件判定模块,用于若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理;
缓存处理模块,用于若确定对缓存数据进行处理,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和/或处理内容处理缓存数据。
12.如权利要求11所述的装置,其特征在于,按次获取数据库的数据更改日志包括:
确定缓存数据的使用频率和/或使用量;
根据所述使用频率和/或使用量确定获取数据库数据更改日志的时间间隔;
根据所述时间间隔按次获取数据库数据更改日志。
13.如权利要求12所述的装置,其特征在于,确定缓存数据的使用频率和/或使用量包括:
每隔第一时长确定最新的第一时长内缓存数据的使用频率和/或使用量。
14.如权利要求13所述的装置,其特征在于,根据所述使用频率和/或使用量确定获取数据库数据更改日志的时间间隔包括:
根据上一个第一时长内缓存数据的使用频率和/或使用量确定下一个第一时长内获取数据库数据更改日志的时间间隔。
15.如权利要求11所述的装置,其特征在于,根据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理包括:
确定两次获取的数据更改日志的差异数据是否为缓存项的对应数据;
若是,则确定对所述缓存数据进行处理;
若否,则不处理所述缓存数据。
16.如权利要求15所述的装置,其特征在于,确定两次获取的数据更改日志的差异数据是否为缓存项的对应数据包括:
确定对两次获取的数据更改日志的差异数据进行解析后得到的数据是否为缓存项的对应数据;
若是,则所述差异数据为缓存项的对应数据;
若否,则所述差异数据非缓存项的对应数据。
17.如权利要求11所述的装置,其特征在于,确定对缓存数据的处理模式和/或处理内容包括:
根据对所述差异数据进行解析后得到的数据确定对缓存数据的处理模式和/或处理内容。
18.如权利要求11所述的装置,其特征在于,
所述处理模式包括新增数据模式和/或删除数据模式和/或变更数据模式;
和/或,
所述处理内容包括新增数据和/或删除数据和/或变更数据。
19.如权利要求18所述的装置,其特征在于,根据所述处理模式和/或处理内容处理缓存数据包括:
将对所述差异数据进行解析后得到的数据加入缓存数据;
或,
删除与对所述差异数据进行解析后得到的数据中的部分或全部相同或对应的缓存数据;
或,
将缓存数据中与对所述差异数据进行解析后得到的数据中的部分或全部对应的数据替换为所述解析后数据中的相应数据。
20.如权利要求11至19中任一项所述的装置,其特征在于,所述缓存数据为该相邻两次中后一次获取数据更改日志时的缓存数据。
21.一种缓存数据处理设备,其特征在于,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和/或处理内容处理缓存数据。
22.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时实现如下的步骤:
按次获取数据库的数据更改日志;
若任相邻两次获取的所述数据更改日志不同,则根据两次获取的数据更改日志的差异数据确定是否对缓存数据进行处理;
若是,则确定对缓存数据的处理模式和/或处理内容,根据所述处理模式和/或处理内容处理缓存数据。
CN201811350103.5A 2018-11-14 2018-11-14 一种缓存数据处理方法、装置、设备及介质 Pending CN109597817A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811350103.5A CN109597817A (zh) 2018-11-14 2018-11-14 一种缓存数据处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811350103.5A CN109597817A (zh) 2018-11-14 2018-11-14 一种缓存数据处理方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN109597817A true CN109597817A (zh) 2019-04-09

Family

ID=65957092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811350103.5A Pending CN109597817A (zh) 2018-11-14 2018-11-14 一种缓存数据处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN109597817A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111324620A (zh) * 2020-02-18 2020-06-23 中国联合网络通信集团有限公司 数据处理方法、装置及存储介质
CN112419018A (zh) * 2020-01-03 2021-02-26 上海哔哩哔哩科技有限公司 分布式环境下的通用数据对账方法、服务器及存储介质
CN112402968A (zh) * 2019-08-23 2021-02-26 腾讯科技(深圳)有限公司 虚拟道具对象的使用时长的调整方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929472A (zh) * 2014-03-21 2014-07-16 珠海多玩信息技术有限公司 数据处理方法、装置及系统
CN106161623A (zh) * 2016-07-05 2016-11-23 上海帝联信息科技股份有限公司 缓存服务器、更新服务器及数据更新方法
CN107341212A (zh) * 2017-06-26 2017-11-10 努比亚技术有限公司 一种缓存更新方法及设备
CN108399256A (zh) * 2018-03-06 2018-08-14 北京慧萌信安软件技术有限公司 异构数据库内容同步方法、装置及中间件

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929472A (zh) * 2014-03-21 2014-07-16 珠海多玩信息技术有限公司 数据处理方法、装置及系统
CN106161623A (zh) * 2016-07-05 2016-11-23 上海帝联信息科技股份有限公司 缓存服务器、更新服务器及数据更新方法
CN107341212A (zh) * 2017-06-26 2017-11-10 努比亚技术有限公司 一种缓存更新方法及设备
CN108399256A (zh) * 2018-03-06 2018-08-14 北京慧萌信安软件技术有限公司 异构数据库内容同步方法、装置及中间件

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112402968A (zh) * 2019-08-23 2021-02-26 腾讯科技(深圳)有限公司 虚拟道具对象的使用时长的调整方法、装置及存储介质
CN112402968B (zh) * 2019-08-23 2024-06-11 腾讯科技(深圳)有限公司 虚拟道具对象的使用时长的调整方法、装置及存储介质
CN112419018A (zh) * 2020-01-03 2021-02-26 上海哔哩哔哩科技有限公司 分布式环境下的通用数据对账方法、服务器及存储介质
CN112419018B (zh) * 2020-01-03 2022-11-18 上海哔哩哔哩科技有限公司 分布式环境下的通用数据对账方法、服务器及存储介质
CN111324620A (zh) * 2020-02-18 2020-06-23 中国联合网络通信集团有限公司 数据处理方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US10956601B2 (en) Fully managed account level blob data encryption in a distributed storage environment
US11314779B1 (en) Managing timestamps in a sequential update stream recording changes to a database partition
US10275489B1 (en) Binary encoding-based optimizations at datastore accelerators
CN107562775A (zh) 一种基于区块链的数据处理方法及设备
CN109597817A (zh) 一种缓存数据处理方法、装置、设备及介质
US20160196295A1 (en) Rendezvous-based optimistic concurrency control
CN108959341A (zh) 一种数据同步的方法、装置及设备
CN110989939A (zh) 一种数据缓存处理方法、装置、设备及缓存组件
CN104519103B (zh) 网络数据的同步处理方法、服务器及相关系统
CN109344348A (zh) 一种资源更新方法及装置
CN106201673B (zh) 一种地震数据处理方法及装置
CN105868216B (zh) 一种实现对象过期操作的方法、装置和设备
CN110019062A (zh) 数据同步方法和系统
CN109408689A (zh) 数据获取方法、装置、系统及电子设备
CN109033124A (zh) 一种数据迁移的方法及装置
CN105704218A (zh) 云计算平台中数据存储与管理方法
CN104423982A (zh) 请求的处理方法和处理设备
CN110032543A (zh) 一种存储文件系统的管理方法
CN109086462A (zh) 一种分布式文件系统中元数据的管理方法
CN109062918A (zh) 一种sql语句转换的方法及装置
US10146833B1 (en) Write-back techniques at datastore accelerators
CN109299059A (zh) 文件存储、检索方法、装置、存储介质及服务器
CN109739814A (zh) 一种文件存储及下载方法、装置及设备
CN108897822A (zh) 一种数据更新方法、装置、设备及可读存储介质
CN109983452A (zh) 用于连续可用的网络文件系统(nfs)状态数据的系统和方法

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
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20190409

RJ01 Rejection of invention patent application after publication