一种缓存数据刷新方法及装置制造方法及图纸

技术编号:18497083 阅读:55 留言:0更新日期:2018-07-21 20:10
本发明专利技术实施例公开了一种缓存数据刷新方法及装置。方法包括:获取Oracle数据库的缓存任务;将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis,并生成与所述待缓存数据对应的数据刷新信号key;在将所述待缓存数据刷新至业务处理程序的内部缓存时,向所述key的value中写入所述业务处理程序的ID。本发明专利技术实施例通过在SOA架构基础上,搭建基于Oracle数据库和应用数据库Redis+高级计算平台IBM Streams,以在缓存数据刷新至Redis时,自动生成刷新信号key,进而在刷新业务处理程序的内部缓存时向key的value中写入ID,实现缓存数据的持久化和同步,避免重复刷新程序缓存,减少资源的浪费。

A method and device for caching data refresh

The embodiment of the invention discloses a cache data refreshing method and device. Methods include: getting the caching task of the Oracle database; refreshing the pending data corresponding to the cached task to the application database Redis and generating a data refresh signal key corresponding to the data to be cached; when the pending data is refreshed to the internal cache of the business processor, the value of the key is in the value. Write the ID of the business handler. On the basis of the SOA architecture, the invention builds the IBM Streams based on the Oracle database and the application database Redis+ advanced computing platform, which automatically generates the refresh signal key when the cache data is refreshed to Redis, and then writes ID to the value in key when the internal cache of the business processor is refreshed, and the cache data is realized. Persistence and synchronization to avoid repeated refresh program caching and reduce resource waste.

【技术实现步骤摘要】
一种缓存数据刷新方法及装置
本专利技术实施例涉及通信
,具体涉及一种缓存数据刷新方法及装置。
技术介绍
缓存是一种常驻于内存的内存数据库,内存的读取速度远远快于程序在磁盘读取数据的速度。在设计程序的时候常常会考虑使用缓存,将经常访问的数据放到内存上面这样可以提高访问数据的速度,同时可以降低磁盘或数据库的压力。目前,通常采用Memcached的缓存策略,Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached为了提高数据的存储速度,在安装启动Memcached服务的时候,它会自动将分配给Memcached的内存分隔为大小不一致的很多块。每当任意一个大小的需要缓存的数据提交过来的时候Memcached将会自动找到符合这个数据大小最适合的内存块,然后把数据放到这个块里面。在实现本专利技术实施例的过程中,专利技术人发现在使用Memcached的缓存策略时,默认情况下会采用名为SlabAllocator的机制分配、管理内存,该机制给Memcached带来了内存使用效率问题:由于分配的是特定长度的内存,因此无法有效利用分配的内存。而且,Memcached仅仅支持简单的key/value类型的数据,在Memcached里,需要将数据拿到客户端来进行类似的修改再set回去,这大大增加了网络IO的次数和数据体积,而且该策略不具备数据持久化和数据同步的功能。
技术实现思路
本专利技术实施例的一个目的是解决现有技术由于使用Memcached导致内存使用效率较低、不具备数据持久化和数据同步的问题。本专利技术实施例提出了一种缓存数据刷新方法,包括:获取Oracle数据库的缓存任务;将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis,并生成与所述待缓存数据对应的数据刷新信号key;在将所述待缓存数据刷新至业务处理程序的内部缓存时,向所述key的value中写入所述业务处理程序的ID。可选的,所述获取Oracle数据库的缓存任务包括:按照预设查询条件查询Oracle数据库的缓存刷新任务表,获取缓存任务;其中,所述缓存刷新任务表用于存储与待缓存数据关联的缓存任务。可选的,所述将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis包括:判断所述缓存任务是否满足预设缓存条件;根据判断结果将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis。可选的,所述根据判断结果将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis包括:若判断获知所述缓存任务的数量大于0,则将所述待缓存数据刷新至应用数据库Redis;或者,若判断所述缓存任务对应的待缓存数据的大小大于等于预设阈值,则将所述待缓存数据刷新至应用数据库Redis。可选的,若判断获知所述缓存任务的数量等于0或者所述缓存任务对应的待缓存数据的大小小于所述预设阈值,则在预设周期达到时,再次判断所述缓存任务是否满足预设缓存条件。本专利技术实施例提出了一种缓存数据刷新装置,包括:获取模块,用于获取Oracle数据库的缓存任务;处理模块,用于将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis,并生成与所述待缓存数据对应的数据刷新信号key;注册模块,用于在将所述待缓存数据刷新至业务处理程序的内部缓存时,向所述key的value中写入所述业务处理程序的ID。可选的,所述获取模块,用于按照预设查询条件查询Oracle数据库的缓存刷新任务表,获取缓存任务;其中,所述缓存刷新任务表用于存储与待缓存数据关联的缓存任务。可选的,所述处理模块,用于判断所述缓存任务是否满足预设缓存条件;根据判断结果将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis。可选的,所述处理模块,用于若判断获知所述缓存任务的数量大于0,则将所述待缓存数据刷新至应用数据库Redis;或者,若判断所述缓存任务对应的待缓存数据的大小大于等于预设阈值,则将所述待缓存数据刷新至应用数据库Redis。可选的,所述处理模块,用于若判断获知所述缓存任务的数量等于0或者所述缓存任务对应的待缓存数据的大小小于所述预设阈值,则在预设周期达到时,再次判断所述缓存任务是否满足预设缓存条件。由上述技术方案可知,本专利技术实施例提出的缓存数据刷新方法及装置通过在SOA架构基础上,搭建基于Oracle数据库和应用数据库Redis+高级计算平台IBMStreams,以在缓存数据刷新至Redis时,自动生成刷新信号key,进而在刷新业务处理程序的内部缓存时向key的value中写入ID,实现缓存数据的持久化和同步,避免重复刷新程序缓存,减少资源的浪费。附图说明通过参考附图会更加清楚的理解本专利技术的特征和优点,附图是示意性的而不应理解为对本专利技术进行任何限制,在附图中:图1示出了本专利技术一实施例提供的缓存数据刷新方法的流程示意图;图2示出了本专利技术另一实施例提供的缓存数据刷新方法的流程示意图;图3示出了本专利技术一实施例提供的缓存数据刷新装置的结构示意图;图4示出了本专利技术一实施例提供的一种电子设备的结构框图.具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1示出了本专利技术一实施例提供的缓存数据刷新方法的流程示意图,参见图1,该方法可由基于Redis的流处理平台实现,具体包括如下步骤:110、获取Oracle数据库的缓存任务;需要说明的是,在web程序数据(待缓存数据)存入Oracle数据库时,首先,在Oracle数据库的缓存刷新列表中建立与web程序数据关联的缓存任务,一条web程序数据对应一个缓冲任务;然后,处理器按照预设查询条件查询Oracle数据库的缓存刷新任务表获取缓存任务。120、将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis,并生成与所述待缓存数据对应的数据刷新信号key;需要说明的是,存入Oracle数据库的web程序数据为原始信息,例如:业务、策略、规则等等,在将原始信息刷新至Redis后,Redis将对原始信息进行处理,例如:格式转换、转换形式等等,将原始信息转换为可被业务处理程序识别、处理的信息。另外,在待缓存数据刷新至应用Redis时,将生成对应的key,不难理解的是,每条待缓存数据对应一个key。130、在将所述待缓存数据刷新至业务处理程序的内部缓存时,向所述key的value中写入所述业务处理程序的ID。不难理解的是,对于任意一条待缓存数据,每个业务处理程序在将该条待缓存数据刷新至自身的内部缓存(缓存区)时,处理器将把该业务处理器的ID注册进key的value中;由此,在业务处理程序刷新待缓存数据之前,检测该待缓存数据对应的key的value中是否存在该业务处理程序对应的ID,若是,则说明该业务处理程序已经刷新过该待缓存数据,无需再次刷新缓存;若否,则说明该业务处理程序还没有刷新过该待缓存数据,运行执行刷新缓存。可见,本实本文档来自技高网...

