首页> 中国专利> 长数据链路的缓存刷新方法、装置、设备及存储介质

长数据链路的缓存刷新方法、装置、设备及存储介质

摘要

本申请涉及缓存处理技术,揭露了长数据链路的缓存刷新方法、装置、设备及存储介质,包括从数据库中获取键值算法公式;基于所述算法公式的嵌套层次,将所述算法公式拆分为多个计算子步骤,根据所述计算子步骤,得到对应的参数,并将所述参数存储至数据库和缓存中;通过预设的拦截器监听所述数据库中所述参数变化情况;当所述拦截器监听到所述参数发生变化时,根据所述数据库中变化后的所述参数,刷新所述缓存中的参数。本申请还涉及区块链技术,键值算法公式、计算子步骤及其对应的参数数据存储于区块链中。本申请提高了缓存空间的利用率,使占用的缓存空间得到精简压缩,并且本方案的可扩展性好。

著录项

  • 公开/公告号CN113157717A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利号CN202110575114.9

  • 发明设计人 肖琦;

    申请日2021-05-26

  • 分类号G06F16/23(20190101);G06F16/28(20190101);G06F16/2455(20190101);G06F16/215(20190101);

  • 代理机构44385 深圳市世联合知识产权代理有限公司;

  • 代理人汪琳琳

  • 地址 518000 广东省深圳市福田区沙头街道天安社区车公庙泰然七路1号博今商务广场B座二十一层整层

  • 入库时间 2023-06-19 11:57:35

说明书

技术领域

本申请涉及缓存处理技术领域,尤其涉及长数据链路的缓存刷新方法、装置、设备及存储介质。

背景技术

目前,各类在线交易平台、售票系统、游戏服务器等,所需承载的访问压力越来越大,每时每刻的并发量已成为天文数字,比如,商品展示系统每秒需要接受海量的查询价格访问。且各个商品对应了不同的价格。为了应对高并发访问的压力,通常需要将海量数据加载到缓存中。现有技术中常用Redis缓存组件,其提供基于KEY-VALUE模式的缓存,将经常被触发的参数作为KEY,将KEY计算后对应的结构作为VALUE,存入Redis,当用户下次命中同样的KEY时,直接从缓存中调用对应的VALUE,但当入参KEY的取值范围过大时,对应的VALUE也较大,使得缓存占用过多,且当KEY到VALUE的计算方式较为复杂时,若计算方式中的变量改变时,对应的KEY-VALUE的映射也将失效。因此,如何在KEY的取值范围较大时,占用缓存空间也能保持较小,且面对变量改变时KEY-VALUE的映射关系也能保持相对稳定,以及如何使缓存中的数据刷新及时成为了亟待解决的问题。

发明内容

本申请提供了长数据链路的缓存刷新方法、装置、设备及存储介质,以解决现有技术中基于键值模式的缓存,占用存储空间过大,且缓存中的数据刷新不及时的问题。

为解决上述问题,本申请提供了长数据链路的缓存刷新方法,包括:

从数据库中获取键值算法公式;

基于所述算法公式的嵌套层次,将所述算法公式拆分为多个计算子步骤,根据所述计算子步骤,得到对应的参数,并将所述参数存储至数据库和缓存中;

通过预设的拦截器监听所述数据库中所述参数变化情况;

当所述拦截器监听到所述参数发生变化时,根据所述数据库中变化后的所述参数,刷新所述缓存中的参数。

进一步的,在所述获取键值算法公式之前,还包括:

向数据库发送调用请求,所述调用请求携带验签令牌;

接收所述数据库返回的验签结果,并在验签结果为通过时,调用所述数据库中的所述键值算法公式;

其中,所述验签的方式为RSA非对称加密方式。

进一步的,在所述根据所述计算子步骤,得到对应的参数,并将所述参数存储至数据库和缓存中之后,还包括:

接收用户输入的数据;

基于所述计算子步骤对应的参数对所述数据进行分步推算,得到最终结果值并返回给用户。

进一步的,所述基于所述计算子步骤对应的参数对所述数据进行分步推算包括:

在每一步得到所述计算子步骤对应的结果后,对所述结果进行去重,将所述去重后的结果再输入下一步所述计算子步骤进行计算。

进一步的,在所述拦截器监听到所述参数发生变化之前,还包括:

接收用户操作;

根据所述用户操作,启动事务修改所述数据库中对应的数据。

