缓存处理方法、装置、计算机设备以及存储介质与流程

文档序号:20838884发布日期:2020-05-22 17:14阅读:173来源:国知局
缓存处理方法、装置、计算机设备以及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种缓存处理方法、装置、计算机设备以及存储介质。



背景技术:

在自动化测试工作中,经常涉及到对远程数据库的操作,在每次进行数据库操作时,需要经历与对象数据库的连接、执行、返回等网络传输操作,虽然这些传输过程发生的时间很短,但是当需要对海量的数据库数据进行数据库操作时,随着网络传输操作的次数增加,累计操作耗时也就变长了,不但降低了工作的效率,同时也影响了数据库读取效率,而且,频繁地数据库操作也会增加远程数据库的工作压力,进一步影响远程数据库的使用寿命。



技术实现要素:

有鉴于此,本发明实施例提供一种缓存处理方法、装置、计算机设备以及存储介质,能够提高数据读取的效率,降低远程数据库的读取频率,缓解了远程数据库的工作压力。

一方面,本发明实施例提供了一种缓存处理方法,该方法包括:

若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据;

创建若干键值对key-value以存储所述目标缓存数据;

将所述键值对key-value存储到内存数据库redis中;

若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值;

若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

另一方面,本发明实施例提供了一种缓存处理装置,所述装置包括:

获取单元,用于若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据;

创建单元,用于创建若干键值对key-value以存储所述目标缓存数据;

存储单元,用于将所述键值对key-value存储到内存数据库redis中;

查询单元,用于若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值;

读取单元,用于若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

又一方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的缓存处理方法。

再一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现如上所述的缓存处理方法。

本发明实施例提供一种缓存处理方法、装置、计算机设备以及存储介质,其中方法包括:若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据;创建若干键值对key-value以存储目标缓存数据;将键值对key-value存储到内存数据库redis中;若接收到用户的查询请求,根据查询请求在内存数据库redis中查询是否存在相对应的目标key值;若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。本发明基于数据处理提供一种缓存处理方法,实现了数据在内存数据库中进行缓存以及被读取,能够提高数据读取的效率,降低远程数据库的读取频率,缓解了远程数据库的工作压力。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种缓存处理方法的应用场景示意图;

图2是本发明实施例提供的一种缓存处理方法的示意流程图;

图3是本发明实施例提供的一种缓存处理方法的另一示意流程图;

图4是本发明实施例提供的一种缓存处理方法的另一示意流程图;

图5是本发明另一实施例提供的一种缓存处理方法的示意流程图;

图6是本发明另一实施例提供的一种缓存处理方法的示意流程图;

图7是本发明实施例提供的一种缓存处理装置的示意性框图;

图8是本发明实施例提供的一种缓存处理装置的另一示意性框图;

图9是本发明实施例提供的一种缓存处理装置的另一示意性框图;

图10是本发明实施例提供的一种缓存处理装置的另一示意性框图;

图11是本发明实施例提供的一种缓存处理装置的另一示意性框图;

图12是本发明实施例提供的一种计算机设备的结构组成示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,图1为本发明实施例提供的一种缓存处理方法的应用场景示意图,所述应用场景包括:

(1)服务器,服务器用于提供数据传输的后端服务。服务器为一种计算机设备,可以为单台服务器或者服务器集群,也可以为云服务器,或者为专门的网页服务器,接收外部终端的访问,通过有线网络或者无线网络与终端连接。

(2)终端,图1所示终端包括终端1、终端2和终端3,所述终端通过访问服务器上的远程数据库,从服务器上的远程数据库中获取目标缓存数据,在终端上将所获取的目标缓存数据缓存至终端上的内存数据库redis中。所述终端可以为智能手机、笔记本电脑、平板电脑或者台式电脑等电子设备,终端通过有线网络或者无线网络访问服务器。

请参阅图2,图2为本发明实施例提供的一种缓存处理方法的示意流程图。如图2所示,该方法包括以下步骤s101~s105。