【技术保护点】
1.一种缓存数据刷新方法,其特征在于,包括:获取Oracle数据库的缓存任务;将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis,并生成与所述待缓存数据对应的数据刷新信号key;在将所述待缓存数据刷新至业务处理程序的内部缓存时,向所述key的value中写入所述业务处理程序的ID。

【技术特征摘要】
1.一种缓存数据刷新方法,其特征在于,包括:获取Oracle数据库的缓存任务;将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis,并生成与所述待缓存数据对应的数据刷新信号key;在将所述待缓存数据刷新至业务处理程序的内部缓存时,向所述key的value中写入所述业务处理程序的ID。2.根据权利要求1所述的方法,其特征在于,所述获取Oracle数据库的缓存任务包括:按照预设查询条件查询Oracle数据库的缓存刷新任务表,获取缓存任务;其中,所述缓存刷新任务表用于存储与待缓存数据关联的缓存任务。3.根据权利要求1或2所述的方法,其特征在于,所述将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis包括:判断所述缓存任务是否满足预设缓存条件;根据判断结果将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis。4.根据权利要求3所述的方法,其特征在于,所述根据判断结果将与所述缓存任务对应的待缓存数据刷新至应用数据库Redis包括:若判断获知所述缓存任务的数量大于0,则将所述待缓存数据刷新至应用数据库Redis;或者,若判断所述缓存任务对应的待缓存数据的大小大于等于预设阈值,则将所述待缓存数据刷新至应用数据库Redis。5.根据权利要求4所述的方法,其特征在于,若判断获知所述缓存任务的数量等于0或者所述缓存任务对应的待缓存数据的大小小于所述预设阈值,则在预设周期达到时,再次...

【专利技术属性】
技术研发人员:刘彦伯崔刚
申请(专利权)人:中国移动通信集团公司中国移动通信集团河南有限公司
类型:发明
国别省市:北京,11

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

1