进一步的,所述根据所述数据库中变化后的所述参数,刷新所述缓存中的参数包括:

根据所述变化后的参数,发送变化消息至消息队列,以使所述消息队列的消费端,接收所述变化消息,以刷新缓存中对应的参数。

进一步的,在所述根据所述用户操作,启动事务修改所述数据库中对应的数据之后,还包括:

将所述修改后的数据以及修改成功的信息,发送给用户。

为了解决上述问题,本申请还提供长数据链路的缓存刷新装置,所述装置包括:

获取模块,用于从数据库中获取键值算法公式;

拆分模块,用于基于所述算法公式的嵌套层次,将所述算法公式拆分为多个计算子步骤,根据所述计算子步骤,得到对应的参数,并将所述参数存储至数据库和缓存中;

监听模块,用于通过预设的拦截器监听所述数据库中所述参数变化情况;

刷新模块,用于当所述拦截器监听到所述参数发生变化时,根据所述数据库中变化后的所述参数,刷新所述缓存中的参数。

为了解决上述问题,本申请还提供一种计算机设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述所述的长数据链路的缓存刷新方法。

为了解决上述问题,本申请还提供一种非易失性的计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述所述的长数据链路的缓存刷新方法。

根据本申请实施例提供的长数据链路的缓存刷新方法、装置、设备及存储介质,与现有技术相比至少具有以下有益效果:

基于所述算法公式的嵌套层次,将键值的整体算法公式进行拆分,得到多个计算子步骤,根据计算子步骤,得到对应的参数,将所述参数保存至数据库和缓存中,此保存方法相较于键值的存储方式,占用的缓存空间得到精简压缩,且利用拆分后的计算子步骤及其对应的参数,对结果值进行分步推算,使得本方案可扩展性好,在计算逻辑有所变化时,只需修改对应的计算子步骤,即可得到对应的缓存列表;并且通过设置拦截器监听所述数据库中的所述参数有无变化,若有变化时,刷新所述缓存中的所述参数,以与数据库中的参数同步,通过拦截器监听数据变化,实现及时且自动刷新缓存。

附图说明

为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图做一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一实施例提供的长数据链路的缓存刷新方法的流程示意图;

图2为本申请一实施例提供的长数据链路的缓存刷新装置的模块示意图;

图3为本申请一实施例的计算机设备的结构示意图。

具体实施方式

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是是相同的实施例,也不是与其它实施例相互排斥的独立的或备选的实施例。本领域技术人员显式地或隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请提供一种长数据链路的缓存刷新方法。参照图1所示,为本申请一实施例提供的长数据链路的缓存刷新方法的流程示意图。

在本实施例中,长数据链路的缓存刷新方法包括:

S1、从数据库中获取键值算法公式;

本申请从数据库中获取KEY到VALUE的算法公式,即键值的整体算法公式,并接收输入参数。例如从数据库中获取到KEY到VALUE的整体算法公式,从KEY到VALUE的计算,是经由M个步骤中的N个隐含变量依次计算得到,即VALUE=n(m(k(h(g(f(KEY,X),Y),Z),U),V),W)整个算法公式,其中f、g、h、k、m、n为函数,X、Y、Z、U、V、W为隐变量。以及接收输入参数,所述输入参数为用户在前端操作得到的。

进一步的,在所述获取键值算法公式之前,还包括:

向数据库发送调用请求,所述调用请求携带验签令牌;

接收所述数据库返回的验签结果,并在验签结果为通过时,调用所述数据库中的所述键值算法公式;

其中,所述验签的方式为RSA非对称加密方式。

具体的,所述数据库中存储了键值算法公式,并且对键值算法公式进行了加密保存,所以在获取键值算法公式时,就需要进行验签的步骤;并且所述数据库中存储有业务系统实时获取到的票据图像。

通过验签的方式保证了键值算法公式数据安全。

S2、基于所述算法公式的嵌套层次,将所述算法公式拆分为多个计算子步骤,根据所述计算子步骤,得到对应的参数,并将所述参数存储至数据库和缓存中;

具体的,通过将KEY到VALUE的整体算法公式进行拆解,例如将VALUE=n(m(k(h(g(f(KEY,X),Y),Z),U),V),W)拆解成KEY->list(X);X->f(X);Y->g(Y);Z->h(Z);U->k(U);V->m(V);W->n(W),基于计算子步骤得到对应的参数,例如最简单的Y=aX+b,就获取上述公式中的a,b这两个参数,并保存至数据库和缓存中。