s101,若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据。其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据。

在本发明实施例中,所述目标数据库可以是oracle数据库、mysql数据库或者microsoftsqlserver数据库,所述目标数据库的具体类型在此不作限制。在本实施例中,在连接目标数据库并获取目标数据库中的数据时,接收用户发出的缓存创建请求,所述缓存创建请求可以是指令信息,该指令信息用于指定哪些数据作为目标缓存数据,并将指定的目标缓存数据进行缓存处理。在一些实施例中,还可以在连接目标数据库并获取目标数据库中的数据之前,接收用户发出的缓存创建请求,或者还可以在连接目标数据库并获取目标数据库中的数据之后,接收用户发出的缓存创建请求;具体的接收缓存创建请求的时机在此不作具体限制,可以根据实际情况进行选择。

如图3所示,在所述获取目标数据库中需要缓存的目标缓存数据之后,还包括步骤s101a。

s101a,确定用户操作所述目标数据库以获取所述目标缓存数据时所使用的数据库操作语句和数据库连接串。

在本发明实施例中,用户从目标数据库中获取所述目标缓存数据需要通过连接目标数据库并进行相应的数据库操作,该数据库操作可以是查询操作、修改操作或者删除操作等。例如,对于数据库的查询操作,用户的查询指令通过处理器按照预设查询条件(预设查询条件如sql语句)查询并获取目标数据库中的目标缓存数据。本实施例中所述的数据库操作语句指的是用户执行数据库操作时的sql语句,所述数据库连接串指的是实现数据库连接的字符串,在microsoftsqlserver数据库中,常用的数据库连接串一般的写法为:datasource=myserveraddress;initialcatalog=mydatabase;userid=myusername;password=mypasswor,其中,datasource表示服务器声明、initialcatalog表示数据库声明、userid表示使用的数据库账号声明、password表示使用的数据库密码声明。

s102,创建若干键值对key-value以存储所述目标缓存数据。其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据。

在本发明实施例中,为了实现数据的快速查找,通过创建键值对key-value的形式存储目标缓存数据,具体的,键值对key-value存储数据的方式为根据key进行索引存储对应的目标缓存数据。在本实施例中,在本地内存中定义key、value的存储结构体,建立key与value间的对应关系,即可创建键值对key-value,在读取数据时,通过提供键值key查找到相应的数据value,其中,key存储有索引值,value存储有目标缓存数据。

如图4所示,所述创建若干键值对key-value以存储所述目标缓存数据,包括以下步骤s1021~s1022。

s1021,在本地内存中定义所述键值对key-value中的key和value的存储结构体,并建立key和value的对应关系。

具体的,所述key用于存储数据库操作语句和数据库连接串进行md5算法加密后得到的值,所述value用于存储目标缓存数据;建立key和value的对应关系,使得key与value形成一一对应,并且能够通过key值查询到value值,或者通过value值查询到key值。目前,该创建key-value存储结构体的方法已经非常成熟,因此,在本实施例中不再详细赘述。

s1022,以用户操作所述目标数据库时所使用的数据库操作语句和数据库连接串进行md5算法加密后得到的值作为所述键值对key-value的key值,以所述目标缓存数据作为所述键值对key-value的value值,将所述目标缓存数据存储至所述键值对key-value中。

具体的,所述以用户操作所述目标数据库时所使用的数据库操作语句和数据库连接串进行md5算法加密后得到的值作为所述键值对key-value的key值,具体包括以下步骤:s1022a,对所述数据库操作语句和数据库连接串进行拼接,得到拼接字符串;s1022b,对拼接字符串进行基于md5算法的加密,得到加密字符串;s1022c,对所述加密字符串进行base64编码转换,得到编码字符串;s1022d,在所述编码字符串上添加标识,并将添加标识后的编码字符串作为所述键值对key-value的key值。

