一种基于关系型数据库将缓存数据持久化的方法及系统技术方案

技术编号:36455098 阅读:16 留言:0更新日期:2023-01-25 22:52
本发明专利技术涉及一种基于关系型数据库将缓存数据持久化的方法及系统,包括:建立关系型数据库;获取预缓存数据的键值对key

【技术实现步骤摘要】
一种基于关系型数据库将缓存数据持久化的方法及系统


[0001]本专利技术涉及数据库
,尤其涉及一种基于关系型数据库将缓存数据持久化的方法及系统。

技术介绍

[0002]在日常的系统运行过程中,会有很多的场景使用缓存数据,现有常用的缓存数据库有Redis和Memcache两个,都是基于内存的数据库,都是以key

value键值对的形式存储数据。Memcache:本身不具备缓存数据持久化的能力。Redis:本身提供了RDB和AOF两种方式持久化的能力;RDB方式的缺点:没办法做到实时持久化,当redis突然宕机会出现丢失数据;AOF方式的缺点:占用更多的磁盘空间,恢复备份速度慢。
[0003]内存数据的优点是读写效率很快,但将数据保存在内存中也随之带来一个缺点,就是一旦宕机或断电或重启,那么内存数据库中的数据就会丢失。所以需要考虑如果查询的缓存数据丢失或者缓存数据库出现异常的情况下,怎么快速且方便的方式去获取这些缓存数据,这就引出了需要将缓存数据持久化的问题。

技术实现思路

[0004]为解决现有技术的不足,本专利技术提出一种基于关系型数据库将缓存数据持久化的方法及系统,解决大部分缓存数据失效、丢失或者缓存数据库异常导致查不到缓存数据的问题。
[0005]为实现以上目的,本专利技术所采用的技术方案包括:
[0006]一种基于关系型数据库将缓存数据持久化的方法,其特征在于,包括:
[0007]S1、建立关系型数据库;
[0008]S2、获取预缓存数据的键值对key

value;
[0009]S3、将预缓存数据存储至缓存数据库;
[0010]S4、将预缓存数据存储至关系型数据库,包括分步骤:
[0011]S41、将预缓存数据的key和value存储在关系型数据库的同一条数据中;
[0012]S42、将预缓存数据的key字段设置成唯一索引;
[0013]S43、将预缓存数据的value字段设置成文本类型;
[0014]S44、将预缓存数据的value值设置成JSON字符串格式;
[0015]S5、获取需查询数据的Key值;
[0016]S6、通过需查询数据的Key值在缓存数据库中查询;
[0017]S7、若在缓存数据库中未查询到需查询数据的Key值,则通过需查询数据的Key值在关系型数据库中查询;
[0018]S8、返回需查询数据。
[0019]进一步地,所述步骤S1包括分步骤:
[0020]S11、创建数据表table;
[0021]S12、在数据表table中创建数据字段data_id、data_key以及data_value。
[0022]进一步地,所述数据字段data_id为数据的自增序号,数据字段data_key用于存储预缓存数据的key值,数据字段data_value用于存储预缓存数据的value值。
[0023]进一步地,所述关系型数据库包括:MySQL数据库以及Oracle数据库。
[0024]本专利技术还涉及一种基于关系型数据库将缓存数据持久化的系统,其特征在于,包括:
[0025]关系型数据库建立模块,用于建立关系型数据库;
[0026]数据获取模块,用于获取预缓存数据的键值对key