根据算法公式的自然结构,确保每个子步骤可用函数v=f(u)映射关系准确表达,即只要算法公式不是简单的v=f(u)函数,都需进行拆分。根据拆分后计算子模板的拆分顺序,依次保存计算子模板对应的参数或参数表,并形成一集合。

基于所述算法公式计算步骤的嵌套层次对所述算法公式进行拆分。

具体的,基于所述计算步骤的嵌套层次进行拆分,使得拆分后的各计算子步骤,计算方式较为简单,并且拆分后的计算子步骤按顺序依次排列;基于计算步骤的嵌套层次进行拆分,得到的计算子步骤会更自然,也即每个计算子步骤都相对独立,各计算子步骤没有与上下游的计算子步骤强关联。

即对VALUE=n(m(k(h(g(f(KEY,X),Y),Z),U),V),W)按照嵌套层次进行拆分,即可得到KEY->list(X);X->f(X);Y->g(Y);Z->h(Z);U->k(U);V->m(V);W->n(W);

在本申请一实施例中,对权限系统(一个用户—>多个部门范围)进行拆分得到:

一个用户—>多个角色;

一个角色—>多个功能点;

一个功能点—>多个菜单;

一个菜单—>多个页面;

一个页面—>多个服务;

一个服务—>多个部门范围;

通过将算法公式的计算步骤进行拆分,从而能快速计算某个用户能最终有权限查看的菜单、页面、服务以及部门范围;

并且还能快速计算某个用户+某个服务下,可查看特定的部门范围。

基于算法公式计算步骤的嵌套层次对算法公式进行拆分,得到的计算步骤会更自然,且每个计算子步骤都相对独立。

进一步的,在所述根据所述计算子步骤,得到对应的参数,并将所述参数存储至数据库和缓存中之后,还包括:

接收用户输入的数据;

基于所述计算子步骤对应的参数对所述数据进行分步推算,得到最终结果值并返回给用户。

具体的,对于输入参数K,先求得关联变量list(X),list(X)为结果集合组成的列表,再将X代入f(X)中得到list(Y),以此类推,得到最终的结果list(W)。

在得到拆分后的多个计算子步骤后,将所述计算子步骤进行依次排列,得到所述多个计算子步骤中的第一计算子步骤,以及第一计算子步骤对应的参数,基于所述输入参数,得到第一结果,即list(X),结果X的列表;随后将X输入第二计算子步骤中,如上述的f(X),得到list(Y),结果Y的列表,以此类推,将倒数第二次计算的结果,即第n-1结果输入最后一个计算子步骤中,即第N计算子步骤,得到最终结果list(W),即VALUE,上述通过依次分步计算得到最终的结果值VALUE。

通过分步计算,在大量输入参数输入时,可快速计算得到最终结果值,避免了大量入参KEY及其对应的VALUE存储在缓存中,占用大量的空间,且分步计算占用的算力和存储空间较少。

在接收用户输入的数据后,根据用户输入数据时的当前运行环境,获取对应的算法公式及其参数,利用所述算法公式对应的参数对所述数据进行分步推算,得到最终结果值并返回给用户。

采用分步推算的方式使得本方案的可扩展性好,当计算逻辑有所变化,即计算子步骤发生改变时,只需修改对应的计算子步骤,再采用分步推算,即可得到对应的结果。基于输入数据,并结合算法公式对应的参数,进行分步推算,实现占用少量存储和CPU算力的情况下,快速的输入结果值。

在本申请的其他实施例中,如上述的权限系统,通过分步推算能快速计算某个用户在某个服务下特定部门的范围。

再进一步的,所述基于所述计算子步骤对应的参数对所述数据进行分步推算包括:

在每一步得到所述计算子步骤对应的结果后,对所述结果进行去重,将所述去重后的结果再输入下一步所述计算子步骤进行计算。

具体的,在得到所述计算子步骤对应的结果后,进行去重,将所述去重后的结果再输入下一计算子步骤进行计算,即在每一次计算后都需要进行去重,以精简数据,并将去重后的结果作为下一计算步骤的入参。

对所述结果进行去重,主要适用在同时有多个入参的情况下,所有入参会同步计算,所以在进行每一步计算后,会对子结果进行一个去重的操作,在所有计算子步骤计算完毕后,得到入参所对应的最终结果。

对各计算子步骤计算后得到的计算结果进行去重,即删除重复的数据,以避免数据冗余,保证了数据的精简。

