CN115470224A - 缓存更新方法、装置、设备、系统、存储介质及产品 - Google Patents
缓存更新方法、装置、设备、系统、存储介质及产品 Download PDFInfo
- Publication number
- CN115470224A CN115470224A CN202211093942.XA CN202211093942A CN115470224A CN 115470224 A CN115470224 A CN 115470224A CN 202211093942 A CN202211093942 A CN 202211093942A CN 115470224 A CN115470224 A CN 115470224A
- Authority
- CN
- China
- Prior art keywords
- key
- key value
- client
- cache
- updating
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了缓存更新方法、装置、设备、系统、存储介质及产品,涉及分布式技术领域。该方法包括:接收键值更新请求,其中,键值更新请求中包含待更新键名,根据待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,其中,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一,基于目标客户端注册标识,向对应的目标客户端发送键值更新指令,键值更新指令用于指示目标客户端从键值存储系统获取待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。本发明技术方案,可以保证分布式应用系统中客户端本地缓存更新的时效,避免代码侵入,有效保证业务连续性与安全性。
Description
技术领域
本发明实施例涉及分布式技术领域,尤其涉及一种缓存更新方法、装置、设备、系统、存储介质及产品。
背景技术
目前,为了进一步提高分布式应用系统并发度,往往通过本地缓存来提升系统服务能力。
现有的技术中,本地缓存更新可以通过定时同步和消息同步两种方式来进行。其中,定时同步方案,即本地缓存数据的更新是客户端循环在指定的时间阈值定期拉取更新数据,然而,该方案存在更新时延;消息同步方案,即应用本地缓存的更新通过消息订阅来进行,该方案依赖于消息中间件,有代码侵入,需要进行二次开发,且存在大量的消息主题需要维护,维护成本高。
发明内容
本发明实施例提供一种缓存更新方法、装置、设备、系统及存储介质,用以实现缓存更新业务的连续性与安全性。
第一方面,本发明实施例提供了一种缓存更新方法,应用于分布式应用系统中的服务端,包括:
接收键值更新请求,其中,键值更新请求中包含待更新键名;
根据待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,其中,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一;
基于目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,键值更新指令中包含待更新键名,键值更新指令用于指示目标客户端从键值存储系统获取待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
第二方面,本发明实施例还提供了一种缓存更新方法,应用于分布式应用系统中的服务端,包括:
接收服务端发送的键值更新指令,其中,键值更新指令由服务端在接收包含待更新键名的键值更新请求后,基于根据待更新键名查询预设绑定关系得到的对应的目标客户端注册标识向客户端发送,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一,键值更新指令中包含待更新键名;
根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值;
基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
第三方面,本发明实施例还提供了一种缓存更新装置,配置于服务端,该装置包括:
更新请求控制模块,用于接收键值更新请求,其中,键值更新请求中包含待更新键名;
注册标识获取模块,用于根据待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,其中,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一;
更新指令发送模块,用于基于目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,键值更新指令中包含待更新键名,键值更新指令用于指示目标客户端从键值存储系统获取待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
第四方面,本发明实施例还提供了一种缓存更新装置,配置于客户端,该装置包括:
更新指令接收模块,用于接收服务端发送的键值更新指令,其中,键值更新指令由服务端在接收包含待更新键名的键值更新请求后,基于根据待更新键名查询预设绑定关系得到的对应的目标客户端注册标识向客户端发送,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一,键值更新指令中包含待更新键名;
目标键值获取模块,用于根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值;
缓存键值更新模块,用于基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
第五方面,本发明实施例还提供了一种电子设备,被配置为分布式应用系统中的客户端或服务端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如本发明实施例中任一的缓存更新方法。
第六方面,本发明实施例还提供了一种分布式应用系统,包括服务端、多个客户端、数据更新管理端和键值存储系统,其中:
键值存储系统,用于持久化存储分布式应用系统中的各键名对应的键值;
数据更新管理端,用于在键值存储系统中更新待更新键名对应的键值,并向服务端发送键值更新请求,其中,键值更新请求中包含待更新键名;
服务端,用于接收数据更新管理端发送的键值更新请求,根据待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,基于目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一,键值更新指令中包含待更新键名;
客户端,用于接收服务端发送的键值更新指令,根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值,基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
第七方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一的缓存更新方法。
第八方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如本发明实施例中任一的缓存更新方法。
本发明实施例中,通过服务端接收键值更新请求,并根据键值更新请求中的待更新键名查询预设绑定关系,得到对应的全局唯一的目标客户端注册标识,基于目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,键值更新指令中包含待更新键名,客户端接收服务端发送的键值更新指令并根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值,基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新,完成客户端的本地缓存更新,实现了本地缓存实时、无侵入式更新,有效保证业务连续性与安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种缓存更新方法的流程图;
图2为本发明实施例提供的另一种缓存更新方法的流程图;
图3为本发明实施例提供的又一种缓存更新方法的流程图;
图4为本发明实施例提供的再一种缓存更新方法的流程图;
图5为本发明实施例提供的一种缓存更新方法的信令交互示意图;
图6为本发明实施例提供的另一种缓存更新方法的信令交互示意图;
图7为本发明实施例提供的一种缓存更新装置的结构示意图;
图8为本发明实施例提供的又一种缓存更新装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图;
图10为本发明实施例所提供的一种分布式应用系统的结构示意图;
图11为本发明实施例所提供的一种分布式应用系统的工作过程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
图1为本发明实施例提供的一种缓存更新方法流程图,本发明实施例适用于分布式应用系统中的服务端指示客户端进行本地缓存更新的情形,该方法可以由缓存更新装置来执行,该装置可以通过软件和/或硬件的形式实现,可配置于分布式应用系统中的服务端,可选的,通过缓存更新设备等电子设备来实现,该缓存更新设备可以是手机或平板电脑等移动终端,也可以为个人计算机(Personal Computer,PC)端或服务器等设备。
如图1所示,所述方法包括:
步骤101、接收键值更新请求,其中,键值更新请求中包含待更新键名。
示例性的,在分布式应用系统中,数据可以以键值对(Key-Value)形式进行存储,如用户名称和具体的用户名称内容。键名(Key)可以理解为一种数据名称,如上述“用户名称”,键值(Value)可以理解为数据内容,也即需要更新的是数据内容,如“用户XX”。
所述服务端接受键值更新请求,所述更新请求可以为第三方应用请求,为第三方组件(可理解为第三方应用或第三方服务端)发起,上述第三方组件可以记为数据更新管理端或缓存管理应用,例如可以基于JRPC实现,提供一种第三方应用来管理全局本地应用本地缓存。其中,JRPC为基于Java的远程过程调用(Remote Procedure Call,RPC)框架。服务端接收第三方更新请求后,启动缓存更新流程。
示例性的,数据更新管理端可以在键值存储系统中更新待更新键名对应的键值,并向服务端发送键值更新请求,键值更新请求中包含在键值存储系统中进行了键值更新的键名,也即待更新键名,用于指示服务端通知相应的客户端进行键值更新,待更新键名可以是一个或多个,具体不做限定,若为多个,则可以实现批量更新。其中,键值存储系统持久化存储所述分布式应用系统中的各键名对应的键值,可以包括数据源,还可以包括数据源和二级缓存组件,具体不做限定。
步骤102、根据待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,其中,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一。
示例性的,客户端可以预先在服务端中进行注册,注册完成的客户端具有全局唯一的客户端注册标识。注册过程中,服务端可以记录当前注册的客户端的本地缓存中需要进行存储的键值对,并将键值对中的键名与客户端注册标识进行绑定,得到上述预设绑定关系。其中,由于分布式应用系统中包含多个客户端,同一键名对应的键值可能需要存储在一个或多个客户端中,键名与客户端注册标识可以是一对一关联或一对多关联,也即,一个键名可能对应一个或多个客户端注册标识。
示例性的,服务器端接收键值更新请求后,通过键值更新请求中的待更新键名查询预设绑定关系,找到待更新键名对应的客户端注册标识,将查找到的客户端注册标识记为目标客户端注册标识。对于一个待更新键名来说,可能查找到一个或多个目标客户端注册标识,具体可以记为目标客户端注册标识列表;对于多个待更新键名,每个待更新键名分别对应一个目标客户端注册标识列表。
步骤103、基于目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,键值更新指令中包含待更新键名,键值更新指令用于指示目标客户端从键值存储系统获取待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
示例性的,向客户端发送键值更新指令,即服务器接收到更新请求,触发更新操作,进一步向相应的注册客户端下发更新指令的过程。具体的,每个目标客户端注册标识对应一个目标客户端,通过向目标客户端发送键值更新指令来指示目标客户端从键值存储系统获取待更新键名对应的当前最新的键值(记为目标键值),并进行本地缓存的更新,所述更新为将本地中的待更新键名中的原键值更新为获取到的新的目标键值。
本发明实施例提供的缓存更新方法,服务端接收包含待更新键名的键值更新请求,根据待更新键名查询客户端注册标识与键名之间的对应关系,得到对应的全局唯一的目标客户端注册标识,基于目标客户端注册标识,向对应的目标客户端发送键值更新指令,指示目标客户端从键值存储系统获取待更新键名对应的目标键值,对本地缓存中的待更新键名的原缓存键值进行更新。实现了缓存实时同步,避免延时更新,且无代码侵入,不需二次开发,有效保证业务连续性与安全性,满足分布式应用本地缓存更新的要求。
在一些实施例中,所述预设绑定关系的生成过程可包括,可以利用预设算法,根据客户端提供的数据信息,计算出客户端注册标识,并建立客户端注册标识与键名之间的对应关系。可选的,客户端提供的数据信息可以包括如客户端元数据信息和缓存键名列表等,这样设置的好处在于,将客户端的元数据信息通过对象方式进行表示,即单个客户端的元数据信息识别一个对象,可以提高元数据信息的存储及读取效率。预设算法例如可以是哈希算法。其中,客户端元数据信息可以包括客户端的相关属性信息,具体内容不做限定;缓存键名列表可包含客户端的本地缓存中存在的键名。
在一些实施例中,所述基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令,包括:根据所述目标客户端注册标识查询预设关联关系,得到对应的目标客户端元数据信息,其中,所述预设关联关系中包含客户端注册标识与客户端元数据信息的对应关系,所述客户端元数据信息中包含对应客户端的地址信息;基于所述目标客户端元数据信息,向对应的目标客户端发送键值更新指令。这样设置的好处在于,通过预设关联关系可以快速找到客户端的地址信息,以便按照该地址信息进行键值更新指令的发送。其中,该地址信息可以包括网际协议(Internet Protocol,IP)地址等信息。
图2为本发明实施例提供的另一种缓存更新方法的流程图,本公开实施例以上述实施例中各个可选方案为基础进行优化,增加了客户端注册过程的相关步骤。
示例性的,该方法还包括:接收客户端发送的注册信息,其中,所述注册信息中包括客户端元数据信息和缓存键名列表,所述缓存键名列表中包含客户端的本地缓存中存在的键名;基于所述注册信息,生成对应的客户端注册标识;将所生成的客户端注册标识,和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系。这样设置的好处在于,可以准确地维护预设绑定关系,进而保证键值更新指令的准确下发。
进一步的,所述将所生成的客户端注册标识,和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系,包括:对于所述缓存键名列表中的每个键名,查询所述预设绑定关系中是否存在与当前键名相同的键名,若存在,则将所生成的客户端注册标识与所查询到的键名绑定,以更新所述预设绑定关系;其中,在查询所述预设绑定关系中是否存在与当前键名相同的键名之后,还包括:若不存在,则向所述客户端返回注册错误信息。这样设置的好处在于,保证客户端注册过程的准确性,并在出现未找到所需注册键名时,及时通知客户端,保证分布式应用系统的可靠性。
示例性的,该方法可包括:
步骤201、接收客户端发送的注册信息。
其中,注册信息包括客户端元数据信息和缓存键名列表,所述缓存键名列表中包含客户端的本地缓存中存在的键名。
示例性的,客户端可以在应用启动后,向服务端发送注册信息进行注册。
客户端元数据信息可以包括主机名称、应用名称、地址信息(如IP地址)以及服务端口等。
其中,所述主机名称为分布式物理主机名称,用于服务端硬件设备识别。
所述应用名称,为本实施例中客户端的应用名称,在实际运行环境下,为应用的运行实例,在同一环境下存在多个相同运行实例,示例性的,可以是多个主机,每个主机上运行一个实例,每个实例对应一个客户端。
所述IP地址环境为客户端实际运行环境IPV4(Internet Protocol Version 4,互联网协议第四版)或IPV6(Internet Protocol Version 6,互联网协议第六版)地址,可选的,使用全局唯一标识UUID(Universally Unique Identifier,通用唯一识别码)进行代替。
所述服务端口为应用客户端对外提供服务的端口。
所述缓存键名列表也可称为缓存键值列表,可以理解为客户端缓存键值列表信息,所述缓存键名列表可通过客户端参数进行配置,具体可以由客户端自己配置,也可以由服务端下发,下发后一般不会保存,因此客户端注册时,还需要再向服务端发送。
优选的,通过服务端进行缓存键值列表下发,并动态的在客户端中保存,客户端可以根据实际需求进行调整。
步骤202、基于注册信息,生成对应的客户端注册标识。
服务端获得客户端注册信息后,通过哈希计算,生成对应的全局唯一的客户端注册标识。
步骤203、对于缓存键名列表中的每个键名,查询预设绑定关系中是否存在与当前键名相同的键名,若是,则执行步骤204;否则,执行步骤205。
示例性的,服务端可在预设绑定关系中维护数据源中存在的所有键名,初始的预设绑定关系中可以不存在客户端注册标识,在接收到首个注册信息后,生成首个客户端注册标识,将预设绑定关系中的与当前注册信息中的缓存键名列表中的键名确定为待绑定键名,将当前的客户端注册标识与该待绑定键名绑定,以实现更新预设绑定关系。对于后续接收的注册信息,采用类似方式进行预设绑定关系的更新,此处不再赘述。
具体的,对于缓存键名列表中的每个键名,可依次查询当前的预设绑定关系是否存在与当前键名相同的键名,若存在,说明客户端要求注册的键名是合理的,若不存在,说明客户端要求注册的键名并未存在于数据源中,是不合理的,需要向客户端返回注册错误信息,注册失败。
例如,预设绑定关系中包含a、b、c、d、e和f这6个键名,若当前生成的客户端注册标识为ID1,当前的缓存键名列表中包含a、b和c这3个键名,通过查询可知均存在于预设绑定关系中,则执行步骤204;若当前的缓存键名列表中包含a、b和g这3个键名,而g不存在于预设绑定关系中,则可执行步骤205,返回注册失败。
步骤204、将所生成的客户端注册标识与所查询到的键名绑定,以更新所述预设绑定关系。
继续上述举例,将a、b和c确定为待绑定键名,则将ID1分别跟a、b和c绑定。
例如,上述ID1为第一个生成的客户端注册标识,后续生成第二个客户端注册标识为ID2,对应的缓存键名列表中包含a、d和e这3个键名,则将ID2分别跟a、d和e绑定,这样,键名a对应有两个客户端注册标识,即ID1和ID2。
可选的,还可包括:建立所述注册信息中包括的客户端元数据信息,与所生成的客户端注册标识的对应关系,以对预设关联关系进行更新。这样设置的好处在于,在注册阶段将客户端注册标识和客户端元数据信息关联,便于服务端后续根据客户端注册标识快速查找到对应的客户端元数据信息。
可选的,在更新所述预设绑定关系之后,还可包括:向客户端返回注册成功信息,所述注册成功信息包含客户端注册标识,注册键名列表和所述注册键名列表中各键名的注册状态。一般情况下,若注册成功,注册键名列表中的键名与注册信息中的缓存键名列表中的键名一致。其中,注册成功信息可用于指示客户端将注册成功信息保存至本地全局变量中,并继续启动过程。客户端启动完成后,服务端可以收到客户端发送的心跳信息,若识别为首个心跳信息,则感知到客户端准备就绪,向客户端发送全量键值更新指令,全量键值更新指令用于指示客户端从键值存储系统获取注册键名列表中所有键名对应的键值,获取成功后,向服务端返回首次缓存更新成功信息,以完成初始化过程。
需要说明的是,可能存在多个客户端向服务端注册,本公开实施例中以一个客户端为例,其他客户端的注册过程类似,此处不再赘述。
步骤205、向客户端返回注册错误信息,结束流程。
示例性的,服务端可以返回客户端的注册信息中包含的缓存键名列表中包含未发现键名,指示客户端抛出异常,中止启动,向用户提示错误信息。
步骤206、接收键值更新请求。
其中,所述键值更新请求中包含待更新键名。
步骤207、根据待更新键名查询预设绑定关系,得到对应的目标客户端注册标识。
其中,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一。
步骤208、根据目标客户端注册标识查询预设关联关系,得到对应的目标客户端元数据信息。
其中,所述预设关联关系中包含客户端注册标识与客户端元数据信息的对应关系,所述客户端元数据信息中包含对应客户端的地址信息。
步骤209、基于目标客户端元数据信息,向对应的目标客户端发送键值更新指令。
基于所述目标客户端元数据信息,向对应的目标客户端发送键值更新指令,其中,所述键值更新指令中包含所述待更新键名,所述键值更新指令用于指示所述目标客户端从键值存储系统获取所述待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
可选的,所述键值存储系统中包括数据源和二级缓存组件,所述键值更新指令中还包含所述二级缓存组件的下载地址;所述键值更新指令用于指示所述目标客户端基于所述下载地址从相应的二级缓存组件获取所述待更新键名对应的目标键值。这样设置的好处在于,指示客户端从二级缓存下载更新,防止缓存穿透。所述二级缓存组件,可具体为分布式应用系统中二级缓存组件,可以是分布式缓存集群,如Redis等。
示例性的,服务端识别出目标客户端注册标识后,得到目标客户端列表,根据目标客户端列表查询预设关联关系,得到对应的目标客户端元数据信息,并生成键值更新指令,将键值更新指令加入队列,再从队列中取出各目标客户端分别对应的键值更新指令,并将包含二级缓存地址的键值更新指令同步下发至各目标客户端。
可选的,在所述基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令之后,还可包括:接收所述目标客户端返回的更新结果信息,其中,所述更新结果信息中包括所述待更新键名在所述目标客户端的本地缓存中的是否成功更新的信息。这样设置的好处在于,无需通过客户端消费记录来感知缓存更新状态,能够更加实时地获知客户端的缓存更新情况,保证业务的连续性。
可选的,所述更新结果信息包含客户端注册标识,更新键名(也即键值更新指令中指示客户端进行更新的待更新键名),更新状态信息(也即是否成功更新),发送完成后,完成缓存的更新流程。
本公开实施例提供的缓存更新方法,由服务端接收客户端发送的注册信息,基于注册信息生成相对应的客户端注册标识,以及更新预设绑定关系,对于缓存键名列表中的每个键名,查询预设绑定关系中是否存在与当前键名相同的键名,若存在,则将所生成的客户端注册标识与所查询到的键名绑定,以更新预设绑定关系,若不存在,向客户端返回注册错误信息,中止启动,建立注册信息中包括的客户端元数据信息,与所生成的客户端注册标识的对应关系,在接收到键值更新请求后,根据待更新键名查询预设绑定关系,得到目标客户端注册标识,并查询预设关联关系得到对应的目标客户端元数据信息,向对应的目标客户端发送键值更新指令,最后接收目标客户端返回的更新结果信息。采用此技术方案有效实现了缓存实时同步,避免延时更新;同时,通过客户端与服务端状态管理,实现业务感知,缓存更新时,有效的避免业务请求堆积,防止缓存更新过程带来的性能问题;另一方面,本申请实施例缓存更新方法无代码侵入,不需二次开发,同时避免了消息中间件更新模式带来的额外主题管理工作和消息的收发,满足分布式应用缓存更新的要求。
图3为本发明实施例提供的又一种缓存更新方法流程图,本发明实施例适用于分布式应用系统中的客户端在服务端指示下进行本地缓存更新的情形,该方法可以由缓存更新装置来执行,该装置可以通过软件和/或硬件的形式实现,可配置于分布式应用系统中的客户端,可选的,通过缓存更新设备等电子设备来实现,该缓存更新设备可以是手机或平板电脑等移动终端,也可以为个人计算机(Personal Computer,PC)端或服务器等设备。
如图3所示,该方法包括:
步骤301、接收服务端发送的键值更新指令,其中,键值更新指令由服务端在接收包含待更新键名的键值更新请求后,基于根据待更新键名查询预设绑定关系得到的对应的目标客户端注册标识向客户端发送,预设绑定关系中包含客户端注册标识与键名的对应关系,客户端注册标识全局唯一,键值更新指令中包含待更新键名。
步骤302、根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值。
示例性的,键值存储系统可包括数据源,还可包括数据源和二级缓存组件,可以从数据源中直接获取待更新键名对应的目标键值,也可从二级缓存组件获取待更新键名对应的目标键值。
可选的,所述键值存储系统中包括数据源和二级缓存组件,所述键值更新指令中还包含二级缓存组件的下载地址。其中,所述根据键值更新指令,从键值存储系统获取所述待更新键名对应的目标键值,包括:基于所述下载地址从相应的二级缓存组件获取所述待更新键名对应的目标键值。
为了提升并发度,同时,为防止缓存穿透,直达数据源,设置二级缓存组件,可选的,二级缓存组件为分布式缓存集群。
步骤303、基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
示例性的,客户端在从键值存储系统中获取到目标键值后,将本地缓存中当前存储的待更新键名的原缓存键值替换为目标键值。
本公开实施例提供的缓存更新方法,由客户端接收服务端发送的键值更新指令,并根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值,基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。有效实现了缓存实时同步,避免业务请求堆积,且本缓存更新方法无代码侵入,不需二次开发,避免了消息中间件更新模式带来的额外主题管理工作和消息的收发,满足分布式应用缓存更新的要求。
在一些实施例中,在所述接收服务端发送的键值更新指令之前,还包括:向所述服务端发送注册信息,其中,所述注册信息中包括客户端元数据信息和缓存键名列表,所述缓存键名列表中包含所述客户端的本地缓存中存在的键名,所述注册信息用于指示所述服务端基于所述注册信息生成对应的客户端注册标识,将所生成的客户端注册标识和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系。这样设置的好处在于,向服务端发送注册信息,可以使得服务端准确地维护预设绑定关系,进而保证键值更新指令的准确下发。
在一些实施例中,在所述基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新之后,还包括:确定所述待更新键名在所述客户端的本地缓存中是否更新成功;根据确定结果生成更新结果信息,并向所述服务端返回所述更新结果信息。这样设置的好处在于,客户端及时反馈更新结果信息,使得服务端及时感知更新状态,保证业务连续性。
图4为本发明实施例提供的再一种缓存更新方法的流程图,本公开实施例以上述实施例中各个可选方案为基础进行优化,增加了关于原缓存键值更新的步骤。
示例性的,该方法还可包括:
步骤401、向服务端发送注册信息。
示例性的,客户端应用启动后,可以采集本地元数据,也即客户端元数据信息,包括:主机名称、应用名称、IP地址和服务端口。客户端获取本地缓存数据键值列表后,向服务端发送注册信息,其中,注册信息包括所述客户端元数据信息和缓存数据键值列表。
所述应用启动过程可以为强约束过程,即无法注册成功的客户端应用无法启动成功。
应用客户端启动过程中,依据客户端应用配置参数包含的服务端链接和端口信息,向服务端申请注册,也即向服务端发送注册信息。
服务端接收到注册信息后的处理流程可参考上文相关内容,此处不再赘述。
步骤402、接收服务端发送的键值更新指令。
步骤403、根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值。
客户端接收缓存更新指令后,向所述键值存储系统中的二级缓存组件拉取缓存信息至客户端。
步骤404、为本地缓存中的待更新键名的原缓存键值添加读锁。
为了不影响业务交易,对所述缓存键值加读锁,解锁之前禁止访问原缓存键值,防止读取出错,加锁成功后,则执行步骤405。
步骤405、将本地缓存中的待更新键名指向目标键值对应的本地缓存地址。
步骤406、删除所述原缓存键值,并释放所述读锁。
完成更新键值的内存地址切换,并提供给业务接口访问。
步骤407、确定待更新键名在客户端的本地缓存中是否更新成功。
步骤408、根据确定结果生成更新结果信息,并向服务端返回更新结果信息。
本公开实施例提供的缓存更新方法,通过客户端向服务端发送注册信息,经服务端处理后,接收服务端发送的键值更新指令,根据键值更新指令,从键值存储系统获取待更新键名对应的目标键值,并为本地缓存中的待更新键名的原缓存键值添加读锁,加锁成功后,将本地缓存中的待更新键名指向目标键值对应的本地缓存地址,删除所述原缓存键值,并释放所述读锁,完成更新键值的内存地址切换,并提供给业务接口访问,确定待更新键名在客户端的本地缓存中是否更新成功,根据确定结果生成更新结果信息,并向服务端返回更新结果信息。采用此技术方案有效实现了缓存实时同步,避免延时更新;同时,通过客户端与服务端状态管理,实现业务感知,缓存更新时,有效的避免业务请求堆积,防止缓存更新过程带来的性能问题;另一方面,本申请实施例缓存更新方法无代码侵入,不需二次开发,同时避免了消息中间件更新模式带来的额外主题管理工作和消息的收发,满足分布式应用缓存更新的要求。
图5为本发明实施例提供的一种缓存更新方法的信令交互示意图,该图示出了客户端启动后注册的过程。如图5所述,客户端应用启动后,收集客户端元数据,获取缓存键值列表(也即缓存键名列表),向服务端发送注册信息,服务端进行元数据注册,并生成客户端注册标识,关联客户端注册标识和客户端元数据,以更新预设关联关系,关联客户端注册标识和缓存数据键值信息(也即缓存键名列表中的键名),以更新预设关联关系,随后向客户端返回注册信息(包括更新结果信息),客户端确定注册成功后,启动成功,定时向服务端发送心跳,服务端识别为首次心跳后,生成客户端注册缓存键值对应的缓存更新指令,发送全量更新指令至客户端,客户端完成首次缓存更新后,向服务端发送更新完成指令,以完成注册过程以及本地缓存数据的初始化。
图6为本发明实施例提供的另一种缓存更新方法的信令交互示意图,该图示出了客户端注册成功后更新本地缓存的过程。如图6所示,服务端接收第三方更新请求后,识别键值与客户端注册标识,获得客户端元数据信息,更新请求队列,向客户端发送更新指令,客户端接收更新指令后,获取更新缓存数据并切换更新键值对应的缓存,更新完成后,向服务端发送更新完成指令。
图7为本发明实施例提供的一种缓存更新装置的结构示意图,该装置配置于分布式应用系统中的服务端,如图7所示,所述装置包括:
更新请求控制模块501,用于接收键值更新请求,其中,所述键值更新请求中包含待更新键名;
注册标识获取模块502,用于根据所述待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,其中,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一;
更新指令发送模块503,用于基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,所述键值更新指令中包含所述待更新键名,所述键值更新指令用于指示所述目标客户端从键值存储系统获取所述待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
本发明实施例提供的缓存更新装置,可以实现缓存实时同步,避免延时更新,实现业务感知,有效的避免缓存更新时的业务请求堆积,防止缓存更新过程带来的性能问题,同时可防止代码侵入,不需二次开发,避免了消息中间件更新模式带来的额外主题管理工作和消息的收发,满足分布式应用缓存更新的要求。
可选的,更新指令发送模块503包括:
数据信息获取单元,用于根据所述目标客户端注册标识查询预设关联关系,得到对应的目标客户端元数据信息,其中,所述预设关联关系中包含客户端注册标识与客户端元数据信息的对应关系,所述客户端元数据信息中包含对应客户端的地址信息;
键值更新指令发送单元,用于基于所述目标客户端元数据信息,向对应的目标客户端发送键值更新指令。
可选的,所述装置还包括:
注册信息接收模块,用于接收客户端发送的注册信息,其中,所述注册信息中包括客户端元数据信息和缓存键名列表,所述缓存键名列表中包含客户端的本地缓存中存在的键名;
注册标识生成模块,用于基于所述注册信息,生成对应的客户端注册标识;
绑定关系更新模块,将所生成的客户端注册标识,和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系。
可选的,绑定关系更新模块包括:
键名查询单元,用于对于所述缓存键名列表中的每个键名,查询所述预设绑定关系中是否存在与当前键名相同的键名;
键名绑定单元,用于若存在与当前键名相同的键名,则将所生成的客户端注册标识与所查询到的键名绑定,以更新所述预设绑定关系;
错误信息返回单元,用于若不存在与当前键名相同的键名,则向所述客户端返回注册错误信息。
可选的,所述装置还包括:
对应关系建立模块,用于建立所述注册信息中包括的客户端元数据信息,与所生成的客户端注册标识的对应关系。
可选的,所述键值存储系统中包括数据源和二级缓存组件,所述键值更新指令中还包含所述二级缓存组件的下载地址;所述键值更新指令用于指示所述目标客户端基于所述下载地址从相应的二级缓存组件获取所述待更新键名对应的目标键值。
可选的,所述装置还包括:
更新结果接收模块,用于在所述基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令之后,接收所述目标客户端返回的更新结果信息,其中,所述更新结果信息中包括所述待更新键名在所述目标客户端的本地缓存中的是否成功更新的信息。
图8为本发明实施例提供的又一种缓存更新装置,配置于分布式应用系统中的客户端,包括:
更新指令接收模块601,用于接收服务端发送的键值更新指令,其中,所述键值更新指令由所述服务端在接收包含待更新键名的键值更新请求后,基于根据所述待更新键名查询预设绑定关系得到的对应的目标客户端注册标识向所述客户端发送,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一,所述键值更新指令中包含所述待更新键名;
目标键值获取模块602,用于根据所述键值更新指令,从键值存储系统获取所述待更新键名对应的目标键值;
缓存键值更新模块603,用于基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
本发明实施例提供的缓存更新装置,可以实现缓存实时同步,避免延时更新,实现业务感知,有效的避免缓存更新时的业务请求堆积,防止缓存更新过程带来的性能问题,同时可防止代码侵入,不需二次开发,避免了消息中间件更新模式带来的额外主题管理工作和消息的收发,满足分布式应用缓存更新的要求。
可选的,所述装置还包括:
注册信息发送模块,用于在所述接收服务端发送的键值更新指令之前,向所述服务端发送注册信息,其中,所述注册信息中包括客户端元数据信息和缓存键名列表,所述缓存键名列表中包含所述客户端的本地缓存中存在的键名,所述注册信息用于指示所述服务端基于所述注册信息生成对应的客户端注册标识,将所生成的客户端注册标识和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系。
可选的,所述键值存储系统中包括数据源和二级缓存组件,所述键值更新指令中还包含二级缓存组件的下载地址,目标键值获取模块602具体用于:
基于所述下载地址从相应的二级缓存组件获取所述待更新键名对应的目标键值。
可选的,所述装置还包括:
更新状态确定模块,用于在所述基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新之后,确定所述待更新键名在所述客户端的本地缓存中是否更新成功;
更新结果返回模块,用于根据确定结果生成更新结果信息,并向所述服务端返回所述更新结果信息。
可选的,缓存键值更新模块603包括:
读锁添加单元,用于为本地缓存中的待更新键名的原缓存键值添加读锁,其中,所述读锁用于阻止所述原缓存键值被读取;
待更新键名指向单元,同于将所述本地缓存中的待更新键名指向所述目标键值对应的本地缓存地址;
读锁释放单元,用于删除所述原缓存键值,并释放所述读锁。
图9为本发明实施例提供的一种电子设备的结构示意图。该电子设备可被配置为分布式应用系统中的客户端或服务端。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图9所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如人脸认证方法。
在一些实施例中,人脸认证方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的人脸认证方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行人脸认证方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
图10为本发明实施例所提供的一种分布式应用系统的结构示意图,如图10所示,分布式应用系统800包括服务端803、多个客户端804(图中仅示出一个,其他未示出)、数据更新管理端801和键值存储系统802。
所述键值存储系统802,用于持久化存储所述分布式应用系统中的各键名对应的键值;
所述数据更新管理端801,用于在所述键值存储系统中更新待更新键名对应的键值,并向所述服务端发送键值更新请求,其中,所述键值更新请求中包含所述待更新键名;
所述服务端803,用于接收所述数据更新管理端发送的键值更新请求,根据所述待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一,所述键值更新指令中包含所述待更新键名;
所述客户端804,用于接收所述服务端发送的键值更新指令,根据所述键值更新指令,从键值存储系统获取所述待更新键名对应的目标键值,基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
图11为本发明实施例所提供的一种分布式应用系统的工作过程示意图,如图11所示,第三方应用在数据源中更新键值后,同步在二级缓存中进行更新,并通知服务端确定目标客户端,以向目标客户端发送更新指令,客户端接收到更新指令后,从二级缓存中拉取更新后的键值,更新本地缓存后,向服务端发送更新状态,完成本地缓存更新过程。
本发明实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如本申请任一实施例所提供的缓存更新方法。
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例中提供的缓存更新装置、设备、系统、存储介质及产品可执行本申请任意实施例所提供的缓存更新方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的缓存更新方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (18)
1.一种缓存更新方法,其特征在于,应用于分布式应用系统中的服务端,包括:
接收键值更新请求,其中,所述键值更新请求中包含待更新键名;
根据所述待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,其中,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一;
基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,所述键值更新指令中包含所述待更新键名,所述键值更新指令用于指示所述目标客户端从键值存储系统获取所述待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令,包括:
根据所述目标客户端注册标识查询预设关联关系,得到对应的目标客户端元数据信息,其中,所述预设关联关系中包含客户端注册标识与客户端元数据信息的对应关系,所述客户端元数据信息中包含对应客户端的地址信息;
基于所述目标客户端元数据信息,向对应的目标客户端发送键值更新指令。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收客户端发送的注册信息,其中,所述注册信息中包括客户端元数据信息和缓存键名列表,所述缓存键名列表中包含客户端的本地缓存中存在的键名;
基于所述注册信息,生成对应的客户端注册标识;
将所生成的客户端注册标识,和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系。
4.根据权利要求3所述的方法,其特征在于,所述将所生成的客户端注册标识,和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系,包括:
对于所述缓存键名列表中的每个键名,查询所述预设绑定关系中是否存在与当前键名相同的键名,若存在,则将所生成的客户端注册标识与所查询到的键名绑定,以更新所述预设绑定关系;
其中,在查询所述预设绑定关系中是否存在与当前键名相同的键名之后,还包括:
若不存在,则向所述客户端返回注册错误信息。
5.根据权利要求3所述的方法,其特征在于,还包括:
建立所述注册信息中包括的客户端元数据信息,与所生成的客户端注册标识的对应关系。
6.根据权利要求1所述的方法,其特征在于,所述键值存储系统中包括数据源和二级缓存组件,所述键值更新指令中还包含所述二级缓存组件的下载地址;所述键值更新指令用于指示所述目标客户端基于所述下载地址从相应的二级缓存组件获取所述待更新键名对应的目标键值。
7.根据权利要求1所述的方法,其特征在于,在所述基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令之后,还包括:
接收所述目标客户端返回的更新结果信息,其中,所述更新结果信息中包括所述待更新键名在所述目标客户端的本地缓存中的是否成功更新的信息。
8.一种缓存更新方法,其特征在于,应用于分布式应用系统中的客户端,包括:
接收服务端发送的键值更新指令,其中,所述键值更新指令由所述服务端在接收包含待更新键名的键值更新请求后,基于根据所述待更新键名查询预设绑定关系得到的对应的目标客户端注册标识向所述客户端发送,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一,所述键值更新指令中包含所述待更新键名;
根据所述键值更新指令,从键值存储系统获取所述待更新键名对应的目标键值;
基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
9.根据权利要求8所述的方法,其特征在于,在所述接收服务端发送的键值更新指令之前,还包括:
向所述服务端发送注册信息,其中,所述注册信息中包括客户端元数据信息和缓存键名列表,所述缓存键名列表中包含所述客户端的本地缓存中存在的键名,所述注册信息用于指示所述服务端基于所述注册信息生成对应的客户端注册标识,将所生成的客户端注册标识和所述预设绑定关系中的与所述缓存键名列表中的键名相同的键名绑定,以更新所述预设绑定关系。
10.根据权利要求8所述的方法,其特征在于,所述键值存储系统中包括数据源和二级缓存组件,所述键值更新指令中还包含二级缓存组件的下载地址;
其中,所述根据键值更新指令,从键值存储系统获取所述待更新键名对应的目标键值,包括:
基于所述下载地址从相应的二级缓存组件获取所述待更新键名对应的目标键值。
11.根据权利要求8所述的方法,其特征在于,在所述基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新之后,还包括:
确定所述待更新键名在所述客户端的本地缓存中是否更新成功;
根据确定结果生成更新结果信息,并向所述服务端返回所述更新结果信息。
12.根据权利要求8所述的方法,其特征在于,所述基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新,包括:
为本地缓存中的待更新键名的原缓存键值添加读锁,其中,所述读锁用于阻止所述原缓存键值被读取;
将所述本地缓存中的待更新键名指向所述目标键值对应的本地缓存地址;
删除所述原缓存键值,并释放所述读锁。
13.一种缓存更新装置,其特征在于,配置于分布式应用系统中的服务端,包括:
更新请求控制模块,用于接收键值更新请求,其中,所述键值更新请求中包含待更新键名;
注册标识获取模块,用于根据所述待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,其中,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一;
更新指令发送模块,用于基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,所述键值更新指令中包含所述待更新键名,所述键值更新指令用于指示所述目标客户端从键值存储系统获取所述待更新键名对应的目标键值,并基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
14.一种缓存更新装置,其特征在于,配置于分布式应用系统中的客户端,包括:
更新指令接收模块,用于接收服务端发送的键值更新指令,其中,所述键值更新指令由所述服务端在接收包含待更新键名的键值更新请求后,基于根据所述待更新键名查询预设绑定关系得到的对应的目标客户端注册标识向所述客户端发送,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一,所述键值更新指令中包含所述待更新键名;
目标键值获取模块,用于根据所述键值更新指令,从键值存储系统获取所述待更新键名对应的目标键值;
缓存键值更新模块,用于基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
15.一种电子设备,其特征在于,被配置为分布式应用系统中的客户端或服务端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-12中任一项所述的缓存更新方法。
16.一种分布式应用系统,其特征在于,包括服务端、多个客户端、数据更新管理端和键值存储系统,其中:
所述键值存储系统,用于持久化存储所述分布式应用系统中的各键名对应的键值;
所述数据更新管理端,用于在所述键值存储系统中更新待更新键名对应的键值,并向所述服务端发送键值更新请求,其中,所述键值更新请求中包含所述待更新键名;
所述服务端,用于接收所述数据更新管理端发送的键值更新请求,根据所述待更新键名查询预设绑定关系,得到对应的目标客户端注册标识,基于所述目标客户端注册标识,向对应的目标客户端发送键值更新指令,其中,所述预设绑定关系中包含客户端注册标识与键名的对应关系,所述客户端注册标识全局唯一,所述键值更新指令中包含所述待更新键名;
所述客户端,用于接收所述服务端发送的键值更新指令,根据所述键值更新指令,从键值存储系统获取所述待更新键名对应的目标键值,基于所获取的目标键值对本地缓存中的待更新键名的原缓存键值进行更新。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一项所述的缓存更新方法。
18.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-12中任一项所述的缓存更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211093942.XA CN115470224A (zh) | 2022-09-08 | 2022-09-08 | 缓存更新方法、装置、设备、系统、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211093942.XA CN115470224A (zh) | 2022-09-08 | 2022-09-08 | 缓存更新方法、装置、设备、系统、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470224A true CN115470224A (zh) | 2022-12-13 |
Family
ID=84369348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211093942.XA Pending CN115470224A (zh) | 2022-09-08 | 2022-09-08 | 缓存更新方法、装置、设备、系统、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470224A (zh) |
-
2022
- 2022-09-08 CN CN202211093942.XA patent/CN115470224A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684307B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN109933585B (zh) | 数据查询方法和数据查询系统 | |
CN111694857B (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
CN111897638A (zh) | 分布式任务调度方法及系统 | |
US11687507B2 (en) | Termination of database sessions for planned failover | |
US11799961B2 (en) | File directory traversal method, apparatus, device, and medium | |
CN108595505A (zh) | 数据查询的方法和装置 | |
CN111680015A (zh) | 文件资源处理方法、装置、设备和介质 | |
CN111552934A (zh) | 数据库访问方法以及装置 | |
JP2013025814A (ja) | バーチャルマシンの管理システム及び管理方法 | |
US11656802B2 (en) | Distributed block storage service command processing method, apparatus, device and medium | |
CN113271359A (zh) | 刷新缓存数据的方法、装置、电子设备和存储介质 | |
US20190268437A1 (en) | Information acquisition | |
CN112463549A (zh) | 云平台的审计方法、装置、设备及计算机可读存储介质 | |
CN116561179A (zh) | 数据查询方法、装置、设备及程序产品 | |
CN110933145A (zh) | 异地调度方法、装置、设备及介质 | |
CN115470224A (zh) | 缓存更新方法、装置、设备、系统、存储介质及产品 | |
CN114584545A (zh) | 数据管理方法、装置、系统、存储介质及电子设备 | |
CN114691781A (zh) | 一种数据同步方法、系统、装置、设备及介质 | |
US7912922B2 (en) | Globally unique instance identification | |
CN113726885A (zh) | 一种流量配额的调整方法和装置 | |
US20080140687A1 (en) | Socket structure simultaneously supporting both toe and ethernet network interface card and method of forming the socket structure | |
CN113703946A (zh) | 应用恢复方法及其装置、电子设备、计算机可读存储介质 | |
CN114615273B (zh) | 基于负载均衡系统的数据发送方法、装置和设备 | |
CN117749889A (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 |