【技术实现步骤摘要】
数据缓存方法、装置、计算机设备和可读介质
[0001]本专利技术属于数据库
,具体涉及一种数据缓存方法、装置、计算机设备和可读介质。
技术介绍
[0002]随着Springboot框架,Mybatis框架,Redis(Remote Dictionary Server,远程字典)等技术的成熟,互联网项目越来越多的从spring+struct2+Hibernate架构,向Spring+SpringMVC+Mybatis的架构迁移,或者直接使用SSM (Spring+SpringMVC+MyBatis)框架集作为项目架构。另一方面,在大数据、高并发、分布式的环境下,原有的本地缓存技术也逐渐被分布式缓存所取代。分布式缓存解决了原来各个服务器之间缓存不一致的弊端,提高了缓存的整体利用效率,节省了缓存的总空间量,这就对程序开发人员提出了更高的要求。
[0003]目前,在进行数据库查询操作时,程序开发人员需手动将查询到的数据缓存在分布式缓存中,以便下次查询时直接从分布式缓存中获取数据。在数据库变更时,程序开发人员需根据存储时的key在分布式缓存中手动删除相应的数据。这样的缓存维护,在包括上百张表的项目中,经常会出现数据在分布式缓存中已添加,但忘记删除的情况。或者,由于程序开发人员技术参差不齐产生代码漏洞,导致分布式缓存查询失败时,直接返回异常数据的情况。这种手动维护缓存的方式,在项目交接给下一个维护的团队,或者程序开发人员技术较为薄弱时,弊端尤为明显。
技术实现思路
[0004]本专利技术旨在至少解决 ...
【技术保护点】
【技术特征摘要】
1.一种数据缓存方法,其特征在于,所述方法包括:接收针对数据库的数据操作指令,获取所述数据操作指令所调用方法的全限定名;根据所述全限定名在本地缓存中查询RedisKey变量名和RedisKey变量的前缀;响应于在本地缓存中查询到所述全限定名对应的RedisKey变量名和RedisKey变量的前缀,确定所述RedisKey变量名对应的变量值,并根据所述前缀和所述变量值得到RedisKey变量;在分布式缓存中对所述RedisKey变量对应的数据执行与所述数据操作指令相对应的操作。2.如权利要求1所述的方法,其特征在于,在获取所述数据操作指令所调用方法的全限定名之后,根据所述全限定名在本地缓存中查询RedisKey变量名和RedisKey变量的前缀之前,还包括:判断所述全限定名是否在忽略列表中;所述根据所述全限定名在本地缓存中查询RedisKey变量名和RedisKey变量的前缀,包括:响应于所述全限定名不在所述忽略列表中,根据所述全限定名在本地缓存中查询RedisKey变量名和RedisKey变量的前缀。3.如权利要求2所述的方法,其特征在于,在判断所述全限定名是否在忽略列表中之后,所述方法还包括:响应于所述全限定名在所述忽略列表中,在所述数据库中执行所述数据操作指令对应的操作。4.如权利要求2所述的方法,其特征在于,在根据所述全限定名在本地缓存中查询RedisKey变量名和RedisKey变量的前缀之后,所述方法还包括:响应于在本地缓存中未查询到所述全限定名对应的RedisKey变量名和RedisKey变量的前缀,获取所述全限定名对应的RedisKey变量名和RedisKey变量的前缀;响应于确定出需要在所述分布式缓存中对所述RedisKey变量对应的数据进行操作,将所述RedisKey变量名和所述RedisKey变量的前缀存储在本地缓存中;确定所述RedisKey变量名对应的变量值,并根据所述前缀和所述变量值得到RedisKey变量;在分布式缓存中对所述RedisKey变量对应的数据执行与所述数据操作指令相对应的操作。5.如权利要求4所述的方法,其特征在于,在响应于在本地缓存中未查询到所述全限定名对应的RedisKey变量名和RedisKey变量的前缀,获取所述全限定名对应的RedisKey变量名和RedisKey变量的前缀之后,所述方法还包括:响应于确定出不需要在所述分布式缓存中对所述RedisKey变量对应的数据进行操作,将所述全限定名添加到所述忽略列表中。6.如权利要求1或4所述的方法,其特征在于,所述数据操作指令为数据查询指令,所述在分布式缓存中对所述RedisKey变量对应的数据执行与所述数据操作指令相对应的操作,包括:在分布式缓存中查询所述RedisKey变量对应的数据;响应于在所述分布式缓存中未查询到所述RedisKey变量对应的数据,从所述数据库中
查询相应的数据,并在所述分布式缓存中存储所述数据。7.如权利要求4所述的方法,其特征在于,所述数据操作指令为数据查询指令,所述获取所述全限定名对应的RedisKey变量名和RedisKey变量的前缀,包括:根据第一注解获取RedisKey变量名和RedisKey变量的前缀,具有所述第一注解的调用方法能够在所述分布式缓存中存储返回的数据;其中,若所述RedisKey变量名为空,则将预设字符作为RedisKey变量名;若所述RedisKey变量的前缀为空,则确定所述全限定名对应的调用方法,并确定所述调用方法的返回值对象的类名,将所述类名作为所述RedisKey变量的前缀。8.如权利要求1或4所述的方法...
【专利技术属性】
技术研发人员:曹旭皓,
申请(专利权)人:京东方科技集团股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。