S3、通过预设的拦截器监听所述数据库中所述参数变化情况;

通过设置拦截器监听所述数据库中参数的变化情况,以实现在用户对参数进行变更时,也能及时知晓,不会产生人为忘记通知缓存导致的BUG。

进一步的,所述通过预设的拦截器监听所述数据库中所述参数变化情况包括:

通过设置Mybatis拦截器监听所述数据库中所述参数变化情况和所述计算子步骤的变化情况。

Mybatis拦截器为供用户在某些时候可以实现自己的逻辑而不必去懂Mybatis固有的逻辑。Mybatis拦截器只能拦截Executor、ParameterHandler、StatementHandler、ResultSetHandler四个对象里面的方法。Executor为MyBatis执行器,是MyBatis调度的核心,负责SQL语句的生成和查询缓存的维护;ParameterHandler负责对用户传递的参数转换成JDBC Statement所需要的参数;StatementHandler封装了JDBC Statement操作,负责对JDBC statement的操作,如设置参数、将Statement结果集转换成List集合;ResultSetHandler负责将JDBC返回的ResultSet结果集对象转换成List类型的集合。

通过采用Mybatis拦截器监听数据库中数据的变化,以便于后续实现对缓存的刷新。

S4、当所述拦截器监听到所述参数发生变化时,根据所述数据库中变化后的所述参数,刷新所述缓存中的参数。

具体的,由于数据库中保存有与缓存中一一对应的参数,所以当数据库中的参数发生变化时,相应的刷新缓存中的参数。

进一步的,在所述拦截器监听到所述参数发生变化之前,还包括:

接收用户操作;

根据所述用户操作,启动事务修改所述数据库中对应的数据。

具体的,在本实施例中,在对当前的KEY到VALUE这种端到端的存储方式,转变为多个计算子步骤对应的参数进行缓存的方式后,用户会进行某些操作导致数据库变化,例如对参数中的某些数据进行增添、删除或修改等,亦或是对某一计算子步骤进行修改。根据所述用户操作,启动事务修改数据库中对应的数据。

接收用户的修改,并对应的将数据库中对应的数据进行修改,以便于后续对缓存中的数据进行自动刷新。

再进一步的,所述根据所述数据库中变化后的所述参数,刷新所述缓存中的参数包括:

根据所述变化后的参数,发送变化消息至消息队列,以使所述消息队列的消费端,接收所述变化消息,以刷新缓存中对应的参数。

具体的,将变化消息发送至消息队列,采用消息队列后实现数据库与缓存之间解耦,缓存直接获取消息队列中的消息,即可更新缓存中对应的参数。

通过采用消息队列,实现数据库和缓存之间的解耦。

再进一步的,在所述根据所述用户操作,启动事务修改所述数据库中对应的数据之后,还包括:

将所述修改后的数据以及修改成功的信息,发送给用户。

具体的,通过将所述修改后的数据以及修改成功的信息发送给用户,以提示用户修改完成。

本申请先通过将数据库中预存的全部键值算法公式(不同运行环境下对应不同的键值算法公式),根据算法公式其自身的嵌套层次进行拆分,得到对应的多个计算子步骤,并进一步得到计算子步骤对应的参数,将参数存储至数据库和缓存中。在本申请中对多个所述键值算法公式进行依次拆分处理。在本申请的其他实施例中,对所述键值算法公式同时进行拆分处理。所述不同运行环境,比如在不同页面用户输入数据,将采用不同的键值算法公式来匹配。

当接收到用户输入的数据时,识别当前用户输入数据时的运行环境,获取与当前运行环境对应的键值算法公式以及参数,利用所述参数和输入数据进行计算,得到最终结果值并输出。

需要强调的是,为了进一步保证数据的私密性和安全性,所述键值算法公式和拆分后的计算子步骤的所有数据还可以存储于一区块链的节点中。

本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

基于所述算法公式的嵌套层次,将键值的整体算法公式进行拆分,得到多个计算子步骤,根据计算子步骤,得到对应的参数,将所述参数保存至数据库和缓存中,此保存方法相较于键值的存储方式,占用的缓存空间得到精简压缩,且利用拆分后的计算子步骤及其对应的参数,对结果值进行分步推算,使得本方案可扩展性好,在计算逻辑有所变化时,只需修改对应的计算子步骤,即可得到对应的缓存列表;并且通过设置拦截器监听所述数据库中的所述参数有无变化,若有变化时,刷新所述缓存中的所述参数,以与数据库中的参数同步,通过拦截器监听数据变化,实现及时且自动刷新缓存。

