CN113778913A - 一种缓存的处理方法、电子设备及计算机存储介质 - Google Patents
一种缓存的处理方法、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN113778913A CN113778913A CN202111076159.8A CN202111076159A CN113778913A CN 113778913 A CN113778913 A CN 113778913A CN 202111076159 A CN202111076159 A CN 202111076159A CN 113778913 A CN113778913 A CN 113778913A
- Authority
- CN
- China
- Prior art keywords
- cache
- operated
- type
- determining
- data
- 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
- 238000003672 processing method Methods 0.000 title abstract description 21
- 238000012545 processing Methods 0.000 claims description 44
- 238000003780 insertion Methods 0.000 claims description 34
- 230000037431 insertion Effects 0.000 claims description 34
- 230000008030 elimination Effects 0.000 claims description 26
- 238000003379 elimination reaction Methods 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 15
- 238000012217 deletion Methods 0.000 description 12
- 230000037430 deletion Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例公开了一种缓存的处理方法,包括:获取针对待操作缓存的CRUD操作,从预设的缓存工厂中获取为待操作缓存的缓存数据生成的出入规则,根据出入规则,从待操作缓存中确定CRUD操作的操作位置,根据CRUD操作和操作位置,处理待操作缓存。本申请实施例还同时提供了一种电子设备及计算机存储介质。
Description
技术领域
本申请涉及缓存的处理技术,尤其涉及一种缓存的处理方法、电子设备及计算机存储介质。
背景技术
目前,复杂重量级分布式缓存的使用,增加了系统的复杂性,使一些简单缓存的应用场景变得复杂;而现有的本地缓存,扩展性较差,无法简单的根据业务需求去拓展缓存策略;使用本地自定义缓存时,大部分开发者都是用简单的键值对MAP结构实现,无法支持一些需动态淘汰的场景;由此可以看出,现有的缓存的处理方法存在固定单一的技术问题。
发明内容
本申请实施例提供一种缓存的处理方法、电子设备及计算机存储介质,能够提高缓存处理的灵活性。
本申请的技术方案是这样实现的:
本申请实施例提供了一种缓存的处理方法,包括:
获取针对待操作缓存的CRUD操作;
从预设的缓存工厂中获取为所述待操作缓存的缓存数据生成的出入规则;
根据所述出入规则,从所述待操作缓存中确定所述CRUD操作的操作位置;
根据所述CRUD操作和所述操作位置,处理所述待操作缓存。
本申请实施例提供了一种电子设备,包括:
第一获取模块,用于获取针对待操作缓存的CRUD操作;
第二获取模块,用于从预设的缓存工厂中获取为所述待操作缓存的缓存数据生成的出入规则;
确定模块,用于根据所述出入规则,从所述待操作缓存中确定所述CRUD操作的操作位置;
处理模块,用于根据所述CRUD操作和所述操作位置,处理所述待操作缓存。
本申请实施例还提供了一种电子设备,包括:处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述一个或多个实施例所述缓存的处理方法。
本申请实施例提供了一种计算机存储介质,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行上述一个或多个实施例所述缓存的处理方法。
本申请实施例提供了一种缓存的处理方法、电子设备及计算机存储介质,包括:获取针对待操作缓存的CRUD操作,从预设的缓存工厂中获取为待操作缓存的缓存数据生成的出入规则,根据出入规则,从待操作缓存中确定CRUD操作的操作位置,根据CRUD操作和操作位置,处理待操作缓存;也就是说,在本申请实施例中,缓存工厂为待操作缓存生成缓存数据的出入规则,在对待操作缓存执行CRUD操作时,通过从预设的缓存工厂中获取为待操作缓存的缓存数据生成的出入规则,可以获知待操作缓存中缓存数据的出入规则,从而就可以从待操作缓存中获取到CRUD操作的操作位置,这样,由于缓冲工厂可以生成缓存数据的出入规则,如此,缓存工厂可以根据实际需求,为待操作缓存的缓存数据生成出入规则,避免单一的出入规则不适用的情况发生,并且,通过缓存工厂更加方便的生成了待操作缓存的缓存数据的出入规则,有利于执行对待操作缓存的CRUD操作,从而提高了缓存处理的灵活性,进而增加了缓存处理的扩展性。
附图说明
图1为本申请实施例提供的一种可选的缓存的处理方法的流程示意图;
图2为本申请实施例提供的一种可选的软件工具包的实例的结构示意图;
图3为本申请实施例提供的一种可选的缓存的处理方法的实例的流程示意图;
图4为本申请实施例提供的一种可选的删除操作对应的代码截图;
图5为本申请实施例提供的一种电子设备的结构示意图一;
图6为本申请实施例提供的一种电子设备的结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
实施例一
本申请实施例提供了一种缓存的处理方法,图1为本申请实施例提供的一种可选的缓存的处理方法的流程示意图,参考图1所示,上述缓存的处理方法可以包括:
S101:获取针对待操作缓存的CRUD操作;
目前,缓存分为三大类,分别为分布式缓存,例如redis,本地缓存,例如caffine,自定义实现缓存,其中,针对分布式缓存来说,由于分布式缓存配置复杂,应用程序接口(API,Application Programming Interface)繁多,使得简单的缓存使用场景变得极为复杂;针对本地缓存来说,本地缓存扩展性较差,较难完成自定义缓存策略的实现;而使用本地自定义缓存时,大部分开发者都是用简单的键值对结构来实现,无法支持一些需动态淘汰的场景;可见,现有的自定义缓存灵活性和扩展性较差。
为了提高缓存处理的灵活性和扩展性,本申请实施例提供一种缓存的处理方法,首先,获取针对待操作缓存的CRUD操作;其中,CRUD操作可以包括插入操作(C),查询操作(R),修改操作(U)和删除操作(D),这里,本申请实施例对此不作具体限定。
为了获取到待操作缓存的CRUD操作,在一种可选的实施例中,S101可以包括:
通过CRUD操作的接口,获取针对待操作缓存的CRUD操作。
具体来说,本申请实施例中针对待操作缓存的CRUD操作中的每一种操作,均提供有对应的接口,例如,针对插入操作,设置有插入接口,针对查询操作,设置有查询接口,针对修改操作,设置有修改接口,针对删除操作,设置有删除接口,那么,可以通过插入接口,获取针对待操作缓存的插入操作,可以通过查询接口,获取针对待操作缓存的查询操作,可以通过修改接口,获取针对待操作缓存的修改操作,可以通过删除接口,获取针对待操作缓存的删除操作。
需要说明的是,本申请实施例中还提供有除了上述接口之外的其他接口,通过本申请实施例提供的接口来实现相应的功能。
S102:从预设的缓存工厂中获取为待操作缓存的缓存数据生成的出入规则;
具体来说,针对待操作缓存来说,缓存工厂预先为待操作缓存的缓存数据生成出入规则,这样,待操作缓存按照生成的出入规则来处理缓存数据。
那么,当接收到待操作缓存的CRUD操作时,为了实现对待操作缓存的CRUD操作,需要先从预设的缓存工厂中获取待操作缓存的缓存数据的出入规则,以根据出入规则来实现对待操作缓存的CRUD操作,其中,上述出入规则可以包括:先进先出,先进后出,随机进出,按照权重进出等等,本申请实施例对此不作具体限定。
这里,通过缓存工厂,基于工厂模式,为缓存的缓存数据生成出入规则,避免固定单一的出入规则对缓存方案的限制,通过缓存工厂可以方便的为缓存生成出入规则,以提高缓存的灵活性和扩展性。
S103:根据出入规则,从待操作缓存中确定CRUD操作的操作位置;
在获取到待操作缓存的缓存数据的出入规则之后,针对每一种CRUD操作,按照出入规则,可以确定出操作位置,具体来说,以出入规则为先进先出时,以插入操作为例来说,为了将插入操作携带的数据插入至待操作缓存中,根据出入规则可以确定出插入操作中携带的插入数据的插入位置,也就是操作位置,若待操作缓存已满,将待操作缓存中最先进入的缓存数据删除掉即可。
这样,在确定出操作位置之后,就可以针对操作位置执行CRUD操作,也就是说,在获知出入规则的基础上可以很方便的获知CRUD操作的操作位置,有利于缓存的处理。
S104:根据CRUD操作和操作位置,处理待操作缓存。
具体来说,针对CRUD操作中的每一种操作来说,处理待操作缓存的方式不同,在一种可选的实施例中,S104可以包括:
当CRUD操作为针对插入数据的插入操作时,将插入数据增加至操作位置;
当CRUD操作为删除操作时,将操作位置上的缓存数据删除。
也就是说,针对插入操作,该插入操作的目的是将插入数据插入至待操作缓存中,为了将插入数据插入至待操作缓存中,首先需要确定插入数据的插入位置,也就是上述操作位置,这里,根据出入规则可以确定操作位置,例如,以先进先出为例来说,当前需要插入的插入数据需要放置在上一个插入数据之后的位置上,这样,便可以确定出插入操作的操作位置,就可以将插入数据插入至待操作缓存中的操作位置中,以便实现先进先出的出入规则。
针对删除操作来说,该删除操作的目的是对待操作缓存中的缓存数据进行删除,为了删除待操作缓存中的缓存数据,首先需要确定所要删除的缓存数据的操作位置,也就是上述操作位置,这里,根据出入规则可以确定操作位置,例如,以先进先出为例来说,当前需要删除掉的缓存数据应该为最早进入的缓存数据,这样,便可以确定出删除操作的操作位置,就可以从操作位置上将最早进入的缓存数据删除掉,以便实现先进先出的出入规则。
通过上述缓存的处理方法可以实现对缓存中缓存数据的插入和删除,利用缓存工厂生成不同的出入规则,有利于实现对不同缓存的处理方式。
为了实现对不同缓存的不同处理,在一种可选的实施例中,上述方法还可以包括:
确定待操作缓存的类型;
根据预设的缓存的类型与出入规则之间的对应关系,确定待操作缓存的类型对应的出入规则;
将待操作缓存的类型对应的出入规则,确定为待操作缓存的缓存数据的出入规则。
具体来说,先确定待操作缓存的类型,并且,预先设置有缓存的类型与出入规则之间的对应关系,即,针对不同缓存的类型设置有对应的出入规则,与现有的缓存设置固定单一的出入规则相比,提高了缓存的灵活性。
这里,针对不同类型的缓存设置有对应的出入规则,那么,在执行CRUD操作时,根据不同类型的缓存,插入操作和删除操作的处理方式是不同的,以先进先出为例,针对插入操作,将插入数据插入至上一个插入数据之后的位置上,针对删除操作,删除缓存中最先进入的缓存数据,以出入规则为按照数据的权重值出入为例,针对插入数据,将插入数据的权重值放入缓存数据的权重值中进行排序,将排序结果中排在插入数据的权重值的前面的权重值所属的缓存数据之后的位置,确定为插入数据的插入位置,针对删除操作类似,这里不再赘述。
另外,为了实现对不同缓存的不同处理,在一种可选的实施例中,上述方法还可以包括:
确定待操作缓存的类型;
根据预设的缓存的类型与淘汰策略之间的对应关系,确定待操作缓存的类型对应的淘汰策略;
将待操作缓存的类型对应的淘汰策略,确定为待操作缓存的缓存数据的淘汰策略。
也就是说,预先设置有缓存的类型与淘汰策略之间的对应关系,即,针对不同缓存的类型设置有对应的淘汰策略,这里,按照淘汰策略可以删除缓存中的缓存数据,其中,淘汰策略可以是定时淘汰策略,也可以是随机淘汰策略,还可以是将缓存数据进行迁移的淘汰策略,这里,本申请实施例对此不作具体限定;与现有的缓存设置固定单一的淘汰策略相比,提高了缓存的灵活性。
这里,针对不同类型的缓存设置有对应的淘汰策略,那么,在执行CRUD操作时,根据不同类型的缓存,淘汰策略是不同的,以淘汰策略为每30分钟清空缓存中的缓存数据为例,每隔30分钟,清空缓存中的缓存数据,以淘汰策略为每隔30分钟按照权重值删除权重缓存中的缓存数据为例,每隔30分钟,删除权重值低于预设阈值的缓存数据。
进一步地,为了实现对不同缓存的不同处理,在一种可选的实施例中,上述方法还可以包括:
确定待操作缓存的类型;
根据预设的缓存的类型与异常处理策略之间的对应关系,确定待操作缓存的类型对应的异常处理策略;
将待操作缓存的类型对应的异常处理策略,确定为待操作缓存的缓存数据的异常处理策略。
也就是说,预先设置有缓存的类型与异常处理策略之间的对应关系,即,针对不同缓存的类型设置有对应的异常处理策略,这里,按照异常处理策略可以处理缓存的缓存数据,其中,异常处理策略可以是针对特定的操作进行提示,其中,特定的操作可以为针对特定数据的插入操作,也可以是针对特定数据的查询操作,还可以是针对特定数据的修改操作,这里,本申请实施例对此不作具体限定;与现有的缓存设置固定单一的异常处理策略相比,提高了缓存的灵活性。
这里,针对不同类型的缓存设置有对应的异常处理策略,那么,在执行CRUD操作时,根据不同类型的缓存,异常处理策略是不同的,以异常处理策略为针对特定数据的插入操作,当利用切面技术捕获到操作信息中包含特定数据的插入操作时,生成用于提示出现异常的信息。
为了确定出待操作的缓存的类型,在一种可选的实施例中,确定待操作缓存的类型包括:
当待操作缓存用于存储中央处理器(CPU,Central Processing Unit)的内存中的数据时,确定待操作缓存的类型为CPU缓存;
当待操作缓存用于存储浏览器中的数据时,确定待操作缓存的类型为浏览器缓存;
当待操作缓存用于存储内容分发网络(CDN,Content Delivery Network)中的数据时,确定待操作缓存的类型为CDN缓存;
当待操作缓存用于存储数据库中的数据时,确定待操作缓存的类型为数据库缓存。
具体来说,可以缓存分为CPU缓存,浏览器缓存,CDN缓存和数据库缓存等等,这里,本申请实施例对此不作具体限定。
这里,可以根据待操作缓存的用途来对待操作缓存进行分类,当待操作缓存用于存储CPU的内存中的数据时,确定待操作缓存的类型为CPU缓存,该CPU缓存的容量比内存小的多,但是,交换速度确比内存快得多;当待操作缓存用于存储浏览器中的数据时,确定待操作缓存的类型为浏览器缓存,该浏览器缓存可以缓存一些静态资源,例如图片,js,css等,这些都是不常变化的内容,所以没有必要每次都去请求;同样地,当待操作缓存用于存储CDN中的数据时,确定待操作缓存的类型为CDN缓存,其中,客户端会先检查浏览器的缓存,若缓存过期则会像CDN发送请求,CDN检查缓存数据还未过期,那么直接返回响应,只需两步搞定,但是,CDN缓存过期,那么需要向应用服务器发起请求,获得新的数据响应,这部分新的数据按一定的缓存策略会选择是否缓存在CDN中;当待操作缓存用于存储数据库中的数据时,确定待操作缓存的类型为CDN缓存,其中,在应用服务器和数据库之间加缓存,是因为存入缓存的数据都具有持久化的特点,那么读写会有磁盘输入输出(IO,InputOutput)的操作,内存的读写速度远比磁盘快得多。
针对特定操作和特定异常,为了捕捉到特定操作和特定异常,在一种可选的实施例中,上述方法还可以包括:
利用切面技术捕获待操作缓存的操作信息;
当操作信息中包含特定操作的操作信息时,生成第一提示信息;其中,第一提示信息用于提示待操作缓存出现特定操作;
当操作信息中包含用于指示发生特定异常的信息时,生成第二提示信息;其中,第二提示信息用于提示待操作缓存出现特定异常。
具体来说,针对缓存中发生的所有操作,可以利用切面技术进行监听,已捕获待操作缓存的操作信息,该操作信息可以包括插入操作的操作信息,查询操作的操作信息,修改操作的操作信息,删除操作的操作信息等等,这里,本申请实施例对此不作具体限定。
另外,在对缓存进行操作的过程中很可能会出现异常操作,所以,这里,需要在捕获到待操作缓存的操作信息之后判断操作信息中是否包含特定操作的操作信息,或者是否包含用于指示发生特定异常的信息,当操作信息中包含特定操作的操作信息时,生成用于提示待操作缓存出现特定操作的信息,用于提示用于该待操作缓存出现特定操作,例如,以该特定操作为插入特定数据的插入操作,当操作信息中包含插入特定数据的插入操作的操作信息时,生成第一提示信息。
当操作信息中包含用于指示发生特定异常的信息时,生成用于提示待操作缓存出现特定异常的信息,用于提示用于该待操作缓存出现特定异常,例如,该特定异常为清空缓存中的数据,当操作信息中包含指示清空缓存中的数据的信息时,生成第二提示信息;另外,当出现特定异常时,针对待操作缓存的类型,可以采用特定异常相对应的异常处理策略来处理特定异常。
下面举实例来对上述一个或多个实施例中所述的缓存的处理方法进行说明。
图2为本申请实施例提供的一种可选的软件工具包的实例的结构示意图,如图2所示,本实例涉及的软件工具包可以嵌套在任意一个软件系统,在系统中通过注解完成配置工作,具体的技术架构如图2所示包括:缓存工厂,缓存接口,缓存实现,缓存监听器,缓存异常处理和统一日志处理。
其中,缓存工厂是:基于工厂模式,所有类型的缓存均从该工厂生成,用户只需注入该工厂即可实现所有缓存的即时试用。
缓存接口:通过将缓存的共性行为抽象为接口的方式,例如,插入缓存、查询缓存、清空缓存等行为,再由具体缓存类型实现自己的差异性特征,如不同的淘汰策略,不同的监听机制。
缓存监听器:利用软件系统的“切面”机制,可监听缓存中发生的具体行为,并做出一些个性化处理。如插入特定缓存时,发出报警、发送邮件等,可由用户在缓存监听器中自由实现,消息队列发给监听处理器。
统一异常处理和统一日志处理:配置异常处理的统一切面,对缓存中发生的异常发生捕获,针对特定异常进行个性化处理,如异常清空失败需提示给用户等;配置日志处理的统一切面,对缓存中发生的特定日志进行捕获,针对特定日志进行个性化处理。
图3为本申请实施例提供的一种可选的缓存的处理方法的实例的流程示意图,如图3所示,缓存的处理方法可以包括:
S301:获取缓存工厂;
S302:从缓存工厂中获取缓存类型;
其中,缓存类型相当于上述缓存数据的出入规则。
S303:对缓存执行CRUD操作;
S304:返回操作结果;
其中,上述S301-S304为一次正常的缓存处理流程,如果缓存中未出现异常,则在此流程内正常返回操作结果。
S305:捕获缓存中的特定操作;
S306:对特定操作进行处理;
S307:捕获缓存中的特定异常;
S308:对特定异常进行处理。
具体来说,缓存监听器利用切面技术捕获特定操作,利用切面技术捕获特定异常,“缓存监听器”和“统一异常处理”可在软件系统内进行动态扩展,不影响正常的业务流程,与软件系统的其他模块为解耦状态,较为轻量级。
如果在操作过程中,任何一个流程节点发成了异常,均会被“统一异常处理”以切面的形式进行捕获,不会放过任何一个没有被处理的异常。按照如下流程进行技术处理:
在进行缓存操作时,利用切面技术,捕获在进行CRUD操作时的所有异常,并在捕获异常调用异常处理方法,各个异常进行特异性的处理,保证发生异常用户可清晰知道异常发生原因和解决方法。
本实例中的方法可以用于以下业务场景中:
第一种,基础使用场景
i.后端开发人员将缓存工具包引入自己的软件系统。
ii.通过注入缓存工厂的方式拿到特定类型的缓存。
iii.使用生成的特定缓存进行缓存的操作。
第二种,高阶使用场景
i.后端开发人员将缓存工具引入自己的软件系统。
ii.自定义缓存实现缓存工具中的缓存接口,自定义淘汰策略,监听方式等。
iii.通过注入缓存工厂的方式拿到自定义类型的缓存。
iv.使用生成的自定义缓存进行缓存的操作。
具体地工具使用方式为:在需使用缓存的类中,注入缓存工厂;根据特定业务场景,实现缓存监听策略;利用生成缓存进行一系列缓存操作。
图4为本申请实施例提供的一种可选的删除操作对应的代码截图,如图4所示,由于缓存容量只有3,当加入第四个元素的时候,根据先进先出(FIFO,First Input FirstOutput)规则,最先房屋的对象将被移除。
通过上述实例,对于基本的缓存应用场景,用户可直接从缓存工厂中生产内置缓存,可即时使用,并且具备一定的拓展性,用户可自定义监听策略、异常处理机制等,使用门槛低;对于复杂缓存应用场景,用户可自定义缓存实现类,实现缓存接口,完成系统内特异性缓存的实现和使用,拓展成本低。
本申请实施例提供了一种缓存的处理方法,包括:获取针对待操作缓存的CRUD操作,从预设的缓存工厂中获取为待操作缓存的缓存数据生成的出入规则,根据出入规则,从待操作缓存中确定CRUD操作的操作位置,根据CRUD操作和操作位置,处理待操作缓存;也就是说,在本申请实施例中,缓存工厂为待操作缓存生成缓存数据的出入规则,在对待操作缓存执行CRUD操作时,通过从预设的缓存工厂中获取为待操作缓存的缓存数据生成的出入规则,可以获知待操作缓存中缓存数据的出入规则,从而就可以从待操作缓存中获取到CRUD操作的操作位置,这样,由于缓冲工厂可以生成缓存数据的出入规则,如此,缓存工厂可以根据实际需求,为待操作缓存的缓存数据生成出入规则,避免单一的出入规则不适用的情况发生,并且,通过缓存工厂更加方便的生成了待操作缓存的缓存数据的出入规则,有利于执行对待操作缓存的CRUD操作,从而提高了缓存处理的灵活性,进而增加了缓存处理的扩展性。
实施例二
图5为本申请实施例提供的一种电子设备的结构示意图一,如图5所示,包括:第一获取模块51,第二获取模块52,确定模块53和处理模块54;其中,
第一获取模块51,用于获取针对待操作缓存的CRUD操作;
第二获取模块52,用于从预设的缓存工厂中获取为待操作缓存的缓存数据生成的出入规则;
确定模块53,用于根据出入规则,从待操作缓存中确定CRUD操作的操作位置;
处理模块54,用于根据CRUD操作和操作位置,处理待操作缓存。
可选的,第一获取模块51,具体用于:
通过CRUD操作的接口,获取针对待操作缓存的CRUD操作。
可选的,上述电子设备还用于:
确定待操作缓存的类型;
根据预设的缓存的类型与出入规则之间的对应关系,确定待操作缓存的类型对应的出入规则;
将待操作缓存的类型对应的出入规则,确定为待操作缓存的缓存数据的出入规则。
可选的,上述电子设备还用于:
确定待操作缓存的类型;
根据预设的缓存的类型与淘汰策略之间的对应关系,确定待操作缓存的类型对应的淘汰策略;
将待操作缓存的类型对应的出入规则,确定为待操作缓存的缓存数据的淘汰策略。
可选的,上述电子设备还用于:
确定待操作缓存的类型;
根据预设的缓存的类型与异常处理策略之间的对应关系,确定待操作缓存的类型对应的异常处理策略;
将待操作缓存的类型对应的异常处理策略,确定为待操作缓存的缓存数据的异常处理策略。
可选的,上述电子设备确定待操作缓存的类型中,包括:
当待操作缓存用于存储CPU的内存中的数据时,确定待操作缓存的类型为CPU缓存;
当待操作缓存用于存储浏览器中的数据时,确定待操作缓存的类型为浏览器缓存;
当待操作缓存用于存储CDN中的数据时,确定待操作缓存的类型为CDN缓存;
当待操作缓存用于存储数据库中的数据时,确定待操作缓存的类型为数据库缓存。
可选的,处理模块54,具体用于:
当CRUD操作为针对插入数据的插入操作时,将插入数据增加至操作位置;
当所述CRUD操作为删除操作时,将操作位置上的缓存数据删除。
在实际应用中,上述第一获取模块51、第二获取模块52、确定模块53和处理模块54可由位于电子设备上的处理器实现,具体为中央处理器(CPU,Central Processing Unit)、微处理器(MPU,Microprocessor Unit)、数字信号处理器(DSP,Digital SignalProcessing)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现。
图6为本申请实施例提供的一种电子设备的结构示意图二,如图6所示,本申请实施例提供了一种电子设备600,包括:
处理器61以及存储有所述处理器61可执行指令的存储介质62,所述存储介质62通过通信总线63依赖所述处理器61执行操作,当所述指令被所述处理器61执行时,执行上述实施例一所述的缓存的处理方法。
需要说明的是,实际应用时,终端中的各个组件通过通信总线63耦合在一起。可理解,通信总线63用于实现这些组件之间的连接通信。通信总线63除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为通信总线63。
本申请实施例提供了一种计算机存储介质,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行实施例一所述的缓存的处理方法。
其中,计算机可读存储介质可以是磁性随机存取存储器(ferromagnetic randomaccess memory,FRAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (11)
1.一种缓存的处理方法,其特征在于,包括:
获取针对待操作缓存的CRUD操作;
从预设的缓存工厂中获取为所述待操作缓存的缓存数据生成的出入规则;
根据所述出入规则,从所述待操作缓存中确定所述CRUD操作的操作位置;
根据所述CRUD操作和所述操作位置,处理所述待操作缓存。
2.根据权利要求1所述的方法,其特征在于,所述获取针对待操作缓存的CRUD操作,包括:
通过所述CRUD操作的接口,获取针对所述待操作缓存的CRUD操作。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述待操作缓存的类型;
根据预设的缓存的类型与出入规则之间的对应关系,确定所述待操作缓存的类型对应的出入规则;
将所述待操作缓存的类型对应的出入规则,确定为所述待操作缓存的缓存数据的出入规则。
4.根据权利要求1所述方法,其特征在于,所述方法还包括:
确定所述待操作缓存的类型;
根据预设的缓存的类型与淘汰策略之间的对应关系,确定所述待操作缓存的类型对应的淘汰策略;
将所述待操作缓存的类型对应的出入规则,确定为所述待操作缓存的缓存数据的淘汰策略。
5.根据权利要求1所述方法,其特征在于,所述方法还包括:
确定所述待操作缓存的类型;
根据预设的缓存的类型与异常处理策略之间的对应关系,确定所述待操作缓存的类型对应的异常处理策略;
将所述待操作缓存的类型对应的异常处理策略,确定为所述待操作缓存的缓存数据的异常处理策略。
6.根据权利要求3至5任一项所述方法,其特征在于,所述确定所述待操作缓存的类型,包括:
当所述待操作缓存用于存储CPU的内存中的数据时,确定所述待操作缓存的类型为CPU缓存;
当所述待操作缓存用于存储浏览器中的数据时,确定所述待操作缓存的类型为浏览器缓存;
当所述待操作缓存用于存储CDN中的数据时,确定所述待操作缓存的类型为CDN缓存;
当所述待操作缓存用于存储数据库中的数据时,确定所述待操作缓存的类型为数据库缓存。
7.根据权利要求1所述的方法,其特征在于,所述根据所述CRUD操作和所述操作位置,处理所述待操作缓存,包括:
当所述CRUD操作为插入数据的插入操作时,将所述插入数据增加至所述操作位置;
当所述CRUD操作为删除操作时,将所述操作位置上的缓存数据删除。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用切面技术捕获所述待操作缓存的操作信息;
当所述操作信息中包含特定操作的操作信息时,生成第一提示信息;其中,所述第一提示信息用于提示所述待操作缓存出现特定操作;
当所述操作信息中包含用于指示发生特定异常的信息时,生成第二提示信息;其中,所述第二提示信息用于提示所述待操作缓存出现特定异常。
9.一种电子设备,其特征在于,包括:
第一获取模块,用于获取针对待操作缓存的CRUD操作;
第二获取模块,用于从预设的缓存工厂中获取为所述待操作缓存的缓存数据生成的出入规则;
确定模块,用于根据所述出入规则,从所述待操作缓存中确定所述CRUD操作的操作位置;
处理模块,用于根据所述CRUD操作和所述操作位置,处理所述待操作缓存。
10.一种电子设备,其特征在于,包括:处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述的权利要求1至8任一项所述的缓存的处理方法。
11.一种计算机存储介质,其特征在于,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行所述的权利要求1至8任一项所述的缓存的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076159.8A CN113778913A (zh) | 2021-09-14 | 2021-09-14 | 一种缓存的处理方法、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076159.8A CN113778913A (zh) | 2021-09-14 | 2021-09-14 | 一种缓存的处理方法、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113778913A true CN113778913A (zh) | 2021-12-10 |
Family
ID=78843778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111076159.8A Pending CN113778913A (zh) | 2021-09-14 | 2021-09-14 | 一种缓存的处理方法、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778913A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032966A1 (en) * | 2013-07-29 | 2015-01-29 | Wipro Limited | System and method for application level caching |
CN107704401A (zh) * | 2017-11-02 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种存储系统中缓存数据的置换方法、系统及存储系统 |
CN109446225A (zh) * | 2018-09-26 | 2019-03-08 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN110147331A (zh) * | 2019-05-16 | 2019-08-20 | 重庆大学 | 缓存数据处理方法、系统及可读存储介质 |
CN110278124A (zh) * | 2019-06-18 | 2019-09-24 | 努比亚技术有限公司 | 线上接口的监控方法、装置以及计算机可读存储介质 |
CN110471615A (zh) * | 2018-05-10 | 2019-11-19 | 杭州宏杉科技股份有限公司 | 一种数据写入方法及装置 |
CN110737680A (zh) * | 2019-09-23 | 2020-01-31 | 贝壳技术有限公司 | 缓存数据管理方法、装置、存储介质及电子设备 |
CN110929195A (zh) * | 2019-11-21 | 2020-03-27 | 望海康信(北京)科技股份公司 | 数据的缓存策略确定方法、装置以及电子设备 |
CN111427854A (zh) * | 2020-03-23 | 2020-07-17 | 深圳震有科技股份有限公司 | 支持存储批量数据的栈结构实现方法及装置、设备、介质 |
CN112487029A (zh) * | 2020-11-11 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 渐进式缓存淘汰方法、装置、电子设备和存储介质 |
-
2021
- 2021-09-14 CN CN202111076159.8A patent/CN113778913A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032966A1 (en) * | 2013-07-29 | 2015-01-29 | Wipro Limited | System and method for application level caching |
CN107704401A (zh) * | 2017-11-02 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种存储系统中缓存数据的置换方法、系统及存储系统 |
CN110471615A (zh) * | 2018-05-10 | 2019-11-19 | 杭州宏杉科技股份有限公司 | 一种数据写入方法及装置 |
CN109446225A (zh) * | 2018-09-26 | 2019-03-08 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN110147331A (zh) * | 2019-05-16 | 2019-08-20 | 重庆大学 | 缓存数据处理方法、系统及可读存储介质 |
CN110278124A (zh) * | 2019-06-18 | 2019-09-24 | 努比亚技术有限公司 | 线上接口的监控方法、装置以及计算机可读存储介质 |
CN110737680A (zh) * | 2019-09-23 | 2020-01-31 | 贝壳技术有限公司 | 缓存数据管理方法、装置、存储介质及电子设备 |
CN110929195A (zh) * | 2019-11-21 | 2020-03-27 | 望海康信(北京)科技股份公司 | 数据的缓存策略确定方法、装置以及电子设备 |
CN111427854A (zh) * | 2020-03-23 | 2020-07-17 | 深圳震有科技股份有限公司 | 支持存储批量数据的栈结构实现方法及装置、设备、介质 |
CN112487029A (zh) * | 2020-11-11 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 渐进式缓存淘汰方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
江勇、苗宗利等: "基于变化数据捕获机制的分布式缓存一致性策略", 计算机系统应用, vol. 25, no. 12, 15 December 2016 (2016-12-15), pages 149 - 154 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200133750A1 (en) | Methods, apparatus and computer programs for managing persistence | |
US9361165B2 (en) | Automated merger of logically associated messages in a message queue | |
US8301433B2 (en) | Software behavior modeling apparatus, software behavior monitoring apparatus, software behavior modeling method, and software behavior monitoring method | |
US8407789B1 (en) | Method and system for dynamically optimizing multiple filter/stage security systems | |
CN106021445A (zh) | 一种加载缓存数据的方法及装置 | |
CN109710185A (zh) | 数据处理方法及装置 | |
CN109213604B (zh) | 一种数据源的管理方法和装置 | |
CN106649120A (zh) | 一种数据获取方法、分析方法及系统 | |
CN109408469A (zh) | 过期数据文件处理方法、装置、电子装置及存储介质 | |
CN112084005A (zh) | 一种容器行为审计方法、装置、终端及存储介质 | |
CN112799925A (zh) | 数据采集方法、装置、电子设备和可读存储介质 | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN111078418B (zh) | 操作同步方法、装置、电子设备及计算机可读存储介质 | |
CN117251431A (zh) | 业务数据的抛账处理方法、装置、设备及存储介质 | |
CN113778913A (zh) | 一种缓存的处理方法、电子设备及计算机存储介质 | |
CN107193721B (zh) | 一种生成日志的方法和装置 | |
CN114090514A (zh) | 分布式系统的日志检索方法及装置 | |
CN110795408A (zh) | 基于对象存储的数据处理方法、装置、服务器和存储介质 | |
CN117194298B (zh) | 一种控制方法、装置、设备及存储介质 | |
CN114513558B (zh) | 用户请求的处理方法和装置 | |
CN112015758B (zh) | 产品取码方法、装置、计算机设备和存储介质 | |
CN112988208B (zh) | 数据更新方法、装置、设备及存储介质 | |
CN116645182A (zh) | 一种银行业务系统及其数据采集方法、服务器及介质 | |
CN112506971A (zh) | 一种基于redis的自动化数据缓存方法及系统 | |
CN114430395A (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 |