value,以及获取需查询数据的Key值;
[0027]缓存数据库模块,用于将预缓存数据存储至缓存数据库;
[0028]关系型数据库模块,用于将预缓存数据存储至关系型数据库,包括:将预缓存数据的key和value存储在关系型数据库的同一条数据中;将预缓存数据的key字段设置成唯一索引;将预缓存数据的value字段设置成文本类型;将预缓存数据的value值设置成JSON字符串格式;
[0029]查询模块,用于通过需查询数据的Key值在缓存数据库中查询;以及若在缓存数据库中未查询到需查询数据的Key值,则通过需查询数据的Key值在关系型数据库中查询;
[0030]返回模块,用于返回需查询数据。
[0031]本专利技术还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于关系型数据库将缓存数据持久化的方法。
[0032]本专利技术还涉及一种电子设备,其特征在于,包括处理器和存储器;
[0033]所述存储器,用于存储关系型数据库以及缓存数据库;
[0034]所述处理器,用于通过调用关系型数据库以及缓存数据库,执行上述的基于关系型数据库将缓存数据持久化的方法。
[0035]本专利技术还涉及一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述基于关系型数据库将缓存数据持久化的方法的步骤。
[0036]本专利技术的有益效果为:
[0037]采用本专利技术所述一种基于关系型数据库将缓存数据持久化的方法及系统,引入存储数据比较稳定的关系型数据库,当设置缓存数据时同步一份到关系型数据库中,关系型数据库中的数据就相当于备份的持久化数据,数据不会轻易丢失,当缓存数据库宕机或出现异常时,可以去查询关系型数据的数据,本专利技术所述方法及系统能解决大部分缓存数据失效、丢失或者缓存数据库异常导致查不到缓存数据的问题。
[0038]缓存数据库具有读写快的优点,关系型数据库具有存储稳定的优点,本专利技术所述方法及系统将二者的优点相结合,从而能够最大程度的保证用户查询缓存数据的快速性、可靠性,保证缓存数据和备份的久化数据的一致性,提高了查询的容错性,且在技术实施上方便易上手。
附图说明
[0039]图1为本专利技术基于关系型数据库将缓存数据持久化的方法流程示意图。
[0040]图2为本专利技术基于关系型数据库将缓存数据持久化的系统结构示意图。
具体实施方式
[0041]为了更清楚的理解本专利技术的内容,将结合附图和实施例详细说明。
[0042]本专利技术所述一种基于关系型数据库持久化缓存数据的方法及系统,引入存储数据比较稳定的关系型数据库,当设置缓存数据时同步一份到关系型数据库中,关系型数据库中的数据就相当于备份的持久化数据,数据不会轻易丢失,当缓存数据库宕机或出现异常时,可以去查询关系型数据的数据,本专利技术所述方法及系统能解决大部分缓存数据失效、丢失或者缓存数据库异常导致查不到缓存数据的问题。
[0043]缓存数据库具有读写快的优点,关系型数据库具有存储稳定的优点,该方案将二者的优点相结合从而能够最大程度的保证用户查询缓存数据的快速性、可靠性,保证缓存数据和备份的久化数据的一致性,提高了查询的容错性,且在技术实施上方便易上手。
[0044]本专利技术第一方面涉及一种步骤流程如图1所示的基于关系型数据库将缓存数据持久化的方法,包括:
[0045]S1、建立关系型数据库;
[0046]S11、创建数据表table;...

【技术保护点】

【技术特征摘要】
1.一种基于关系型数据库将缓存数据持久化的方法,其特征在于,包括:S1、建立关系型数据库;S2、获取预缓存数据的键值对key

value;S3、将预缓存数据存储至缓存数据库;S4、将预缓存数据存储至关系型数据库,包括分步骤:S41、将预缓存数据的key和value存储在关系型数据库的同一条数据中;S42、将预缓存数据的key字段设置成唯一索引;S43、将预缓存数据的value值设置成文本类型;S44、将预缓存数据的value值设置成JSON字符串格式;S5、获取需查询数据的Key值;S6、通过需查询数据的Key值在缓存数据库中查询;S7、若在缓存数据库中未查询到需查询数据的Key值,则通过需查询数据的Key值在关系型数据库中查询;S8、返回需查询数据。2.如权利要求1所述的方法,其特征在于,所述步骤S1包括分步骤:S11、创建数据表table;S12、在数据表table中创建数据字段data_id、data_key以及data_value。3.如权利要求2所述的方法,其特征在于,所述数据字段data_id为数据的自增序号,数据字段data_key用于存储预缓存数据的key值,数据字段data_value用于存储预缓存数据的value值。4.如权利要求1所述的方法,其特征在于,所述关系型数据库包括:MySQL数据库以及Oracle数据库。5.一种基于关系型数据库将缓存数据持久化的系统,其特征在于,包括:关系...

【专利技术属性】
技术研发人员:商基伟
申请(专利权)人:中信百信银行股份有限公司
类型:发明
国别省市:

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

1