更具体的,本实施例使用strcat()函数对数据库操作语句和数据库连接串进行拼接,strcat()函数的拼接语句可以是“char*strcat(char*strdestination,constchar*strsource)”,利用strcat()函数把strsource所指向的字符串追加到strdestination所指向的字符串的结尾,在实际应用时,当strsource指向数据库操作语句时,strdestination指向数据库连接串,或者,当strsource指向数据库连接串时,strdestination指向数据库操作语句。md5是计算机广泛使用的杂凑算法之一(又称为摘要算法、哈希算法)是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串。本实施例通过调用开源的md5算法函数对拼接字符串进行加密,从而得到加密字符串。对加密后的加密字符串进行base64编码,再对编码后的数据进行转换,得到编码字符串。其中,采用base64进行编码,具有不可读性,即所编码的数据不会被直接看到。在转换后得到的编码字符串前加上标识,以确保最终的加密格式和原始数据中的密码串相同。标识是在编写算法时人为设定的,其具有唯一性。例如,当数据库操作为查询操作时,使用的查询sql语句为selecta1fromt1whereb1=‘c’,将该查询sql语句与数据库连接串拼起来后做md5加密,并得到标识后的值作为key值;当数据库操作为修改操作时,使用的修改sql语句为updatet1seta1=‘d’whereb1=‘c’,将该修改sql语句映射为以下查询sql语句selecta1fromt1whereb1=‘c’,然后将该查询sql语句与数据库连接串拼起来后做md5加密,并得到标识后的值作为key值。

s103,将所述键值对key-value存储到内存数据库redis中。

在本发明实施例中,redis是一个开源的、分布式、可基于内存亦可持久化的键值型存储系统。redis最大特点在于使用内存进行数据的存取,极大提升了数据的读写速度,同时分布式的设计使得redis能够利用计算机集群的性能,解决单机内存容量可能不足的问题。本发明利用redis高速读写、高并发能力的特点,在服务端启动时,将保存有目标缓存数据的键值对key-value存储于redis中,在内存中构建键值格式高速缓存,供用户端调用。

s104,若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值。

在本发明实施例中,所述查询请求包括用户传入的key值,对于每一次用户的查询请求,都会先到内存数据库redis中查询是否有本次要查询的内容的key值,若没有,才建立数据库连接并进行数据库查询;若有,即在内存数据库redis中存在目标key值与用户传入的key值相对应,那么就直接从内存数据库redis中查询出想要的结果即可,无需再建立数据库连接。

s105,若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

在本发明实施例中,若在内存数据库redis中查询到存在相对应的目标key值,根据用户传入的key值确定目标key值,再由目标key值根据key与value的一一对应关系确定value,从而在内存数据库redis中读取到相对应的value值以获得用户需要的缓存数据。

由以上可见,本发明实施例通过获取目标数据库中需要缓存的目标缓存数据;创建若干键值对key-value以存储目标缓存数据;将键值对key-value存储到内存数据库redis中;若接收到用户的查询请求,根据查询请求在内存数据库redis中查询是否存在相对应的目标key值;若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。本发明基于数据处理提供一种缓存处理方法,实现了数据在内存数据库中进行缓存以及被读取,能够提高数据读取的效率,降低远程数据库的读取频率,缓解了远程数据库的工作压力。

请参阅图5,图5为本发明另一实施例提供的一种缓存处理方法的示意流程图。如图5所示,该方法包括以下步骤s201~s206。

s201,若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据。其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据。

在本发明实施例中,所述目标数据库可以是oracle数据库、mysql数据库或者microsoftsqlserver数据库,所述目标数据库的具体类型在此不作限制。在本实施例中,在连接目标数据库并获取目标数据库中的数据时,接收用户发出的缓存创建请求,所述缓存创建请求可以是指令信息,该指令信息用于指定哪些数据作为目标缓存数据,并将指定的目标缓存数据进行缓存处理。在一些实施例中,还可以在连接目标数据库并获取目标数据库中的数据之前,接收用户发出的缓存创建请求,或者还可以在连接目标数据库并获取目标数据库中的数据之后,接收用户发出的缓存创建请求;具体的接收缓存创建请求的时机在此不作具体限制,可以根据实际情况进行选择。

