CN112199392A - 缓存管理方法、装置和电子设备 - Google Patents
缓存管理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112199392A CN112199392A CN202010747814.7A CN202010747814A CN112199392A CN 112199392 A CN112199392 A CN 112199392A CN 202010747814 A CN202010747814 A CN 202010747814A CN 112199392 A CN112199392 A CN 112199392A
- Authority
- CN
- China
- Prior art keywords
- sql
- cache
- sql operation
- cache data
- 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
- 238000007726 management method Methods 0.000 title abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2443—Stored procedures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供一种缓存管理方法、装置和电子设备。该方法包括:接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据;根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作。根据本公开,可以提高数据缓存系统的整体速度,且增强系统稳定性。
Description
技术领域
本公开涉及数据库缓存技术领域,尤其涉及一种缓存管理方法、一种缓存管理装置和一种电子设备。
背景技术
随着计算机系统的普及,很多企业都会采用各种相互独立的网络系统、应用系统来实现管理,但这些系统的相互独立性也为企业的整体管理设置了障碍。
ecology协同管理应用平台提供了各系统间的协同管理方案,其自身的可扩展性较强,但较强的扩展性必然导致系统的复杂性,ecology协同管理应用平台和数据库的交互非常频繁,从而后端接口性能不高,大并发场景下会导致系统稳定性问题。
当前已有方案是spring+ehcache,其可以通过Spring框架中的aop(面向切面编程,Aspect Oriented Programming)切面编程做拦截,对涉及到的业务点进行配置,ehcache通过反射来实现切面编程,对高并发的数据库操作进行存入缓存、清除缓存操作,从而提升系统整体性能。
但是由于涉及到的每个业务点都需要手动配置拦截,工作量较大,且需要通过Java虚拟机(Java virtual machine,JVM)反射实现切面拦截,在高并发场景下系统性能不好。
发明内容
本公开实施例提供一种缓存管理方法,可以提高数据缓存系统的整体速度,且增强系统稳定性。
根据本公开实施例的第一方面,提供一种缓存管理方法,所述方法包括:
接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据;
根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作。
可选地,其中,所述SQL操作类型为存储操作;
所述根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作,包括:
根据所述缓存数据,解析出对应的SQL操作表;
以加密SQL操作表作为密钥,对所述缓存数据进行数据结构转换后的结果为所述SQL操作表的值,存储至Java虚拟机内存中。
可选地,其中,存储至所述Java虚拟机内存中的数据结构包括缓存结果、缓存SQL、缓存表名以及缓存监控指标。
可选地,其中,所述SQL操作类型为增加操作、删除操作或修改操作;
所述根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作,包括:
根据所述缓存数据,解析出对应的SQL操作表;
将所述SQL操作表标记为缓存失效。
可选地,其中,所述SQL操作类型为读取操作;
所述根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作,包括:
获取所述缓存数据对应的密钥;
根据所述密钥判断对应的SQL操作表是否存在且有效;
若判断结果为是,从Java虚拟机内存中获取缓存结果;
若判断结果为否,从数据库中获取所述缓存结果。
可选地,其中,所述方法还包括:
通过消息同步请求向集群中的其他服务器同步所述缓存数据。
可选地,其中,所述方法还包括:
采用lru缓存机制控制缓存大小。
可选地,其中,所述方法还包括:
统计当前系统中SQL查询次数、SQL失效次数、SQL缓存时间和缓存命中率,以对所述系统进行监控。
根据本公开实施例的第二方面,提供了一种缓存管理装置,所述装置包括:
接收模块,用于接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据;
执行模块,用于根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器和存储器,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据本公开实施例的第一方面中任一项所述的方法。
根据本公开实施例的第四方面,提供处理器执行时,执行本公开实施例的第一方面中任一项所述的方法。
根据本公开实施例的方法,通过接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据;根据所述SQL操作请求中的 SQL操作类型,对所述缓存数据执行对应的缓存管理操作。根据本公开,可以提高数据缓存系统的整体速度,且增强系统稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本公开实施例的缓存管理方法的示意性流程图;
图2为本公开实施例的SQL缓存数据的数据结构的示意图;
图3为本公开实施例的SQL缓存表的数据结构的示意图;
图4和图5为本公开实施例的缓存监控界面的示意图;
图6为本公开实施例的缓存管理装置的示意性结构图;
图7为本公开实施例的电子设备的示意性结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供一种缓存管理方法。具体的,如图1所示,该方法可以包括如下步骤1100~步骤1200:
步骤1100,接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL 操作类型和缓存数据。
步骤1200,根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作。
本实施例中,ecology应用层与数据库的所有数据库操作都会通过数据源执行SQL操作,通过解析所有的数据库操作,进行缓存数据的存储、读取和失效处理。
在缓存数据的存储过程中,所述SQL操作类型为存储操作;相应的,在执行上述步骤1200时,具体可以根据所述缓存数据,解析出对应的SQL操作表;以加密SQL操作表作为密钥,对所述缓存数据进行数据结构转换后的结果为所述SQL操作表的值,存储至Java虚拟机内存中。
其中,存储至所述Java虚拟机内存中的数据结构包括缓存结果、缓存 SQL、缓存表名以及缓存监控指标。其中,SQL缓存数据的数据结构如图2 所示,SQL缓存表的数据结构如图3所示。
在缓存数据失效过程中,所述SQL操作类型为增加操作、删除操作或修改操作;相应的,执行上述步骤1200时,具体可以根据所述缓存数据,解析出对应的SQL操作表;将所述SQL操作表标记为缓存失效。
在缓存数据读取过程中,所述SQL操作类型为读取操作;相应的,执行上述步骤1200时,具体可以获取所述缓存数据对应的密钥;根据所述密钥判断对应的SQL操作表是否存在且有效;若判断结果为是,从Java虚拟机内存中获取缓存结果;若判断结果为否,从数据库中获取所述缓存结果。
其中,SQL解析机制例如是采用druid高效解析SQL功能和SQL数据结构。本实施例对此不做具体限定。
可选地,本实施例中,还提供一种SQL缓存截裙同步机制,即,通过消息同步请求向集群中的其他服务器同步所述缓存数据。例如,可以在http请求中承载该消息同步请求,也可以在tcp请求中承载该消息同步请求,从而实现集群环境下的缓存同步功能。
可选地,本实施例中,还提供一种缓存控制机制,即,采用lru缓存机制控制缓存大小。例如,可以通过调用concurrentlinkedhashmap-lru-1.0_jdk5 实现缓存大小的控制,同时还可以提供先进先出的缓存策略。
可选地,本实施例中,还提供一种缓存监控机制,即,如图4和图5所示,可以通过采集系统中各项指标,统计当前系统中SQL查询次数、SQL 失效次数、SQL缓存时间和缓存命中率,以对所述系统进行监控。
本实施例的缓存管理方法,通过接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据;根据所述SQL操作请求中的 SQL操作类型,对所述缓存数据执行对应的缓存管理操作。根据本实施例在应用层和数据库交互层以SQL解析为基础,实现了自动化缓存读取、清除处理,减少了开发维护量,同时可以提高数据缓存系统的整体速度,增强系统稳定性。
图6为本公开实施例的缓存管理装置的示意性结构图。
在本实施例中,还提供一种缓存管理装置,如图6所示,本实施例的缓存管理装置3000可以包括:接收模块3100和执行模块3200。
其中,接收模块3100,用于接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据。
执行模块3200,用于根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作。
可选地,所述SQL操作类型为存储操作;所述执行模块3200具体可以用于根据所述缓存数据,解析出对应的SQL操作表;以加密SQL操作表作为密钥,对所述缓存数据进行数据结构转换后的结果为所述SQL操作表的值,存储至Java虚拟机内存中。其中,存储至所述Java虚拟机内存中的数据结构包括缓存结果、缓存SQL、缓存表名以及缓存监控指标。
可选地,所述SQL操作类型为增加操作、删除操作或修改操作;所述执行模块3200具体可以用于根据所述缓存数据,解析出对应的SQL操作表;将所述SQL操作表标记为缓存失效。
可选地,所述SQL操作类型为读取操作;所述执行模块3200具体可以用于获取所述缓存数据对应的密钥;根据所述密钥判断对应的SQL操作表是否存在且有效;若判断结果为是,从Java虚拟机内存中获取缓存结果;若判断结果为否,从数据库中获取所述缓存结果。
进一步地,所述缓存管理装置3000还可以包括同步模块,用于通过消息同步请求向集群中的其他服务器同步所述缓存数据。
进一步地,所述缓存管理装置3000还可以包括控制模块,用于采用lru 缓存机制控制缓存大小。
进一步地,所述缓存管理装置3000还可以包括统计模块,用于统计当前系统中SQL查询次数、SQL失效次数、SQL缓存时间和缓存命中率,以对所述系统进行监控。
本实施例的缓存管理装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本实施例中,还提供一种电子设备,该电子设备可以包括本公开装置实施例中描述的缓存管理装置3000;或者,该电子设备为图7所示的电子设备4000,包括:
处理器和存储器,所述存储器用于存储指令,所述指令用于控制所述处理器执行本公开任意方法实施例中描述的方法。
在电子设备根据所执行的方法实施例的实施主体,可以是服务器,也可以是终端设备。
本实施例提供一种计算机可读存储介质,该存储介质中存储有可执行指令,该可执行指令被处理器执行时,执行本公开任意方法实施例中描述的方法。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种缓存管理方法,所述方法包括:
接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据;
根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作。
2.根据权利要求1所述的方法,其中,所述SQL操作类型为存储操作;
所述根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作,包括:
根据所述缓存数据,解析出对应的SQL操作表;
以加密SQL操作表作为密钥,对所述缓存数据进行数据结构转换后的结果为所述SQL操作表的值,存储至Java虚拟机内存中。
3.根据权利要求2所述的方法,其中,存储至所述Java虚拟机内存中的数据结构包括缓存结果、缓存SQL、缓存表名以及缓存监控指标。
4.根据权利要求1所述的方法,其中,所述SQL操作类型为增加操作、删除操作或修改操作;
所述根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作,包括:
根据所述缓存数据,解析出对应的SQL操作表;
将所述SQL操作表标记为缓存失效。
5.根据权利要求1所述的方法,其中,所述SQL操作类型为读取操作;
所述根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作,包括:
获取所述缓存数据对应的密钥;
根据所述密钥判断对应的SQL操作表是否存在且有效;
若判断结果为是,从Java虚拟机内存中获取缓存结果;
若判断结果为否,从数据库中获取所述缓存结果。
6.根据权利要求1所述的方法,其中,所述方法还包括:
通过消息同步请求向集群中的其他服务器同步所述缓存数据。
7.根据权利要求1所述的方法,其中,所述方法还包括:
采用lru缓存机制控制缓存大小。
8.根据权利要求1所述的方法,其中,所述方法还包括:
统计当前系统中SQL查询次数、SQL失效次数、SQL缓存时间和缓存命中率,以对所述系统进行监控。
9.一种缓存管理装置,所述装置包括:
接收模块,用于接收SQL缓存操作请求;所述SQL操作请求中至少包括SQL操作类型和缓存数据;
执行模块,用于根据所述SQL操作请求中的SQL操作类型,对所述缓存数据执行对应的缓存管理操作。
10.一种电子设备,包括:
处理器和存储器,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747814.7A CN112199392A (zh) | 2020-07-30 | 2020-07-30 | 缓存管理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747814.7A CN112199392A (zh) | 2020-07-30 | 2020-07-30 | 缓存管理方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112199392A true CN112199392A (zh) | 2021-01-08 |
Family
ID=74006113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010747814.7A Pending CN112199392A (zh) | 2020-07-30 | 2020-07-30 | 缓存管理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199392A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104661053A (zh) * | 2013-11-22 | 2015-05-27 | 中兴通讯股份有限公司 | 一种iptv数据处理的方法及系统 |
CN109408529A (zh) * | 2018-11-12 | 2019-03-01 | 广州市千钧网络科技有限公司 | 一种底层数据的处理方法及系统 |
CN111190928A (zh) * | 2019-12-24 | 2020-05-22 | 平安普惠企业管理有限公司 | 缓存处理方法、装置、计算机设备以及存储介质 |
-
2020
- 2020-07-30 CN CN202010747814.7A patent/CN112199392A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104661053A (zh) * | 2013-11-22 | 2015-05-27 | 中兴通讯股份有限公司 | 一种iptv数据处理的方法及系统 |
CN109408529A (zh) * | 2018-11-12 | 2019-03-01 | 广州市千钧网络科技有限公司 | 一种底层数据的处理方法及系统 |
CN111190928A (zh) * | 2019-12-24 | 2020-05-22 | 平安普惠企业管理有限公司 | 缓存处理方法、装置、计算机设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230144450A1 (en) | Multi-partitioning data for combination operations | |
US10678696B2 (en) | Pre-fetching files from buckets in remote storage for a cache based on file usage history | |
CN103914485B (zh) | 一种远程收集和检索展示应用系统日志的系统及方法 | |
CN111177161B (zh) | 数据处理方法、装置、计算设备和存储介质 | |
US6748386B1 (en) | System and method for automated construction of URL, cookie, and database query mapping | |
US20080098041A1 (en) | Server supporting a consistent client-side cache | |
WO2020087082A1 (en) | Trace and span sampling and analysis for instrumented software | |
CN112040429B (zh) | 一种基于分布式存储的短信管理系统及方法 | |
CN111221469B (zh) | 同步缓存数据的方法、装置和系统 | |
CN109167840B (zh) | 一种任务推送方法、节点自治服务器及边缘缓存服务器 | |
US10657099B1 (en) | Systems and methods for transformation and analysis of logfile data | |
CN108369550B (zh) | 实时更改来自不同源的数据 | |
US11178160B2 (en) | Detecting and mitigating leaked cloud authorization keys | |
CN112054923B (zh) | 业务请求检测方法、设备及介质 | |
CN111740868A (zh) | 告警数据的处理方法和装置及存储介质 | |
US20200409566A1 (en) | Key Value Store Using Progress Verification | |
CN114398372A (zh) | 一种数据缓存方法和装置 | |
US11334623B2 (en) | Key value store using change values for data properties | |
WO2021097713A1 (zh) | 分布式安全检测系统、方法、设备及存储介质 | |
CN107659626A (zh) | 面向临时元数据的分离存储方法 | |
CN112199392A (zh) | 缓存管理方法、装置和电子设备 | |
CN108959041B (zh) | 信息发送的方法、服务器及计算机可读存储介质 | |
CN111245880A (zh) | 基于行为轨迹重建的用户体验监控方法及装置 | |
CN113268518B (zh) | 流量统计方法及装置、分布式流量统计系统 | |
CN113596177A (zh) | 智能家居设备的ip地址的解析方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210108 |