一种通用SQL数据缓存共享方法及装置制造方法及图纸

技术编号:38096226 阅读:7 留言:0更新日期:2023-07-06 09:11
本发明专利技术公开了涉及一种通用SQL数据缓存共享方法及装置。本发明专利技术中的一种通用SQL数据缓存共享方法包括:接收SQL语句和参数请求,经预处理生成SQL指令;根据杂凑算法和正则表达式分别得到SQL指令对应的摘要和SQL语句所含的表名及语句类别;属数据库查询语句类别,则根据摘要到缓存数据库、关系型数据库中按设定策略查询处理并返回结果;属数据库操作语句类别,则清除缓存数据库中表名所涉及的SQL历史查询结果。本发明专利技术提供的一种通用SQL数据缓存共享方法及装置,使得异构应用系统之间和集群式部署的应用系统能便捷、无缝地共享SQL数据缓存服务,节约了服务器的内存和算力资源,甚至服务器数量。至服务器数量。至服务器数量。

【技术实现步骤摘要】
一种通用SQL数据缓存共享方法及装置


[0001]本专利技术涉及数字数据处理领域,尤其涉及一种通用SQL数据缓存共享方法及装置。

技术介绍

[0002]随着各行业数字化的快速发展,各类业务系统数量及数据量与日俱增,用户越发关注系统的响应速度体验,在数据缓存技术日趋成熟情况下,大多数业务系统都引入第三方数据缓存技术以提升系统查询响应速度。
[0003]现有的第三方数据缓存技术只提供通用数据存取调用API,基于关系型数据库的前置SQL数据查询缓存策略需依赖技术人员结合具体需求编写相应的代码实现,代码质量参差不齐,且难以复用。当异构应用系统共用关系型数据库时,各系统之间也无法便捷无缝地共享SQL数据缓存服务,浪费了服务器的内存和算力资源,甚至服务器数量。

技术实现思路

[0004]本专利技术针对现有技术的不足,提供了一种通用SQL数据缓存共享方法及装置。
[0005]本专利技术中的一种通用SQL数据缓存共享方法包括如下步骤:接收SQL语句和参数请求,经预处理生成SQL指令。
[0006]根据杂凑算法和正则表达式分别得到SQL指令对应的摘要和SQL语句所含的表名及语句类别。
[0007]属数据库查询语句类别,则根据摘要到缓存数据库、关系型数据库中按设定策略查询处理并返回结果;属数据库操作语句类别,则清除缓存数据库中表名所涉及的SQL历史查询结果。
[0008]进一步地,所述参数包含数据源标识和与执行SQL语句相匹配的参数值,所述预处理为SQL语句和参数内容的前后拼接处理
[0009]进一步地,所述杂凑算法又称为哈希函数,是一种把任意长度的消息压缩到比原消息长度短得多的固定长度的输出,SQL指令内容经UTF

8编码转换为byte数组后供其调用,生成的摘要数据长度为64位,所述正则表达式是指用来匹配符合表名和语句类别的句法规则字符串,所述语句类别包含数据库查询语句类别和数据库操作语句类别,其中数据库查询语句类别是指以select关键字开头的SQL语句,数据库操作语句类别是指以insert、update和delete关键字开头的SQL语句。
[0010]进一步地,所述缓存数据库为K