s202,创建若干键值对key-value以存储所述目标缓存数据。其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据。

在本发明实施例中,为了实现数据的快速查找,通过创建键值对key-value的形式存储目标缓存数据,具体的,键值对key-value存储数据的方式为根据key进行索引存储对应的目标缓存数据。在本实施例中,在本地内存中定义key、value的存储结构体,建立key与value间的对应关系,即可创建键值对key-value,在读取数据时,通过提供键值key查找到相应的数据value,其中,key存储有索引值,value存储有目标缓存数据。

s203,将所述键值对key-value存储到内存数据库redis中。

在本发明实施例中,redis是一个开源的、分布式、可基于内存亦可持久化的键值型存储系统。redis最大特点在于使用内存进行数据的存取,极大提升了数据的读写速度,同时分布式的设计使得redis能够利用计算机集群的性能,解决单机内存容量可能不足的问题。本发明利用redis高速读写、高并发能力的特点,在服务端启动时,将保存有目标缓存数据的键值对key-value存储于redis中,在内存中构建键值格式高速缓存,供用户端调用。

s204,若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值。

在本发明实施例中,所述查询请求包括用户传入的key值,对于每一次用户的查询请求,都会先到内存数据库redis中查询是否有本次要查询的内容的key值,若没有,才建立数据库连接并进行数据库查询;若有,即在内存数据库redis中存在目标key值与用户传入的key值相对应,那么就直接从内存数据库redis中查询出想要的结果即可,无需再建立数据库连接。

s205,若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

在本发明实施例中,若在内存数据库redis中查询到存在相对应的目标key值,根据用户传入的key值确定目标key值,再由目标key值根据key与value的一一对应关系确定value,从而在内存数据库redis中读取到相对应的value值以获得用户需要的缓存数据。

s206,若在内存数据库redis中查询不到相对应的目标key值,通过访问目标数据库以读取数据。

在本发明实施例中,若在内存数据库redis中查询不到相对应的目标key值,通过访问目标数据库以读取数据,例如,oracle数据库,本实施例通过连接oracle数据库获取数据表并读取数据,可选的,可以通过jdbc(javadatabaseconnectivity,java数据库连接)方式连接oracle数据库,并获取oracle数据库中的数据表;连接oracle数据库的方法可以具体为在开发环境(如myeclipse环境)中加载指定数据库的jdbc驱动程序,在开发程序中通过class.forname函数(指定数据库的驱动程序的函数)来加载并添加该jdbc驱动程序;通过drivermanager类创建oracle数据库连接对象connection,drivermanager类作用于开发程序和jdbc驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过drivermanager类的getconnection方法,根据oracle数据库的url链接、用户名和密码,创建一个jdbcconnection对象,其中,url链接的格式为协议名+ip地址(域名)+端口+数据库名称,用户名和密码指的是登录oracle数据库时所使用的用户名和密码;通过connection对象的createstatement()方法创建一个statement对象,该statement对象用于执行静态sql语句并返回它所生成结果的对象;调用statement对象的相关方法执行相对应的sql语句,最后通过connection的close()方法及时关闭数据连接。

请参阅图6,图6为本发明另一实施例提供的一种缓存处理方法的示意流程图。如图6所示,该方法包括以下步骤s301~s308。

s301,若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据。其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据。

在本发明实施例中,所述目标数据库可以是oracle数据库、mysql数据库或者microsoftsqlserver数据库,所述目标数据库的具体类型在此不作限制。在本实施例中,在连接目标数据库并获取目标数据库中的数据时,接收用户发出的缓存创建请求,所述缓存创建请求可以是指令信息,该指令信息用于指定哪些数据作为目标缓存数据,并将指定的目标缓存数据进行缓存处理。在一些实施例中,还可以在连接目标数据库并获取目标数据库中的数据之前,接收用户发出的缓存创建请求,或者还可以在连接目标数据库并获取目标数据库中的数据之后,接收用户发出的缓存创建请求;具体的接收缓存创建请求的时机在此不作具体限制,可以根据实际情况进行选择。