如图2所示,是本申请长数据链路的缓存刷新装置的功能模块图。

本申请所述长数据链路的缓存刷新装置100可以安装于电子设备中。根据实现的功能,所述长数据链路的缓存刷新装置100可以包括获取模块101、拆分模块102、监听模块103和刷新模块104。本申请所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

获取模块101,用于从数据库中获取键值算法公式;

具体的,所述获取模块101从数据库中获取获取KEY到VALUE的算法公式,即键值的整体算法公式,并接收输入参数,所述输入参数为用户在前端操作得到的;

进一步的,所述长数据链路的缓存装置100还包括发送请求模块和调用模块;

所述发送请求模块用于向数据库发送调用请求,所述调用请求携带验签令牌;

所述调用模块接收所述数据库返回的验签结果,并在验签结果为通过时,调用所述数据库中的所述键值算法公式;

其中,所述验签的方式为RSA非对称加密方式。

通过发送请求模块和调用模块的配合,保证了键值算法公式数据安全。

拆分模块102,用于基于所述算法公式的嵌套层次,将所述算法公式拆分为多个计算子步骤,根据所述计算子步骤,得到对应的参数,并将所述参数存储至数据库和缓存中;

具体的,拆分模块102通过将KEY到VALUE的算法公式进行拆解,得到计算子步骤,基于计算子步骤得到对应的参数。例如简单的Y=aX+b,就获取上述公式中的a,b这两个参数,并保存至数据库和缓存中。

拆分模块102根据算法公式的自然结构,确保每个计算子步骤可用函数v=f(u)映射关系准确表达,即只要算法公式不是简单的v=f(u)函数,都需进行拆分。根据拆分后计算子模板的拆分顺序,依次保存计算子模板对应的参数或参数表,并形成一集合。

具体的,所述拆分模块基于所述计算步骤的嵌套层次进行拆分,使得拆分后的各计算子步骤,计算方式较为简单,并且拆分后的计算子步骤按顺序依次排列;基于计算步骤的嵌套层次进行拆分,得到的计算子步骤会更自然,也即每个计算子步骤都相对独立,各计算子步骤没有与上下游的计算子步骤强关联。

所述拆分模块基于算法公式计算步骤的嵌套层次对算法公式进行拆分,得到的计算步骤会更自然,且每个计算子步骤都相对独立。

进一步的,长数据链路的缓存刷新装置100还包括接收模块和分步推算模块;

所述接收模块,用于接收用户输入的数据;

所述分步推算模块,用于基于所述计算子步骤对应的参数对所述数据进行分步推算,得到最终结果值并返回给用户。

具体的,所述分步推算模块,在得到拆分后的多个计算子步骤后,将所述计算子步骤进行依次排列,得到所述多个计算子步骤中的第一计算子步骤,以及第一计算子步骤对应的参数,基于所述输入参数,得到第一结果,即list(X),结果X的列表;随后将X输入第二计算子步骤中,如上述的f(X),得到list(Y),结果Y的列表,以此类推,将倒数第二次计算的结果,即第n-1结果输入最后一个计算子步骤中,即第N计算子步骤,得到最终结果list(W),即VALUE,上述通过依次分步计算得到最终的结果值VALUE。

通过接收模块和分步推算模块的配合,采用分步推算的方式使得本方案的可扩展性好,当计算逻辑有所变化,即计算子步骤发生改变时,只需修改对应的计算子步骤,再采用分步推算,即可得到对应的结果。

在本申请的其他实施例中,如上述的权限系统,通过分步推算模块能快速计算某个用户在某个服务下特定的部门的范围。

再进一步的,所述分步推算模块包括去重子模块;

所述去重子模块,用于在每一步得到所述计算子步骤对应的结果后,对所述结果进行去重,将所述去重后的结果再输入下一步所述计算子步骤进行计算。

具体的,去重子模块在得到所述计算子步骤对应的结果后,进行去重,将所述去重后的结果再输入下一计算子步骤进行计算,即在每一次计算后都需要进行去重,以精简数据,并将去重后的结果作为下一计算步骤的入参。

去重子模块对所述结果进行去重,主要适用在同时有多个入参的情况下,所有入参会同步计算,所以在进行每一步计算后,会对子结果进行一个去重的操作,在所有计算子步骤计算完毕后,得到入参所对应的最终结果。

