CN110413644A - 一种数据缓存方法、电子装置及计算机可读存储介质 - Google Patents
一种数据缓存方法、电子装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110413644A CN110413644A CN201910522697.1A CN201910522697A CN110413644A CN 110413644 A CN110413644 A CN 110413644A CN 201910522697 A CN201910522697 A CN 201910522697A CN 110413644 A CN110413644 A CN 110413644A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- parameter
- code
- preset
- 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.)
- Granted
Links
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/25—Integrating or interfacing systems involving database management systems
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,揭露了一种数据缓存方法、电子装置及计算机可读存储介质。该方法包括:接收用户设置的各个缓存对象和预设缓存参数的参数值,生成缓存代码,在主程序代码中的缓存对象对应的功能代码段的预设区域添加预设缓存标识,当执行主程序代码至预设缓存标识所在行时,获取并执行预设缓存标识对应的缓存代码完成缓存操作。本发明实现了在不修改原有业务代码的基础上,通过各个预设缓存标识完成对各个缓存对象的缓存操作,同时提高了代码的可维护性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据缓存方法、电子装置及计算机可读存储介质。
背景技术
随着互联网的发展,Web项目越来越多,海量的访问通过Web页面传递到后台数据库,而数据库的访问通过I/O读取硬盘上的数据,一般来说硬盘的读写速度为60-120M/s,文件越小越多,处理数据的速度会越慢。此时,Redis缓存组件应运而生,Redis缓存组件可将数据缓存在内存中,大幅度提高数据的处理速度。然而,现有原生的Redis缓存组件只支持缓存的设置和获取,在应用的时候需要在现有业务代码模块中根据具体缓存的数据添加设置和获取缓存的代码,不仅影响原有业务代码的结构,同时也容易出现代码难于维护的窘境。
发明内容
鉴于以上内容,有必要提供一种数据缓存方法、电子装置及计算机可读存储介质,旨在提高代码的可维护性,在不修改原有业务代码的基础上,通过各个预设缓存标识完成缓存操作。
为实现上述目的,本发明提供一种数据缓存方法,该方法包括:
参数获取步骤:响应用户针对目标业务的缓存请求,向用户展示缓存设置界面,接收用户在所述缓存设置界面设置的各个缓存对象和各个缓存对象对应的各个预设缓存参数的参数值;
代码生成步骤:根据各个缓存对象及其预设缓存参数的参数值,生成各个缓存对象对应的缓存代码,并将所述各个缓存对象对应的缓存代码存储至预设存储空间;
标识配置步骤:为各个缓存对象配置预设缓存标识,所述预设缓存标识包含缓存对象的名称;
标识添加步骤:获取目标业务逻辑对应的主程序代码,所述主程序代码包含各个对象对应的功能模块代码段,将预设缓存标识添加至对应的缓存对象对应的功能模块代码段的预设区域;
代码获取步骤:执行所述主程序代码,当执行至预设缓存标识所在行时,获取所述预设缓存标识对应的缓存代码;
代码执行步骤:执行所述缓存代码,将对应的缓存对象存储至对应的目标缓存空间。
可选的,所述接收用户在所述缓存设置界面设置的各个缓存对象对应的各个预设缓存参数的参数值还包括:
逐一判断各个预设缓存参数的设置值是否为空,当预设缓存参数的设置值为空时,将该预设缓存参数对应的预设默认值作为该预设缓存参数的参数值;
当预设缓存参数的设置值不为空时,将该预设缓存参数的设置值作为该预设缓存参数的参数值。
可选的,所述预设缓存参数包括:缓存方式、缓存时效、缓存名称、缓存数据存储方式、缓存存储的分区方式、目标缓存空间。
可选的,所述代码执行步骤还包括:
确定各个缓存对象的数据格式,逐一判断各个缓存对象的数据格式与对应的目标缓存空间的数据存储格式是否相同;
当判断缓存对象的数据格式与对应的目标缓存空间的数据存储格式不同时,将该缓存对象的数据格式转换为与对应的目标缓存空间的数据存储格式相同的数据格式;
在确定所有的缓存对象的数据格式与对应的目标缓存空间的数据存储格式都相同时,判断各个目标缓存空间中是否存储有对应的缓存对象;
当某个目标缓存空间中未存储有对应的缓存对象时,将该缓存对象存储至对应的目标缓存空间。
可选的,所述数据缓存方法还包括:
生成缓存报告,所述缓存报告包含缓存对象的数量、缓存数据占用空间大小,并将所述缓存报告发送给用户。
为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的数据缓存程序,所述数据缓存程序被所述处理器执行时实现如下步骤:
参数获取步骤:响应用户针对目标业务的缓存请求,向用户展示缓存设置界面,接收用户在所述缓存设置界面设置的各个缓存对象和各个缓存对象对应的各个预设缓存参数的参数值;
代码生成步骤:根据各个缓存对象及其预设缓存参数的参数值,生成各个缓存对象对应的缓存代码,并将所述各个缓存对象对应的缓存代码存储至预设存储空间;
标识配置步骤:为各个缓存对象配置预设缓存标识,所述预设缓存标识包含缓存对象的名称;
标识添加步骤:获取目标业务逻辑对应的主程序代码,所述主程序代码包含各个对象对应的功能模块代码段,将预设缓存标识添加至对应的缓存对象对应的功能模块代码段的预设区域;
代码获取步骤:执行所述主程序代码,当执行至预设缓存标识所在行时,获取所述预设缓存标识对应的缓存代码;
代码执行步骤:执行所述缓存代码,将对应的缓存对象存储至对应的目标缓存空间。
可选的,所述接收用户在所述缓存设置界面设置的各个缓存对象对应的各个预设缓存参数的参数值还包括:
逐一判断各个预设缓存参数的设置值是否为空,当预设缓存参数的设置值为空时,将该预设缓存参数对应的预设默认值作为该预设缓存参数的参数值;
当预设缓存参数的设置值不为空时,将该预设缓存参数的设置值作为该预设缓存参数的参数值。
可选的,所述预设缓存参数包括:缓存方式、缓存时效、缓存名称、缓存数据存储方式、缓存存储的分区方式、目标缓存空间。
可选的,所述代码执行步骤还包括:
确定各个缓存对象的数据格式,逐一判断各个缓存对象的数据格式与对应的目标缓存空间的数据存储格式是否相同;
当判断缓存对象的数据格式与对应的目标缓存空间的数据存储格式不同时,将该缓存对象的数据格式转换为与对应的目标缓存空间的数据存储格式相同的数据格式;
在确定所有的缓存对象的数据格式与对应的目标缓存空间的数据存储格式都相同时,判断各个目标缓存空间中是否存储有对应的缓存对象;
当某个目标缓存空间中未存储有对应的缓存对象时,将该缓存对象存储至对应的目标缓存空间。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据缓存程序,所述数据缓存程序可被一个或者多个处理器执行,以实现上述数据缓存方法的任意步骤。
相较现有技术,本发明通过在目标业务逻辑对应的主程序代码中添加预设缓存标识,实现了在不修改原有业务代码的基础上,通过各个预设缓存标识完成对各个缓存对象的缓存操作,同时提高了代码的可维护性。
附图说明
图1为本发明电子装置一实施例的示意图;
图2为图1中的数据缓存程序10一实施例的程序模块图;
图3为本发明数据缓存方法一实施例的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,为本发明电子装置1一实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
在本实施例中,电子装置1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有数据缓存程序10,所述数据缓存程序10可被所述处理器12执行。图1仅示出了具有组件11-13以及数据缓存程序10的电子装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对电子装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等的非易失性存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该非易失性存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。本实施例中,存储器11的可读存储介质通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的数据缓存程序10的代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行数据缓存程序10等。
网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子装置1与客户端(图中未画出)之间建立通信连接。
可选的,所述电子装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
在本发明的一实施例中,所述数据缓存程序10被所述处理器12执行时实现如下参数获取步骤、代码生成步骤、标识配置步骤、标识添加步骤、代码获取步骤及代码执行步骤。
参数获取步骤:响应用户针对目标业务的缓存请求,向用户展示缓存设置界面,接收用户在所述缓存设置界面设置的各个缓存对象和各个缓存对象对应的各个预设缓存参数的参数值;
所述缓存对象通常包括查询频繁且更新比较少的数据、处理过程复杂且结果变化小的数据等,缓存对象可以是未经数据处理的原始数据,也可以是经数据处理后得到的结果数据。
可选的,在本发明的一个实施例中,所述预设缓存参数包括:缓存方式、缓存时效、缓存名称、缓存数据存储方式、缓存存储的分区方式、目标缓存空间。
例如,缓存方式的参数值包括:实时、定时等。
缓存时效的参数值包括:10分钟、100分钟、1天等。
缓存名称的参数值包括:用户基于所述缓存设置界面输入的自定义缓存名称。
缓存数据存储格式的参数值包括:二进制、十进制、字符串等。
缓存存储的分区方式的参数值包括:按照时间分区、按照业务类别分区等。
目标缓存空间的参数值包括:redis数据库、encache数据库等。
可选的,在本发明的一个实施例中,所述接收用户在所述缓存设置界面设置的各个缓存对象对应的各个预设缓存参数的参数值还包括:
逐一判断各个预设缓存参数的设置值是否为空,当预设缓存参数的设置值为空时,将该预设缓存参数对应的预设默认值作为该预设缓存参数的参数值;
当预设缓存参数的设置值不为空时,将该预设缓存参数的设置值作为该预设缓存参数的参数值。
代码生成步骤:根据各个缓存对象及其预设缓存参数的参数值,生成各个缓存对象对应的缓存代码,并将所述各个缓存对象对应的缓存代码存储至预设存储空间;
标识配置步骤:为各个缓存对象配置预设缓存标识,所述预设缓存标识包含缓存对象的名称;
所述预设缓存标识包括注解,所述注解(Annotation),也叫元数据,是一种代码级别的说明,是JDK1.5(Java软件开发工具包)及以后版本引入的一个特性,与类、接口、枚举是同一个层次,它可以声明在类、字段、方法、包、局部变量、方法参数等的前面,用来对这些元素进行说明、注释。
所述类是指面向对象的程序开发语言中一种复杂的数据类型,是不同类型的数据和与这个数据相关的操作封装在一起的集合体,其中,类是对象的抽象,而对象是类的具体实例。
所述方法是用于解决一类问题的代码的有序组合。
所述包是Java语音提供的一种区别类名字命名空间的机制,是类的一种文件组织和管理方式,是一组功能相似或相关的类或者接口的集合。
标识添加步骤:获取目标业务逻辑对应的主程序代码,所述主程序代码包含各个对象对应的功能模块代码段,将预设缓存标识添加至对应的缓存对象对应的功能模块代码段的预设区域;
所述目标业务逻辑对应的主程序代码包括多段功能模块代码,每段功能模块代码针对具体的对象执行对应的功能操作,所述对象包含但不限于缓存对象。
用户根据需要确定缓存对象,例如,缓存对象为一个类或者方法,可以将预设缓存标识添加到缓存对象对应的功能模块代码段的前面,也可以添加到对应的功能模块代码段的后面。
代码获取步骤:执行所述主程序代码,当执行至预设缓存标识所在行时,获取所述预设缓存标识对应的缓存代码;
代码执行步骤:执行所述缓存代码,将对应的缓存对象存储至对应的目标缓存空间。
可选的,在本发明的一个实施例中,所述代码执行步骤还包括:
确定各个缓存对象的数据格式,逐一判断各个缓存对象的数据格式与对应的目标缓存空间的数据存储格式是否相同;
当判断缓存对象的数据格式与对应的目标缓存空间的数据存储格式不同时,将该缓存对象的数据格式转换为与对应的目标缓存空间的数据存储格式相同的数据格式;
在确定所有的缓存对象的数据格式与对应的目标缓存空间的数据存储格式都相同时,判断各个目标缓存空间中是否存储有对应的缓存对象;
当某个目标缓存空间中未存储有对应的缓存对象时,将该缓存对象存储至对应的目标缓存空间。
由于每个目标缓存空间存储数据的格式不同,因此,若缓存对象的数据格式与预设目标缓存空间的存储格式不同时,需要对该缓存对象进行数据格式转换后,才能写入目标缓存空间。例如,Redis数据库存储的数据是经过序列化的二进制文件流,若缓存对象的数据格式为字符格式或者数值格式,则需要将该缓存对象的数据格式转换为二进制格式后,再缓存至Redis数据库。
若查询到一缓存对象已存在于所述目标缓存空间中,即表示该缓存对象已经缓存至目标缓存空间中,不需要重复缓存,只需要返回“已缓存”的消息即可。
可选的,在本发明的一个实施例中,所述数据缓存程序10被所述处理器12执行时实现还实现如下步骤:
生成缓存报告,所述缓存报告包含缓存对象的数量、缓存数据占用空间大小,并将所述缓存报告发送给用户。
本实施例中,所述缓存报告可以通过邮件、短信、微信等方式通知用户。
如图2所示,为图1中的数据缓存程序10一实施例的程序模块图。
在本发明的一个实施例中,数据缓存程序10包括参数获取模块110、代码生成模块120、标识配置模块130、标识添加模块140、代码获取模块150及代码执行模块160。
所述参数获取模块110,用于响应用户针对目标业务的缓存请求,向用户展示缓存设置界面,接收用户在所述缓存设置界面设置的各个缓存对象和各个缓存对象对应的各个预设缓存参数的参数值。
所述缓存对象通常包括查询频繁且更新比较少的数据、处理过程复杂且结果变化小的数据等,缓存对象可以是未经数据处理的原始数据,也可以是经数据处理后得到的结果数据。
可选的,在本发明的一个实施例中,所述预设缓存参数包括:缓存方式、缓存时效、缓存名称、缓存数据存储方式、缓存存储的分区方式、目标缓存空间。
例如,缓存方式的参数值包括:实时、定时等。
缓存时效的参数值包括:10分钟、100分钟、1天等。
缓存名称的参数值包括:用户基于所述缓存设置界面输入的自定义缓存名称。
缓存数据存储格式的参数值包括:二进制、十进制、字符串等。
缓存存储的分区方式的参数值包括:按照时间分区、按照业务类别分区等。
目标缓存空间的参数值包括:redis数据库、encache数据库等。
可选的,在本发明的一个实施例中,所述参数获取模块110接收用户在所述缓存设置界面设置的各个缓存对象对应的各个预设缓存参数的参数值还包括:
逐一判断各个预设缓存参数的设置值是否为空,当预设缓存参数的设置值为空时,将该预设缓存参数对应的预设默认值作为该预设缓存参数的参数值;
当预设缓存参数的设置值不为空时,将该预设缓存参数的设置值作为该预设缓存参数的参数值。
所述代码生成模块120,用于根据各个缓存对象及其预设缓存参数的参数值,生成各个缓存对象对应的缓存代码,并将所述各个缓存对象对应的缓存代码存储至预设存储空间。
所述标识配置模块130,用于为各个缓存对象配置预设缓存标识,所述预设缓存标识包含缓存对象的名称。
所述预设缓存标识包括注解,所述注解(Annotation),也叫元数据,是一种代码级别的说明,是JDK1.5(Java软件开发工具包)及以后版本引入的一个特性,与类、接口、枚举是同一个层次,它可以声明在类、字段、方法、包、局部变量、方法参数等的前面,用来对这些元素进行说明、注释。
所述类是指面向对象的程序开发语言中一种复杂的数据类型,是不同类型的数据和与这个数据相关的操作封装在一起的集合体,其中,类是对象的抽象,而对象是类的具体实例。
所述方法是用于解决一类问题的代码的有序组合。
所述包是Java语音提供的一种区别类名字命名空间的机制,是类的一种文件组织和管理方式,是一组功能相似或相关的类或者接口的集合。
所述标识添加模块140,用于获取目标业务逻辑对应的主程序代码,所述主程序代码包含各个对象对应的功能模块代码段,将预设缓存标识添加至对应的缓存对象对应的功能模块代码段的预设区域。
所述目标业务逻辑对应的主程序代码包括多段功能模块代码,每段功能模块代码针对具体的对象执行对应的功能操作,所述对象包含但不限于缓存对象。
用户根据需要确定缓存对象,例如,缓存对象为一个类或者方法,可以将预设缓存标识添加到缓存对象对应的功能模块代码段的前面,也可以添加到对应的功能模块代码段的后面。
所述代码获取模块150,用于执行所述主程序代码,当执行至预设缓存标识所在行时,获取所述预设缓存标识对应的缓存代码。
所述代码执行模块160,用于执行所述缓存代码,将对应的缓存对象存储至对应的目标缓存空间中。
可选的,在本发明的一个实施例中,所述代码执行模块160还用于:
确定各个缓存对象的数据格式,逐一判断各个缓存对象的数据格式与对应的目标缓存空间的数据存储格式是否相同;
当判断缓存对象的数据格式与对应的目标缓存空间的数据存储格式不同时,将该缓存对象的数据格式转换为与对应的目标缓存空间的数据存储格式相同的数据格式;
在确定所有的缓存对象的数据格式与对应的目标缓存空间的数据存储格式都相同时,判断各个目标缓存空间中是否存储有对应的缓存对象;
当某个目标缓存空间中未存储有对应的缓存对象时,将该缓存对象存储至对应的目标缓存空间。
由于每个目标缓存空间存储数据的格式不同,因此,若缓存对象的数据格式与预设目标缓存空间的存储格式不同时,需要对该缓存对象进行数据格式转换后,才能写入目标缓存空间。例如,Redis数据库存储的数据是经过序列化的二进制文件流,若缓存对象的数据格式为字符格式或者数值格式,则需要将该缓存对象的数据格式转换为二进制格式后,再缓存至Redis数据库。
若查询到一缓存对象已存在于所述目标缓存空间中,即表示该缓存对象已经缓存至目标缓存空间中,不需要重复缓存,只需要返回“已缓存”的消息即可。
可选的,在本发明的一个实施例中,所述代码执行模块160还用于:
生成缓存报告,所述缓存报告包含缓存对象的数量、缓存数据占用空间大小,并将所述缓存报告发送给用户。
本实施例中,所述缓存报告可以通过邮件、短信、微信等方式通知用户。
如图3所示,为本发明数据缓存方法一实施例的流程图,该数据缓存方法包括步骤S1-S6。
S1、响应用户针对目标业务的缓存请求,向用户展示缓存设置界面,接收用户在所述缓存设置界面设置的各个缓存对象和各个缓存对象对应的各个预设缓存参数的参数值;
所述缓存对象通常包括查询频繁且更新比较少的数据、处理过程复杂且结果变化小的数据等,缓存对象可以是未经数据处理的原始数据,也可以是经数据处理后得到的结果数据。
可选的,在本发明的一个实施例中,所述预设缓存参数包括:缓存方式、缓存时效、缓存名称、缓存数据存储方式、缓存存储的分区方式、目标缓存空间。
例如,缓存方式的参数值包括:实时、定时等。
缓存时效的参数值包括:10分钟、100分钟、1天等。
缓存名称的参数值包括:用户基于所述缓存设置界面输入的自定义缓存名称。
缓存数据存储格式的参数值包括:二进制、十进制、字符串等。
缓存存储的分区方式的参数值包括:按照时间分区、按照业务类别分区等。
目标缓存空间的参数值包括:redis数据库、encache数据库等。
可选的,在本发明的一个实施例中,所述接收用户在所述缓存设置界面设置的各个缓存对象对应的各个预设缓存参数的参数值还包括:
逐一判断各个预设缓存参数的设置值是否为空,当预设缓存参数的设置值为空时,将该预设缓存参数对应的预设默认值作为该预设缓存参数的参数值;
当预设缓存参数的设置值不为空时,将该预设缓存参数的设置值作为该预设缓存参数的参数值。
S2、根据各个缓存对象及其预设缓存参数的参数值,生成各个缓存对象对应的缓存代码,并将所述各个缓存对象对应的缓存代码存储至预设存储空间;
S3、为各个缓存对象配置预设缓存标识,所述预设缓存标识包含缓存对象的名称;
所述预设缓存标识包括注解,所述注解(Annotation),也叫元数据,是一种代码级别的说明,是JDK1.5(Java软件开发工具包)及以后版本引入的一个特性,与类、接口、枚举是同一个层次,它可以声明在类、字段、方法、包、局部变量、方法参数等的前面,用来对这些元素进行说明、注释。
所述类是指面向对象的程序开发语言中一种复杂的数据类型,是不同类型的数据和与这个数据相关的操作封装在一起的集合体,其中,类是对象的抽象,而对象是类的具体实例。
所述方法是用于解决一类问题的代码的有序组合。
所述包是Java语音提供的一种区别类名字命名空间的机制,是类的一种文件组织和管理方式,是一组功能相似或相关的类或者接口的集合。
S4、获取目标业务逻辑对应的主程序代码,所述主程序代码包含各个对象对应的功能模块代码段,将预设缓存标识添加至对应的缓存对象对应的功能模块代码段的预设区域;
所述目标业务逻辑对应的主程序代码包括多段功能模块代码,每段功能模块代码针对具体的对象执行对应的功能操作,所述对象包含但不限于缓存对象。
用户根据需要确定缓存对象,例如,缓存对象为一个类或者方法,可以将预设缓存标识添加到缓存对象对应的功能模块代码段的前面,也可以添加到对应的功能模块代码段的后面。
S5、执行所述主程序代码,当执行至预设缓存标识所在行时,获取所述预设缓存标识对应的缓存代码;
S6、执行所述缓存代码,将对应的缓存对象存储至对应的目标缓存空间。
可选的,在本发明的一个实施例中,所述步骤S6还包括:
确定各个缓存对象的数据格式,逐一判断各个缓存对象的数据格式与对应的目标缓存空间的数据存储格式是否相同;
当判断缓存对象的数据格式与对应的目标缓存空间的数据存储格式不同时,将该缓存对象的数据格式转换为与对应的目标缓存空间的数据存储格式相同的数据格式;
在确定所有的缓存对象的数据格式与对应的目标缓存空间的数据存储格式都相同时,判断各个目标缓存空间中是否存储有对应的缓存对象;
当某个目标缓存空间中未存储有对应的缓存对象时,将该缓存对象存储至对应的目标缓存空间。
由于每个目标缓存空间存储数据的格式不同,因此,若缓存对象的数据格式与预设目标缓存空间的存储格式不同时,需要对该缓存对象进行数据格式转换后,才能写入目标缓存空间。例如,Redis数据库存储的数据是经过序列化的二进制文件流,若缓存对象的数据格式为字符格式或者数值格式,则需要将该缓存对象的数据格式转换为二进制格式后,再缓存至Redis数据库。
若查询到一缓存对象已存在于所述目标缓存空间中,即表示该缓存对象已经缓存至目标缓存空间中,不需要重复缓存,只需要返回“已缓存”的消息即可。
可选的,在本发明的一个实施例中,所述数据缓存方法还包括:
生成缓存报告,所述缓存报告包含缓存对象的数量、缓存数据占用空间大小,并将所述缓存报告发送给用户。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括数据缓存程序10,本发明之计算机可读存储介质的具体实施方式与上述数据缓存方法以及电子装置的具体实施方式大致相同,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据缓存方法,应用于电子装置,其特征在于,所述数据缓存方法包括:
参数获取步骤:响应用户针对目标业务的缓存请求,向用户展示缓存设置界面,接收用户在所述缓存设置界面设置的各个缓存对象和各个缓存对象对应的各个预设缓存参数的参数值;
代码生成步骤:根据各个缓存对象及其预设缓存参数的参数值,生成各个缓存对象对应的缓存代码,并将所述各个缓存对象对应的缓存代码存储至预设存储空间;
标识配置步骤:为各个缓存对象配置预设缓存标识,所述预设缓存标识包含缓存对象的名称;
标识添加步骤:获取目标业务逻辑对应的主程序代码,所述主程序代码包含各个对象对应的功能模块代码段,将预设缓存标识添加至对应的缓存对象对应的功能模块代码段的预设区域;
代码获取步骤:执行所述主程序代码,当执行至预设缓存标识所在行时,获取所述预设缓存标识对应的缓存代码;
代码执行步骤:执行所述缓存代码,将对应的缓存对象存储至对应的目标缓存空间。
2.如权利要求1所述的数据缓存方法,其特征在于,所述接收用户在所述缓存设置界面设置的各个缓存对象对应的各个预设缓存参数的参数值还包括:
逐一判断各个预设缓存参数的设置值是否为空,当预设缓存参数的设置值为空时,将该预设缓存参数对应的预设默认值作为该预设缓存参数的参数值;
当预设缓存参数的设置值不为空时,将该预设缓存参数的设置值作为该预设缓存参数的参数值。
3.如权利要求2所述的数据缓存方法,其特征在于,所述预设缓存参数包括:缓存方式、缓存时效、缓存名称、缓存数据存储方式、缓存存储的分区方式、目标缓存空间。
4.如权利要求1所述的数据缓存方法,其特征在于,所述代码执行步骤还包括:
确定各个缓存对象的数据格式,逐一判断各个缓存对象的数据格式与对应的目标缓存空间的数据存储格式是否相同;
当判断缓存对象的数据格式与对应的目标缓存空间的数据存储格式不同时,将该缓存对象的数据格式转换为与对应的目标缓存空间的数据存储格式相同的数据格式;
在确定所有的缓存对象的数据格式与对应的目标缓存空间的数据存储格式都相同时,判断各个目标缓存空间中是否存储有对应的缓存对象;
当某个目标缓存空间中未存储有对应的缓存对象时,将该缓存对象存储至对应的目标缓存空间。
5.如权利要求1-4所述的数据缓存方法,其特征在于,所述数据缓存方法还包括:
生成缓存报告,所述缓存报告包含缓存对象的数量、缓存数据占用空间大小,并将所述缓存报告发送给用户。
6.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的数据缓存程序,所述数据缓存程序被所述处理器执行时实现如下步骤:
参数获取步骤:响应用户针对目标业务的缓存请求,向用户展示缓存设置界面,接收用户在所述缓存设置界面设置的各个缓存对象和各个缓存对象对应的各个预设缓存参数的参数值;
代码生成步骤:根据各个缓存对象及其预设缓存参数的参数值,生成各个缓存对象对应的缓存代码,并将所述各个缓存对象对应的缓存代码存储至预设存储空间;
标识配置步骤:为各个缓存对象配置预设缓存标识,所述预设缓存标识包含缓存对象的名称;
标识添加步骤:获取目标业务逻辑对应的主程序代码,所述主程序代码包含各个对象对应的功能模块代码段,将预设缓存标识添加至对应的缓存对象对应的功能模块代码段的预设区域;
代码获取步骤:执行所述主程序代码,当执行至预设缓存标识所在行时,获取所述预设缓存标识对应的缓存代码;
代码执行步骤:执行所述缓存代码,将对应的缓存对象存储至对应的目标缓存空间。
7.如权利要求6所述的电子装置,其特征在于,所述接收用户在所述缓存设置界面设置的各个缓存对象对应的各个预设缓存参数的参数值还包括:
逐一判断各个预设缓存参数的设置值是否为空,当预设缓存参数的设置值为空时,将该预设缓存参数对应的预设默认值作为该预设缓存参数的参数值;
当预设缓存参数的设置值不为空时,将该预设缓存参数的设置值作为该预设缓存参数的参数值。
8.如权利要求7所述的电子装置,其特征在于,所述预设缓存参数包括:缓存方式、缓存时效、缓存名称、缓存数据存储方式、缓存存储的分区方式、目标缓存空间。
9.如权利要求6所述的电子装置,其特征在于,所述代码执行步骤还包括:
确定各个缓存对象的数据格式,逐一判断各个缓存对象的数据格式与对应的目标缓存空间的数据存储格式是否相同;
当判断缓存对象的数据格式与对应的目标缓存空间的数据存储格式不同时,将该缓存对象的数据格式转换为与对应的目标缓存空间的数据存储格式相同的数据格式;
在确定所有的缓存对象的数据格式与对应的目标缓存空间的数据存储格式都相同时,判断各个目标缓存空间中是否存储有对应的缓存对象;
当某个目标缓存空间中未存储有对应的缓存对象时,将该缓存对象存储至对应的目标缓存空间。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据缓存程序,所述数据缓存程序可被一个或者多个处理器执行,以实现如权利要求1至5任一项所述的数据缓存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910522697.1A CN110413644B (zh) | 2019-06-17 | 2019-06-17 | 一种数据缓存方法、电子装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910522697.1A CN110413644B (zh) | 2019-06-17 | 2019-06-17 | 一种数据缓存方法、电子装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413644A true CN110413644A (zh) | 2019-11-05 |
CN110413644B CN110413644B (zh) | 2023-07-25 |
Family
ID=68359236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910522697.1A Active CN110413644B (zh) | 2019-06-17 | 2019-06-17 | 一种数据缓存方法、电子装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413644B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150012706A1 (en) * | 2013-07-08 | 2015-01-08 | International Business Machines Corporation | Managing metadata for caching devices during shutdown and restart procedures |
CN106095698A (zh) * | 2016-06-03 | 2016-11-09 | 合网络技术(北京)有限公司 | 面向对象的缓存写入、读取方法及装置 |
CN107817972A (zh) * | 2017-11-03 | 2018-03-20 | 泰康保险集团股份有限公司 | 缓存代码处理方法、装置、存储介质及电子设备 |
CN108259563A (zh) * | 2017-12-12 | 2018-07-06 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
-
2019
- 2019-06-17 CN CN201910522697.1A patent/CN110413644B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150012706A1 (en) * | 2013-07-08 | 2015-01-08 | International Business Machines Corporation | Managing metadata for caching devices during shutdown and restart procedures |
CN106095698A (zh) * | 2016-06-03 | 2016-11-09 | 合网络技术(北京)有限公司 | 面向对象的缓存写入、读取方法及装置 |
CN107817972A (zh) * | 2017-11-03 | 2018-03-20 | 泰康保险集团股份有限公司 | 缓存代码处理方法、装置、存储介质及电子设备 |
CN108259563A (zh) * | 2017-12-12 | 2018-07-06 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110413644B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107979493B (zh) | 平台即服务paas容器平台的构建方法、服务器及存储介质 | |
US9122380B2 (en) | Updating assets rendered in a virtual world environment based on detected user interactions in another world | |
CN108427705A (zh) | 电子装置、分布式系统日志查询方法及存储介质 | |
US9619959B2 (en) | Wagering game presentation with multiple technology containers in a web browser | |
CN110196725A (zh) | 配置文件管理方法、装置、计算机设备及存储介质 | |
CN104380256B (zh) | 用于虚拟化与计算机系统关联的硬件资源的方法、系统和执行代码段 | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
CN110413386A (zh) | 多进程处理方法、装置、终端设备及计算机可读存储介质 | |
CN106446174A (zh) | 应用中页面加载的方法 | |
CN101656789A (zh) | 手机实现管理应用程序信息的方法及应用程序管理器 | |
Ravindranath et al. | Procrastinator: pacing mobile apps' usage of the network | |
CN104202332B (zh) | 基于Linux内核的移动设备虚拟化系统及即时安装方法 | |
CN104199684B (zh) | 浏览器冷启动的实现方法及装置 | |
CN102279748A (zh) | 远程存储本地执行的软件使用方法、系统、服务器及客户端 | |
CN104765826A (zh) | 动态配置的数字地图绘制 | |
CN102118442A (zh) | 一种访问Web资源的方法及装置 | |
CN107844711B (zh) | 数据操作权限隔离方法、应用服务器及计算机可读存储介质 | |
CN103440285A (zh) | 大型手机游戏系统及其数据库更新方法 | |
CN110059278A (zh) | Web页面配置方法、服务器及计算机可读存储介质 | |
CN109800370A (zh) | 网页页面的显示方法、装置、计算机设备及存储介质 | |
CN107977165B (zh) | 数据缓存优化方法、装置和计算机设备 | |
CN112235132A (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
CN110196683B (zh) | 一种操作控制的方法、装置、终端设备和介质 | |
CN103309696B (zh) | 一种Java卡扩展库更新方法、装置和Java卡 | |
CN103501341A (zh) | 一种Web服务的创建方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |