CN114706925B - 一种多服务多key值的缓存同步方法、装置及*** - Google Patents
一种多服务多key值的缓存同步方法、装置及*** Download PDFInfo
- Publication number
- CN114706925B CN114706925B CN202210323783.1A CN202210323783A CN114706925B CN 114706925 B CN114706925 B CN 114706925B CN 202210323783 A CN202210323783 A CN 202210323783A CN 114706925 B CN114706925 B CN 114706925B
- Authority
- CN
- China
- Prior art keywords
- cache
- type key
- value
- storage set
- key value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012544 monitoring process Methods 0.000 claims description 41
- 238000013500 data storage Methods 0.000 abstract description 16
- 230000001360 synchronised effect Effects 0.000 abstract description 15
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- RYYVLZVUVIJVGH-UHFFFAOYSA-N caffeine Chemical compound CN1C(=O)N(C)C(=O)C2=C1N=CN2C RYYVLZVUVIJVGH-UHFFFAOYSA-N 0.000 description 2
- LPHGQDQBBGAPDZ-UHFFFAOYSA-N Isocaffeine Natural products CN1C(=O)N(C)C(=O)C2=C1N(C)C=N2 LPHGQDQBBGAPDZ-UHFFFAOYSA-N 0.000 description 1
- 229960001948 caffeine Drugs 0.000 description 1
- VJEONQKOZGKCAK-UHFFFAOYSA-N caffeine Natural products CN1C(=O)N(C)C(=O)C2=C1C=CN2C VJEONQKOZGKCAK-UHFFFAOYSA-N 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种多服务多key值的缓存同步方法、装置及***,该方法包括:在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据,基于该方法,本发明还提出了一种多服务多key值的缓存同步装置及***,不仅实现了根据多key进行缓存数据存储,而且实现多个服务中缓存同步更新。
Description
技术领域
本发明涉及缓存同步领域,尤其是涉及一种多服务多key值的缓存同步方法、装置及***。
背景技术
缓存在软件技术中是至关重要的,不可或缺的一部分,可以提高软件对数据操作的整体效率。现存的缓存,包含redis(Remote Dictionary Server,远程字典服务,是一个key-value存储***)外部缓存组件以及caffeine(基于Java 8的高性能,接近最佳的内存缓存库)等等。redis缓存是开发者最喜欢用的非常方便的缓存,caffeine是目前可以称之为最佳缓存框架的高性能缓存库。
总而言之,面临不同的业务,采用不同类型的缓存设计才是最优的方案。比如现有业务需求在多服务中根据多key(键值)获取value(值,即数据)的情况,而且数据多,占用小的情况。引用redis缓存组件可以解决多模块同步的问题,但是很多项目并经常用不到redis缓存组件,而是使用caffeine缓存,因为redis缓存组件即占用内存,又导致软件包过大,而且redis缓存组件或caffeine缓存组件均无法实现根据多key进行缓存数据存储的情况。
发明内容
本发明为了解决现有技术中存在的问题,创新提出了一种多服务多key值的缓存同步方法、装置及***,有效解决由于现有技术造成无法实现根据多key进行缓存数据存储,也无法实现多个服务中缓存同步更新的情况的问题,不仅实现了根据多key进行缓存数据存储,而且实现多个服务中缓存同步更新。
本发明第一方面提供了一种多服务多key值的缓存同步方法,包括:
在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;
获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据。
可选地,所述缓存对象的第二类型key值用于直接确定所述缓存对象的value值,所述缓存对象的第一类型key值用于直接确定所述缓存对象的第二类型key值。
进一步地,所述缓存对象的第一类型key值包括用于根据描述缓存对象的value值第一属性的对象标识符,用于根据描述缓存对象的value值第二属性的IP地址,用于根据描述缓存对象的value值第三属性的对象类型。
可选地,还包括:
获取待查询缓存对象的第二类型key值或任意一个第一类型key值;
根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值。
进一步地,根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值具体包括:
如果获取的待查询缓存对象第二类型key值,根据待查询缓存对象第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
如果获取的待查询缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,在第一存储集合中确定对应的第二类型key值,根据确定的第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值。
可选地,还包括:
获取待删除缓存对象的第二类型key值或任意一个第一类型key值;
根据获取的待删除缓存对象的第二类型key值或任意一个第一类型key值,分别删除第二存储集合中对应的value值、第二类型key值以及第一存储集合中对应的第二类型key值、所有第一类型key值。
进一步地,根据获取的待删除缓存对象的第二类型key值或任意一个第一类型key值,分别删除第二存储集合中对应的value值、第二类型key值以及第一存储集合中对应的第二类型key值、所有第一类型key值具体包括:
如果获取的待删除缓存对象第二类型key值,根据待删除缓存对象第二类型key值遍历第二存储集合,分别删除第二存储集合中对应的value值、第二类型key值,根据待删除缓存对象第二类型key值遍历第一存储集合,分别删除第一存储集合中对应的第二类型key值、所有第一类型key值;
如果获取的待删除缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,分别删除第一存储集合中对应的第二类型key值、所有第一类型key值;根据第一类型key值确定的第二类型key值,根据确定的第二类型key值遍历第二存储集合,分别删除第二存储集合中对应的value值、第二类型key值。
可选地,实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据具体包括:
在每项服务中分别建立监控模块以及调用模块;
通过每项服务中的监控模块实时监控对应服务中的缓存块;
当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据。
本发明第二方面提供了一种多服务多key值的缓存同步装置,包括:
缓存块创建模块,在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;
缓存块存储模块,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
缓存块更新模块,实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据。
本发明第三方面提供了一种多服务多key值的缓存同步***,包括:数据库以及多个服务组件,每个服务组件均包括缓存块创建模块,用于在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;每个服务组件中的缓存块用于与数据库通信,进行缓存对象的存储、查询、删除;
缓存块存储模块,用于通过数据库获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
缓存块更新模块,用于实时监控对应服务组件中的缓存块,当任意一个缓存块更新后,通知其他服务组件同步更新缓存块中的缓存对象数据。
本发明采用的技术方案包括以下技术效果:
1、本发明基于在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据,有效解决由于现有技术造成无法实现根据多key进行缓存数据存储,也无法实现多个服务中缓存同步更新的情况的问题,不仅实现了根据多key进行缓存数据存储,而且实现多个服务中缓存同步更新。
2、本发明技术方案中所述缓存对象的第一类型key值包括用于根据描述缓存对象的value值第一属性的对象标识符,用于根据描述缓存对象的value值第二属性的IP地址,用于根据描述缓存对象的value值第三属性的对象类型,不仅实现了根据多key进行缓存数据存储,而且还可以根据多key进行缓存数据检索、删除或修改等,提高了多服务多key值的缓存同步的适用性。
3、本发明技术方案中在每项服务中分别建立监控模块以及调用模块;通过每项服务中的监控模块实时监控对应服务中的缓存块;当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据,实现了多服务中缓存数据的同步。
应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方案中实施例一方法的流程示意图(一);
图2为本发明方案中实施例一方法中缓存对象数据结构(缓存块中第一存储集合以及第二存储集合存储形式)示意图;
图3为本发明方案中实施例一方法中步骤S3的流程示意图;
图4为本发明方案中实施例一方法中其中一服务中缓存更新后同步其他服务中缓存的结构示意图(以服务1中缓存更新为例说明);
图5为本发明方案中实施例一方法的流程示意图(二);
图6为本发明方案中实施例一方法的流程示意图(三);
图7为本发明方案中实施例二装置的结构示意图;
图8为本发明方案中实施例三***的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例一
如图1所示,本发明提供了一种多服务多key值的缓存同步方法,包括:
S1,在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;
S2,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
S3,实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据。
其中,在步骤S1中,缓存对象的第二类型key值用于直接确定缓存对象的value值,缓存对象的第一类型key值用于直接确定缓存对象的第二类型key值。即,第二类型key值为相对于第一类型key值的value值,相对于第二存储集合中value值中的key值。
具体地,缓存对象的第一类型key值包括用于根据描述缓存对象的value值第一属性的对象标识符(serial),用于根据描述缓存对象的value值第二属性的IP地址,用于根据描述缓存对象的value值第三属性的对象类型(vendor)。
如图2所示,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合,即获取待缓存对象的第二类型key值、value值、所有第一类型key值,然后第一存储集合(keymap)用于存储缓存块中待缓存对象的所有第一类型key值与第二类型key值的对应关系,即存放键值key1(第一类型key值)和数据key(第二类型key值)、键值key2(第一类型key值)和数据key(第二类型key值)、键值key3(第一类型key值)和数据key(第二类型key值);然后第二存储集合(valuemap)用于存储缓存块中待缓存对象的第二类型key值与value值的对应关系,即,存放缓存对象的第二类型key值与缓存对象的value值。
对应的,在步骤S2中,缓存对象数据结构与第一存储集合以及第二存储集合的存储形式对应相同,第一存储集合以及第二存储集合的存储形式如下:
第一存储集合keyMap:{serial:id,ip:id,vendor:id}
第二存储集合valueMap:{id:value},即将serial、IP、vendor分别作为多个第一类型key值存储至第一存储集合,ID(同id)作为第二类型key值分别存储至第一存储集合以及第二存储集合,value作为value值存储至第二存储集合中,需要说明的是,缓存对象存储时,可以先存储至某一项服务(可以是客户当前业务操作运行的服务中,也可以是客户当前指定的服务中)中的缓存块中,然后再同步至其他服务中的缓存块,即实现缓存数据的分布式同步存储。
其中,在步骤S3中,如图3-图4所示,步骤S3具体包括:
S31,在每项服务中分别建立监控模块以及调用模块;
S32,通过每项服务中的监控模块实时监控对应服务中的缓存块;
S33,当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据。
其中,在步骤S3中,以服务1中缓存块发生变化为例,进行说明,当服务1中的监控模块监控到服务1中的缓存块发生变化时,会通过服务1中的调用模块通知其他服务(服务2以及服务3)中的调用模块,并调用对应服务中的缓存块进行同步更新,每个服务都有自己缓存块,但是共用一个数据库,每个服务都能操作数据库,但是只能操作自己的缓存块,因此通过调用模块通知其他服务需要更新各自的缓存,然后各个服务更新自己的缓存。
监控模块可以通过建立监控进程(observer进程)实现,调用模块可以通过建立创建多服务互通模块rmi(远程调用RMI进程),监控模块作出响应之后,通过调用模块做到多服务互通,同步缓存块中缓存。
进一步地,如图5所示,本发明技术方案还提供了一种多服务多key值的缓存同步方法,还包括:
S4,获取待查询缓存对象的第二类型key值或任意一个第一类型key值;
S5,根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值。
其中,在步骤S5中,根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值具体包括:
如果获取的待查询缓存对象第二类型key值,根据待查询缓存对象第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
如果获取的待查询缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,在第一存储集合中确定对应的第二类型key值,根据确定的第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值。
具体地,情况1:已知id(第二类型key值),获取value:
valueMap.contains(id)=true(包含该key)
valueMap.get(id)=value
返回获取的value。
情况2:已知ip(第一类型key值),获取value
valueMap(第二存储集合).contains(ip)=false(不包含该key)
keyMap(第一存储集合).contains(ip)=true(包含该key)
keyMap.get(ip)=id;
valueMap.get(id)=value
返回获取的value。
情况3:已知model(型号)查询value
ValueMap.contains(model)=false(不包含该key);
keyMap.contains(model)=false(不包含该key);
返回获取不到value。
进一步地,如图6所示,本发明技术方案还提供了一种多服务多key值的缓存同步方法,还包括:
S6,获取待删除缓存对象的第二类型key值或任意一个第一类型key值;
S7,根据获取的待删除缓存对象的第二类型key值或任意一个第一类型key值,分别删除第二存储集合中对应的value值、第二类型key值以及第一存储集合中对应的第二类型key值、所有第一类型key值。
其中,在步骤S7中,根据获取的待删除缓存对象的第二类型key值或任意一个第一类型key值,分别删除第二存储集合中对应的value值、第二类型key值以及第一存储集合中对应的第二类型key值、所有第一类型key值具体包括:
如果获取的待删除缓存对象第二类型key值,根据待删除缓存对象第二类型key值遍历第二存储集合,分别删除第二存储集合中对应的value值、第二类型key值,根据待删除缓存对象第二类型key值遍历第一存储集合,分别删除第一存储集合中对应的第二类型key值、所有第一类型key值;
如果获取的待删除缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,分别删除第一存储集合中对应的第二类型key值、所有第一类型key值;根据第一类型key值确定的第二类型key值,根据确定的第二类型key值遍历第二存储集合,分别删除第二存储集合中对应的value值、第二类型key值。
删除时,举例说明,情况1:根据id(第二类型key值)删除:
valueMap.contains(ip)=true(包含该key);
valueMap.delete(id)
keyMap获取所有的键值对entrySet
entrySet.getValue()=id则entrySet.getKey=serial,ip,vendor
keyMap.delete(serial);
keyMap.delete(ip);
keyMap.delete(vendor);
情况2:根据ip(第一类型key值)删除
valueMap.contains(ip)=false(不包含该key);
keyMap.contains(ip)=true(包含该key)
keyMap.get(ip)=id;
keyMap获取所有的键值对entrySet
entrySet.getValue()=id则entrySet.getKey=serial,ip,vendor
keyMap.delete(serial);
keyMap.delete(ip);
keyMap.delete(vendor);
valueMap.delete(id);
情况3:根据model(型号)删除
valueMap.contains(model)=false(不包含该key);
keyMap.contains(model)=false(不包含该key);
返回不用删除。
本发明基于在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据,有效解决由于现有技术造成无法实现根据多key进行缓存数据存储,也无法实现多个服务中缓存同步更新的情况的问题,不仅实现了根据多key进行缓存数据存储,而且实现多个服务中缓存同步更新。
本发明技术方案中所述缓存对象的第一类型key值包括用于根据描述缓存对象的value值第一属性的对象标识符,用于根据描述缓存对象的value值第二属性的IP地址,用于根据描述缓存对象的value值第三属性的对象类型,不仅实现了根据多key进行缓存数据存储,而且还可以根据多key进行缓存数据检索、删除或修改等,提高了多服务多key值的缓存同步的适用性。
本发明技术方案中在每项服务中分别建立监控模块以及调用模块;通过每项服务中的监控模块实时监控对应服务中的缓存块;当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据,实现了多服务中缓存数据的同步。
实施例二
如图7所示,本发明技术方案还提供了一种多服务多key值的缓存同步装置,包括:
缓存块创建模块101,在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;
缓存块存储模块102,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
缓存块更新模块103,实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据。
本发明基于在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据,有效解决由于现有技术造成无法实现根据多key进行缓存数据存储,也无法实现多个服务中缓存同步更新的情况的问题,不仅实现了根据多key进行缓存数据存储,而且实现多个服务中缓存同步更新。
本发明技术方案中所述缓存对象的第一类型key值包括用于根据描述缓存对象的value值第一属性的对象标识符,用于根据描述缓存对象的value值第二属性的IP地址,用于根据描述缓存对象的value值第三属性的对象类型,不仅实现了根据多key进行缓存数据存储,而且还可以根据多key进行缓存数据检索、删除或修改等,提高了多服务多key值的缓存同步的适用性。
本发明技术方案中在每项服务中分别建立监控模块以及调用模块;通过每项服务中的监控模块实时监控对应服务中的缓存块;当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据,实现了多服务中缓存数据的同步。
实施例三
如图8所示,本发明技术方案还提供了一种多服务多key值的缓存同步***,包括:数据库201以及多个服务组件202,每个服务组件202均包括缓存块创建模块101,用于在每项服务组件202中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;每个服务组件202中的缓存块用于与数据库201通信,进行缓存对象的存储、查询、删除;
缓存块存储模块102,用于通过数据库201获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
缓存块更新模块103,用于实时监控对应服务组件202中的缓存块,当任意一个缓存块更新后,通知其他服务组件202同步更新缓存块中的缓存对象数据。
每个服务组件202都有自己缓存块,但是共用一个数据库201,每个服务组件202都能操作数据库,但是只能操作自己的缓存块,因此通过调用模块通知其他服务组件202需要更新各自的缓存,然后各个服务组件202更新自己的缓存。
其中,数据库可以为DB(database,是依照某种数据模型组织起来并存放二级存储器中的数据集合)数据库,也可以为其他类型数据库,本发明在此不做限制。
本发明基于在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据,有效解决由于现有技术造成无法实现根据多key进行缓存数据存储,也无法实现多个服务中缓存同步更新的情况的问题,不仅实现了根据多key进行缓存数据存储,而且实现多个服务中缓存同步更新。
本发明技术方案中所述缓存对象的第一类型key值包括用于根据描述缓存对象的value值第一属性的对象标识符,用于根据描述缓存对象的value值第二属性的IP地址,用于根据描述缓存对象的value值第三属性的对象类型,不仅实现了根据多key进行缓存数据存储,而且还可以根据多key进行缓存数据检索、删除或修改等,提高了多服务多key值的缓存同步的适用性。
本发明技术方案中在每项服务中分别建立监控模块以及调用模块;通过每项服务中的监控模块实时监控对应服务中的缓存块;当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据,实现了多服务中缓存数据的同步。
Claims (7)
1.一种多服务多key值的缓存同步方法,其特征是,包括:
在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;
获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据;
获取待查询缓存对象的第二类型key值或任意一个第一类型key值;
根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值;
其中,根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值具体包括:
如果获取的待查询缓存对象第二类型key值,根据待查询缓存对象第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
如果获取的待查询缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,在第一存储集合中确定对应的第二类型key值,根据确定的第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据具体包括:
在每项服务中分别建立监控模块以及调用模块;
通过每项服务中的监控模块实时监控对应服务中的缓存块;
当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据。
2.根据权利要求1所述的一种多服务多key值的缓存同步方法,其特征是,所述缓存对象的第二类型key值用于直接确定所述缓存对象的value值,所述缓存对象的第一类型key值用于直接确定所述缓存对象的第二类型key值。
3.根据权利要求2所述的一种多服务多key值的缓存同步方法,其特征是,所述缓存对象的第一类型key值包括用于根据描述缓存对象的value值第一属性的对象标识符,用于根据描述缓存对象的value值第二属性的IP地址,用于根据描述缓存对象的value值第三属性的对象类型。
4.根据权利要求1所述的一种多服务多key值的缓存同步方法,其特征是,还包括:
获取待删除缓存对象的第二类型key值或任意一个第一类型key值;
根据获取的待删除缓存对象的第二类型key值或任意一个第一类型key值,分别删除第二存储集合中对应的value值、第二类型key值以及第一存储集合中对应的第二类型key值、所有第一类型key值。
5.根据权利要求4所述的一种多服务多key值的缓存同步方法,其特征是,根据获取的待删除缓存对象的第二类型key值或任意一个第一类型key值,分别删除第二存储集合中对应的value值、第二类型key值以及第一存储集合中对应的第二类型key值、所有第一类型key值具体包括:
如果获取的待删除缓存对象第二类型key值,根据待删除缓存对象第二类型key值遍历第二存储集合,分别删除第二存储集合中对应的value值、第二类型key值,根据待删除缓存对象第二类型key值遍历第一存储集合,分别删除第一存储集合中对应的第二类型key值、所有第一类型key值;
如果获取的待删除缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,分别删除第一存储集合中对应的第二类型key值、所有第一类型key值;根据第一类型key值确定的第二类型key值,根据确定的第二类型key值遍历第二存储集合,分别删除第二存储集合中对应的value值、第二类型key值。
6.一种多服务多key值的缓存同步装置,其特征是,包括:
缓存块创建模块,在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;
缓存块存储模块,获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
缓存块更新模块,实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据;获取待查询缓存对象的第二类型key值或任意一个第一类型key值;根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值;
其中,根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值具体包括:
如果获取的待查询缓存对象第二类型key值,根据待查询缓存对象第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
如果获取的待查询缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,在第一存储集合中确定对应的第二类型key值,根据确定的第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据具体包括:
在每项服务中分别建立监控模块以及调用模块;
通过每项服务中的监控模块实时监控对应服务中的缓存块;
当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据。
7.一种多服务多key值的缓存同步***,其特征是,包括:数据库以及多个服务组件,每个服务组件均包括缓存块创建模块,用于在每项服务中均创建一个缓存块,每个缓存块均包括第一存储集合以及第二存储集合,所述第一存储集合用于存储缓存块中缓存对象的多个第一类型key值与第二类型key值的对应关系,所述第二存储集合用于存储缓存块中缓存对象的第二类型key值与value值的对应关系;每个服务组件中的缓存块用于与数据库通信,进行缓存对象的存储、查询、删除;
缓存块存储模块,用于通过数据库获取待缓存对象的第二类型key值、value值、所有第一类型key值,将待缓存对象的所有第一类型key值以及第二类型key值存储至某一缓存块中的第一存储集合,将待缓存对象的value值存储至与第一存储集合同一缓存块中的第二存储集合;
缓存块更新模块,用于实时监控对应服务组件中的缓存块,当任意一个缓存块更新后,通知其他服务组件同步更新缓存块中的缓存对象数据;获取待查询缓存对象的第二类型key值或任意一个第一类型key值;根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值;
其中,根据获取的待查询缓存对象的第二类型key值或任意一个第一类型key值,返回第二存储集合中对应的value值具体包括:
如果获取的待查询缓存对象第二类型key值,根据待查询缓存对象第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
如果获取的待查询缓存对象任意一个第一类型key值,根据待查询缓存对象的第一类型key值,遍历第一存储集合,在第一存储集合中确定对应的第二类型key值,根据确定的第二类型key值遍历第二存储集合,返回第二存储集合中对应的value值;
实时监控每项服务中的缓存块,当任意一个缓存块更新后,通知其他服务同步更新缓存块中的缓存对象数据具体包括:
在每项服务中分别建立监控模块以及调用模块;
通过每项服务中的监控模块实时监控对应服务中的缓存块;
当任意一个缓存块更新后,通过对应服务中调用模块通知其他服务同步更新缓存块中的缓存对象数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210323783.1A CN114706925B (zh) | 2022-03-30 | 2022-03-30 | 一种多服务多key值的缓存同步方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210323783.1A CN114706925B (zh) | 2022-03-30 | 2022-03-30 | 一种多服务多key值的缓存同步方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114706925A CN114706925A (zh) | 2022-07-05 |
CN114706925B true CN114706925B (zh) | 2024-02-02 |
Family
ID=82170533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210323783.1A Active CN114706925B (zh) | 2022-03-30 | 2022-03-30 | 一种多服务多key值的缓存同步方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706925B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844529A (zh) * | 2016-12-29 | 2017-06-13 | 金蝶软件(中国)有限公司 | 缓存数据更新方法、装置和*** |
CN107547632A (zh) * | 2017-07-25 | 2018-01-05 | 广州爱九游信息技术有限公司 | 缓存数据同步方法、设备、服务中心及多中心服务*** |
CN108052656A (zh) * | 2017-12-28 | 2018-05-18 | 迈普通信技术股份有限公司 | 一种数据缓存控制方法及设备 |
CN109254981A (zh) * | 2018-08-27 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式缓存***的数据管理方法和装置 |
CN111611225A (zh) * | 2020-05-15 | 2020-09-01 | 腾讯科技(深圳)有限公司 | 数据存储管理方法、查询方法、装置、电子设备及介质 |
-
2022
- 2022-03-30 CN CN202210323783.1A patent/CN114706925B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844529A (zh) * | 2016-12-29 | 2017-06-13 | 金蝶软件(中国)有限公司 | 缓存数据更新方法、装置和*** |
CN107547632A (zh) * | 2017-07-25 | 2018-01-05 | 广州爱九游信息技术有限公司 | 缓存数据同步方法、设备、服务中心及多中心服务*** |
CN108052656A (zh) * | 2017-12-28 | 2018-05-18 | 迈普通信技术股份有限公司 | 一种数据缓存控制方法及设备 |
CN109254981A (zh) * | 2018-08-27 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式缓存***的数据管理方法和装置 |
CN111611225A (zh) * | 2020-05-15 | 2020-09-01 | 腾讯科技(深圳)有限公司 | 数据存储管理方法、查询方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114706925A (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107465767B (zh) | 一种数据同步的方法和*** | |
EP2434758B1 (en) | Distributed node video monitoring system and management method thereof | |
EP3656108B1 (en) | Unstructured data storage function (udsf) services | |
CN111263171A (zh) | 直播流的流媒体数据获取方法、边缘节点区域组网*** | |
CN109063196B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US20070124437A1 (en) | Method and system for real-time collection of log data from distributed network components | |
US9002787B2 (en) | Method and apparatus for tracking device management data changes | |
CN110601981A (zh) | 服务路由方法、服务提供方云域及服务调用方云域 | |
CN109547524B (zh) | 基于物联网的用户行为存储方法、装置、设备及存储介质 | |
CN113973129B (zh) | 一种支持多种注册中心微服务的网关 | |
KR20040111156A (ko) | 통지 본드를 사용하여 캐싱된 오브젝트를 관리하는 시스템및 방법 | |
CN108076081B (zh) | 一种业务数据的同步方法、装置和*** | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN105208058A (zh) | 基于web会话共享的信息交互*** | |
CN113726662B (zh) | 一种微服务路由及管理*** | |
CN112328632B (zh) | 一种分布式两级缓存的方法和*** | |
CN114706925B (zh) | 一种多服务多key值的缓存同步方法、装置及*** | |
CN107180034A (zh) | MySQL数据库的集群*** | |
CN111708775A (zh) | 自增id生成方法、装置及*** | |
CN116260878A (zh) | 一款基于分布式计算、存储的全域业务结构服务化的业务中台*** | |
EP3649532B1 (en) | Methods, systems, databases and network nodes of data communication networks for handling data posts | |
CN115629909A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN115189931A (zh) | 一种分布式密钥管理方法、装置、设备、存储介质 | |
CN113973135A (zh) | 数据缓存处理方法、装置、缓存网格平台和存储介质 | |
US11057463B2 (en) | Method for synchronizing context data of network functions in a mobile network |
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 |