所述去重子模块,对经各计算子步骤的计算后,得到的计算结果进行去重,即删除重复的数据,以避免数据冗余,保证了数据的精简。

监听模块103,用于通过预设的拦截器监听所述数据库中所述参数变化情况;

监听模块103通过设置拦截器监听所述数据库中参数的变化情况,以实现在用户对参数进行变更时,也能及时知晓,不会产生让人为忘记通知缓存导致的BUG。

进一步的,所述监听模块103包括Mybatis拦截子模块;

Mybatis拦截子模块,用于通过设置Mybatis拦截器监听所述数据库中所述参数变化情况和所述计算子步骤的变化情况。

Mybatis拦截子模块通过采用Mybatis拦截器监听数据库中数据的变化,以便于后续实现对缓存的刷新。

刷新模块104,用于当所述拦截器监听到所述参数发生变化时,根据所述数据库中变化后的所述参数,刷新所述缓存中的参数。

具体的,由于数据库中保存有与缓存中一一对应的参数,所以刷新模块104当数据库中的参数发生变化时,相应的刷新缓存中的参数。

进一步的,长数据链路的缓存刷新装置100还包括操作接收模块和修改模块;

所述操作接收模块,用于接收用户操作;

所述修改模块,用于根据所述用户操作,启动事务修改所述数据库中对应的数据。

通过操作接收模块和修改模块,通过接收用户的修改,并对应的将数据库中对应的数据进行修改,以便于后续对缓存中的数据进行自动刷新。

再进一步的,刷新模块104包括消息队列子模块;

所述消息队列子模块,用于根据所述变化后的参数,发送变化消息至消息队列,以使所述消息队列的消费端,接收所述变化消息,以刷新缓存中对应的参数。

具体的,所述消息队列子模块将变化消息发送至消息队列,采用消息队列后实现数据库与缓存之间解耦,缓存直接获取消息队列中的消息,即可更新缓存中对应的参数。

通过消息队列子模块采用消息队列,实现数据库和缓存之间的解耦。

再进一步的,长数据链路的缓存刷新装置100还包括发送模块;

发送模块,用于将所述修改后的数据以及修改成功的信息,发送给用户。

具体的,发送模块通过将所述修改后的数据以及修改成功的信息发送给用户,以提示用户修改完成。

通过采用上述装置,所述长数据链路的缓存刷新装置100通过获取模块101、拆分模块102、监听模块103、刷新模块104的配合使用,通过键值算法公式拆分得到计算子步骤后,并存储计算子步骤对应的参数,使得占用的缓存空间得到精简压缩,通过拦截器监听数据变化,实现及时且自动刷新缓存。

为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图3,图3为本实施例计算机设备基本结构框图。

所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如长数据链路的缓存刷新方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述长数据链路的缓存刷新方法的计算机可读指令。

所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。

本实施例通过处理器执行存储在存储器的计算机可读指令时实现如上述实施例长数据链路的缓存刷新方法的步骤,基于所述算法公式的嵌套层次,将键值的整体算法公式进行拆分,得到多个计算子步骤,根据计算子步骤,得到对应的参数,将所述参数保存至数据库和缓存中,此保存方法相较于键值的存储方式,占用的缓存空间得到精简压缩,且利用拆分后的计算子步骤及其对应的参数,对结果值进行分步推算,使得本方案可扩展性好,在计算逻辑有所变化时,只需修改对应的计算子步骤,即可得到对应的缓存列表;并且通过设置拦截器监听所述数据库中的所述参数有无变化,若有变化时,刷新所述缓存中的所述参数,以与数据库中的参数同步,通过拦截器监听数据变化,实现及时且自动刷新缓存。

本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的长数据链路的缓存刷新方法的步骤,基于所述算法公式的嵌套层次,将键值的整体算法公式进行拆分,得到多个计算子步骤,根据计算子步骤,得到对应的参数,将所述参数保存至数据库和缓存中,此保存方法相较于键值的存储方式,占用的缓存空间得到精简压缩,且利用拆分后的计算子步骤及其对应的参数,对结果值进行分步推算,使得本方案可扩展性好,在计算逻辑有所变化时,只需修改对应的计算子步骤,即可得到对应的缓存列表;并且通过设置拦截器监听所述数据库中的所述参数有无变化,若有变化时,刷新所述缓存中的所述参数,以与数据库中的参数同步,通过拦截器监听数据变化,实现及时且自动刷新缓存。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号