s302,创建若干键值对key-value以存储所述目标缓存数据。其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据。

在本发明实施例中,为了实现数据的快速查找,通过创建键值对key-value的形式存储目标缓存数据,具体的,键值对key-value存储数据的方式为根据key进行索引存储对应的目标缓存数据。在本实施例中,在本地内存中定义key、value的存储结构体,建立key与value间的对应关系,即可创建键值对key-value,在读取数据时,通过提供键值key查找到相应的数据value,其中,key存储有索引值,value存储有目标缓存数据。

s303,将所述键值对key-value存储到内存数据库redis中。

在本发明实施例中,redis是一个开源的、分布式、可基于内存亦可持久化的键值型存储系统。redis最大特点在于使用内存进行数据的存取,极大提升了数据的读写速度,同时分布式的设计使得redis能够利用计算机集群的性能,解决单机内存容量可能不足的问题。本发明利用redis高速读写、高并发能力的特点,在服务端启动时,将保存有目标缓存数据的键值对key-value存储于redis中,在内存中构建键值格式高速缓存,供用户端调用。

s304,若接收到所述键值对key-value存储到内存数据库redis的操作,开始计时。

在本发明实施例中,在终端上设置定时功能,在检测到键值对key-value存储到内存数据库redis的操作时,开始计时。

s305,判断计时时间是否达到预设时间。

在本发明实施例中,所述预设时间可以是1分钟,可以是2分钟,也可以是其他预设时间,所述预设时间也可以是用户自行定义的时间。

s306,若计时时间达到预设时间,触发所述内存数据库redis启动删除指令以删除所述内存数据库redis中所存储的键值对key-value。

在本发明实施例中,所述删除指令为删除操作,当键值对key-value在内存数据库redis中的存储时间(即本实施例中的计时时间)达到预设时间时,在内存数据库redis中自动启动删除指令以删除所述内存数据库redis中所存储的键值对key-value。通过这种方式可以实现内存数据库redis中按时自动清除缓存,避免内存数据库redis的数据冗余。

s307,若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值。

在本发明实施例中,所述查询请求包括用户传入的key值,对于每一次用户的查询请求,都会先到内存数据库redis中查询是否有本次要查询的内容的key值,若没有,才建立数据库连接并进行数据库查询;若有,即在内存数据库redis中存在目标key值与用户传入的key值相对应,那么就直接从内存数据库redis中查询出想要的结果即可,无需再建立数据库连接。

s308,若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

在本发明实施例中,若在内存数据库redis中查询到存在相对应的目标key值,根据用户传入的key值确定目标key值,再由目标key值根据key与value的一一对应关系确定value,从而在内存数据库redis中读取到相对应的value值以获得用户需要的缓存数据。

请参阅图7,对应上述一种缓存处理方法,本发明实施例还提出一种缓存处理装置,该装置100包括:获取单元101、创建单元102、存储单元103、查询单元104、读取单元105。

其中,获取单元101,用于若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据。其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据。

创建单元102,用于创建若干键值对key-value以存储所述目标缓存数据。其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据。

存储单元103,用于将所述键值对key-value存储到内存数据库redis中。

查询单元104,用于若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值。

读取单元105,用于若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

由以上可见,本发明实施例通过获取目标数据库中需要缓存的目标缓存数据;创建若干键值对key-value以存储目标缓存数据;将键值对key-value存储到内存数据库redis中;若接收到用户的查询请求,根据查询请求在内存数据库redis中查询是否存在相对应的目标key值;若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。本发明基于数据处理提供一种缓存处理方法,实现了数据在内存数据库中进行缓存以及被读取,能够提高数据读取的效率,降低远程数据库的读取频率,缓解了远程数据库的工作压力。