V型内存数据库,是使用键值(key

value)存储的数据库,其数据按照键值对的形式进行组织、索引和存储。
[0011]进一步地,所述属数据库查询语句类别,则根据摘要到缓存数据库、关系型数据库中按设定策略查询处理并返回结果;属数据库操作语句类别,则清除缓存数据库中表名所涉及的SQL历史查询结果,具体包括如下步骤:属数据库查询语句类别,首先根据摘要字符串到缓存数据库的key中查询,如存在以此为key的value内容则直接返回value结果,如不存在则根据SQL语句和参数到关系型数
据库中查询并返回结果,同时以异步线程执行方式将结果作为value存储到以摘要字符串为key的缓存数据库中,并登记摘要内容到以SQL语句所含的表名+数据源标识为key的Set集合型value中,SQL语句如有涉及多个表名,则分别登记。
[0012]属数据库操作语句类别,则以异步线程执行方式,根据SQL语句所含的表名+数据源标识到缓存数据库key中查询,如存在以此表名+数据源标识为key的Set集合型value,则获取集合中的摘要内容清单后遍历删除以此为key的缓存,SQL语句如有涉及多个表名则分别处理,直至清除缓存数据库中表名涉及的所有SQL历史查询结果。
[0013]本专利技术的另一个方面还公开了一种通用SQL数据缓存共享装置,其中,所述通用SQL数据缓存共享装置被设置为执行如上所述的通用SQL数据缓存共享方法的步骤。
[0014]本专利技术的再一个方面还公开了一种计算机设备,包括存储器及处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上所述的通用SQL数据缓存共享方法的步骤。
[0015]本专利技术的又一个方面还公开了一种程序元件,当在通用SQL数据缓存共享设备上执行所述程序元件时,所述程序元件指示所述通用SQL数据缓存共享设备执行根据权利要求1至5中任一项所述的通用SQL数据缓存共享方法的步骤。
[0016]本专利技术的又一个方面还公开了一种计算机可读介质,在所述计算机可读介质上存储有如上所述的程序元件。
[0017]本专利技术的有益效果:本专利技术提供了一种通用SQL数据缓存共享方法及装置,基于关系型数据库的前置SQL数据查询缓存策略无需依赖技术人员重复编码实现,系统代码得以便捷复用,同时当异构应用系统之间和集群式部署的应用系统共用关系型数据库时,各系统之间可以便捷无缝地共享SQL数据缓存服务,节约了服务器的内存和算力资源,甚至服务器数量。
附图说明
[0018]图1为本专利技术实施例的通用SQL数据缓存共享方法的方法流程图。
[0019]图2为本专利技术实施例的数据库查询语句请求示意性流程图。
实施方式
[0020]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有实施例都属于本专利技术保护的范围。
[0021]在本专利技术中,当一个要素“包括”另一要素时,只要没有特别相反的记载,则意味着还可以包括其他要素,而并非意味着排除其他要素。
[0022]以下结合附图,详细说明本申请实施例提供的技术方案。
[0023]图1为本申请一实施例提供的通用SQL数据缓存共享方法的方法流程图,如图1所述,该方法包括:步骤S1,接收SQL语句和参数请求,经预处理生成SQL指令。
[0024]在本实施例中,所述参数包含数据源标识和与执行SQL语句相匹配的参数值,所述
预处理为SQL语句和参数内容的前后拼接处理生成SQL指令,比如“select * from test where id=?”+“1”+“mysql01”,多个参数则按顺序组合。
[0025]步骤S2,根据杂凑算法和正则表达式分别得到SQL指令对应的摘要和SQL语句所含的表名及语句类别。
[0026]在本实施例中,所述凑算法又称为哈希函数,是一种把任意长度的消息压缩到比原消息长度短得多的固定长度的输出,包括SM3国密算法,所述SQL指令内容经UTF

8编码转换为byte数组后供其调用,生成的摘要数据长度为64位,如“859C09AC8E524B1CD631AEFEEB2F016D1ADCE821D9CAA9F589EB70BCB7457BE0”。所述正则表达式是指用来匹配符合表名和语句类别的句法规则字符串,比如用于匹配SQL语句所含的表名为“(?<=(\\sfrom|\\sinto|update|\\sjoin)\\本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通用SQL数据缓存共享方法,其特征在于,所述方法包括如下步骤:S1、接收SQL语句和参数请求,经预处理生成SQL指令;S2、根据杂凑算法和正则表达式分别得到SQL指令对应的摘要和SQL语句所含的表名及语句类别;S3、属数据库查询语句类别,则根据摘要到缓存数据库、关系型数据库中按设定策略查询处理并返回结果;属数据库操作语句类别,则清除缓存数据库中表名所涉及的SQL历史查询结果。2.根据权利要求1所述的方法,其特征在于,所述S1的参数包含数据源标识和与执行SQL语句相匹配的参数值,所述预处理为SQL语句和参数内容的前后拼接处理。3.根据权利要求1所述的方法,其特征在于,所述S2的杂凑算法又称为哈希函数,是一种把任意长度的消息压缩到比原消息长度短得多的固定长度的输出,SQL指令内容经UTF

8编码转换为字节数组后供其调用,生成的摘要数据长度为64位,所述S2的正则表达式是指用来匹配符合表名和语句类别的句法规则字符串,所述S2的语句类别包含数据库查询语句类别和数据库操作语句类别,其中数据库查询语句类别是指以select关键字开头的SQL语句,数据库操作语句类别是指以insert、update和delete关键字开头的SQL语句。4.根据权利要求1所述的方法,其特征在于,所述S3的缓存数据库为K

V型内存数据库,是使用键值(key

value)存储的数据库,其数据按照键值对的形式进行组织、索引和存储。5.根据权利要求1所述的方法,其特征在于,所述...

【专利技术属性】
技术研发人员:李小家
申请(专利权)人:福建星量科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1