请参阅图8,所述装置100还包括:确定单元101a。

确定单元101a,用于确定用户操作所述目标数据库以获取所述目标缓存数据时所使用的数据库操作语句和数据库连接串。

请参阅图9,所述创建单元102,包括定义单元102a、创建子单元102b。

其中,定义单元102a,用于在本地内存中定义所述键值对key-value中的key和value的存储结构体,并建立key和value的对应关系。

创建子单元102b,用于以用户操作所述目标数据库时所使用的数据库操作语句和数据库连接串进行md5算法加密后得到的值作为所述键值对key-value的key值,以所述目标缓存数据作为所述键值对key-value的value值,将所述目标缓存数据存储至所述键值对key-value中。

请参阅图10,对应上述一种缓存处理方法,本发明实施例还提出一种缓存处理装置,该装置200包括:获取单元201、创建单元202、存储单元203、查询单元204、读取单元205、访问单元206。

其中,获取单元201,用于若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据。其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据。

创建单元202,用于创建若干键值对key-value以存储所述目标缓存数据。其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据。

存储单元203,用于将所述键值对key-value存储到内存数据库redis中。

查询单元204,用于若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值。

读取单元205,用于若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

访问单元206,用于若在内存数据库redis中查询不到相对应的目标key值,通过访问目标数据库以读取数据。

请参阅图11,对应上述一种缓存处理方法,本发明实施例还提出一种缓存处理装置,该装置300包括:获取单元301、创建单元302、存储单元303、计时单元304、判断单元305、删除单元306、查询单元307、读取单元308。

其中,获取单元301,用于若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据。其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据。

创建单元302,用于创建若干键值对key-value以存储所述目标缓存数据。其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据。

存储单元303,用于将所述键值对key-value存储到内存数据库redis中。

计时单元304,用于若接收到所述键值对key-value存储到内存数据库redis的操作,开始计时。

判断单元305,用于判断计时时间是否达到预设时间。

删除单元306,用于若计时时间达到预设时间,触发所述内存数据库redis启动删除指令以删除所述内存数据库redis中所存储的键值对key-value。

查询单元307,用于若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值。

读取单元308,用于若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

上述缓存处理装置与上述缓存处理方法一一对应,其具体的原理和过程与上述实施例所述方法相同,不再赘述。

上述缓存处理装置可以实现为一种计算机程序的形式,计算机程序可以在如图12所示的计算机设备上运行。

图12为本发明一种计算机设备的结构组成示意图。该设备可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑和台式电脑等具有通信功能和语音输入功能的电子装置。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。参照图12,该计算机设备500包括通过系统总线501连接的处理器502、非易失性存储介质503、内存储器504和网络接口505。其中,该计算机设备500的非易失性存储介质503可存储操作系统5031和计算机程序5032,该计算机程序5032被执行时,可使得处理器502执行一种缓存处理方法。该计算机设备500的处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序被处理器执行时,可使得处理器502执行一种缓存处理方法。计算机设备500的网络接口505用于进行网络通信。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502执行所述计算机程序时实现如下操作:

若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据;其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据;

创建若干键值对key-value以存储所述目标缓存数据,其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据;

将所述键值对key-value存储到内存数据库redis中;

若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值;

若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

在一个实施例中,所述处理器502执行所述计算机程序时还实现如下操作:

确定用户操作所述目标数据库以获取所述目标缓存数据时所使用的数据库操作语句和数据库连接串。

在一个实施例中,所述创建若干键值对key-value以存储所述目标缓存数据,包括:

在本地内存中定义所述键值对key-value中的key和value的存储结构体,并建立key和value的对应关系;

以用户操作所述目标数据库时所使用的数据库操作语句和数据库连接串进行md5算法加密后得到的值作为所述键值对key-value的key值,以所述目标缓存数据作为所述键值对key-value的value值,将所述目标缓存数据存储至所述键值对key-value中。

在一个实施例中,所述以用户操作所述目标数据库时所使用的数据库操作语句和数据库连接串进行md5算法加密后得到的值作为所述键值对key-value的key值,具体包括:

对所述数据库操作语句和数据库连接串进行拼接,得到拼接字符串;

对拼接字符串进行基于md5算法的加密,得到加密字符串;

对所述加密字符串进行base64编码转换,得到编码字符串;

在所述编码字符串上添加标识,并将添加标识后的编码字符串作为所述键值对key-value的key值。

在一个实施例中,所述处理器502执行所述计算机程序时还实现如下操作:

若在内存数据库redis中查询不到相对应的目标key值,通过访问目标数据库以读取数据。

在一个实施例中,所述处理器502执行所述计算机程序时还实现如下操作:

若接收到所述键值对key-value存储到内存数据库redis的操作,开始计时;

判断计时时间是否达到预设时间;

若计时时间达到预设时间,触发所述内存数据库redis启动删除指令以删除所述内存数据库redis中所存储的键值对key-value。

本领域技术人员可以理解,图12中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图12所示实施例一致,在此不再赘述。

本发明提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现以下步骤:

若接收到缓存创建请求,获取目标数据库中需要缓存的目标缓存数据,其中,所述缓存创建请求包括指令信息,该指令信息用于指定所述目标数据库中的数据作为所述目标缓存数据;

创建若干键值对key-value以存储所述目标缓存数据,其中,所述键值对key-value中的key存储有索引值,value存储有目标缓存数据;

将所述键值对key-value存储到内存数据库redis中;

若接收到用户的查询请求,根据所述查询请求在内存数据库redis中查询是否存在相对应的目标key值;

若在内存数据库redis中查询到存在相对应的目标key值,在内存数据库redis中读取与目标key值相对应的value值以获得缓存数据。

在一个实施例中,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,还实现以下步骤:

确定用户操作所述目标数据库以获取所述目标缓存数据时所使用的数据库操作语句和数据库连接串。

在一个实施例中,所述创建若干键值对key-value以存储所述目标缓存数据,包括:

在本地内存中定义所述键值对key-value中的key和value的存储结构体,并建立key和value的对应关系;

以用户操作所述目标数据库时所使用的数据库操作语句和数据库连接串进行md5算法加密后得到的值作为所述键值对key-value的key值,以所述目标缓存数据作为所述键值对key-value的value值,将所述目标缓存数据存储至所述键值对key-value中。

在一个实施例中,所述以用户操作所述目标数据库时所使用的数据库操作语句和数据库连接串进行md5算法加密后得到的值作为所述键值对key-value的key值,具体包括:

对所述数据库操作语句和数据库连接串进行拼接,得到拼接字符串;

对拼接字符串进行基于md5算法的加密,得到加密字符串;

对所述加密字符串进行base64编码转换,得到编码字符串;

在所述编码字符串上添加标识,并将添加标识后的编码字符串作为所述键值对key-value的key值。

在一个实施例中,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,还实现以下步骤:

若在内存数据库redis中查询不到相对应的目标key值,通过访问目标数据库以读取数据。

在一个实施例中,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,还实现以下步骤:

若接收到所述键值对key-value存储到内存数据库redis的操作,开始计时;

判断计时时间是否达到预设时间;

若计时时间达到预设时间,触发所述内存数据库redis启动删除指令以删除所述内存数据库redis中所存储的键值对key-value。

本发明前述的存储介质包括:磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等各种可以存储程序代码的介质。

本发明所有实施例中的单元可以通过通用集成电路,例如cpu(centralprocessingunit,中央处理器),或通过asic(applicationspecificintegratedcircuit,专用集成电路)来实现。

本发明实施例缓存处理方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例缓存处理装置中的单元可以根据实际需要进行合并、划分和删减。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1