一种实现数据缓存的方法

文档序号:6521187阅读:252来源:国知局
一种实现数据缓存的方法
【专利摘要】本发明涉及一种实现数据缓存的方法,所述方法包括:(1)应用程序通过数据中间件获取缓存中的数据信息;(2)应用程序修改数据时,通过数据中间件写入数据库中数据,同时更新缓存中数据;(3)数据中间件通过配置信息,获取更新周期;(4)数据中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据一致。本发明提高了读取数据的响应速度,提高了系统的性能,有效的解决缓存数据和数据库数据一致性问题,实现了在一定时间内即保障了数据的一致性又提高了系统的性能,减少了系统调用数据库的请求次数,避免数据库调用的性能开销。
【专利说明】一种实现数据缓存的方法
【技术领域】
[0001]本发明属于数据缓存技术,具体讲涉及一种实现数据缓存的方法。
【背景技术】
[0002]随着网络的普及化,用户经常使用到的数据通过缓存(Cache)技术进行管理,从而减轻服务器重新请求的压力,提高网站的访问速度。缓存技术有很多,所谓的数据缓存,指的是数据库的数据不是直接传输,而是将数据暂存在内存中的一种技术,数据缓存的直接目的是为了提高读取数据的响应速度,实现对数据查询的及时响应,数据缓存的使用在大访问量的情况下能极大的减少对数据库操作的次数,降低系统负载提高系统性能。将数据调用到内存,然后从内存中读取,从而可以大大提高读取速度。数据缓存技术有很多的方案,这里由于开源、高性能等特点,降低系统负载提高系统性能。
[0003]但现有技术中缓存和数据库数据一致性功能欠缺。

【发明内容】

[0004]针对现有技术的不足,本发明提供一种实现数据缓存的方法,本发明为保障数据缓存保持一致性提供两种机制,并详细介绍了本发明增删改操作的流程处理方式。本发明应用程序可为需要访问数据的各种应用,数据库也可采用Mysql,Oracle等。
[0005]本发明的目的是采用下述技术方案实现的:
[0006]一种实现数据缓存的方法,其改进之处在于,所述方法包括:
[0007](I)应用程序通过数据中间件获取缓存中的数据信息;
[0008](2)应用程序修改数据时,通过数据中间件写入数据库中数据,同时更新缓存中数据;
[0009](3)数据中间件通过配置信息,获取更新周期;
[0010](4)数据中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据一致。
[0011 ] 优选的,所述(I)包括应用程序查询数据时,数据中间件主进程直接查询缓存中数据,然后返回结果数据。
[0012]进一步地,所述应用程序查询操作通过数据中间件从缓存中取数据,不对数据库进行任何操作。
[0013]优选的,所述(2)包括:
[0014](4-1)应用程序进行增删改操作;
[0015](4-2)数据中间件主进程对数据库中数据进行增删改操作;
[0016](4-3)更新数据库数据;
[0017](4-4)主进程向缓存数据维护进程发送消息;
[0018]( 4-5 )更新缓存数据;
[0019](4_6)结束。[0020]进一步地,所述步骤(4-3)包括更新数据库数据失败则通过数据库的事务管理机制回滚数据后结束。
[0021]进一步地,所述步骤(4-5)包括更新缓存数据失败则通过数据缓存中间件的事务管理功能回滚数据,包括回滚数据库中的数据。
[0022]优选的,所述步骤(3)包括数据缓存中间件缓存数据维护进程读取配置文件中缓存数据更新周期的值,开启定时更新缓存线程,定时更新数据缓存。
[0023]进一步地,当修改配置文件信息后,手动调用重载命令,缓存数据维护进程会重新加载修改后的配置文件。
[0024]优选的,所述步骤(3)包括数据缓存中间件缓存数据维护进程开启数据维护线程,该线程定时轮询缓存数据是否过期,如过期,则更新缓存数据;同时可修改配置文件,设置过期时间。
[0025]优选的,所述步骤(4)数据库中数据有更新时间字段,记录更新时间;当更新周期设置很大时,数据中间件会根据当前时间和缓存中数据的修改时间做比较;当数据过期,即当前时间一缓存中数据修改时间 > 设置的保质期时,会进行一次更新数据缓存的操作。
[0026]与现有技术比,本发明的有益效果为:
[0027]1、本发明提高了读取数据的响应速度,提高了系统的性能。
[0028]2、本发明有效的解决缓存数据和数据库数据一致性问题。
[0029]3、本发明实现了在一定时间内即保障了数据的一致性又提高了系统的性能。
[0030]4、本发明减少了系统调用数据库的请求次数,避免数据库调用的性能开销。
[0031]5、本发明实现了低成本的水平扩展。
【专利附图】

【附图说明】
[0032]图1为本发明提供的一种实现数据缓存的方法数据缓存中间体机构图。
[0033]图2为本发明提供的一种实现数据缓存的方法数据增删改操作流程图。
[0034]图3为本发明提供的一种实现数据缓存的方法数据查询流程图。
[0035]图4为本发明提供的一种实现数据缓存的方法数据缓存定时更新流程图。
[0036]图5为本发明提供的一种实现数据缓存的方法缓存数据维护进程流程图。
【具体实施方式】
[0037]下面结合附图对本发明的【具体实施方式】作进一步的详细说明。
[0038]如图1数据缓存中间体架构图所示:
[0039]应用程序通过数据缓存中间件获取缓存中的数据信息。
[0040]应用程序修改数据时,通过数据缓存中间件写入数据库中数据,同时更新缓存中数据。
[0041]数据缓存中间件通过配置信息,获取更新周期,数据缓存中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据一致性。
[0042]其中,数据库中数据有更新时间字段,记录更新时间,当更新周期设置很大时,数据缓存中间件会根据当前时间和缓存中数据的修改时间做比较,当数据过期,即当前时间-缓存中数据修改时间 > 设置的保质期时,会进行一次更新数据缓存的操作。其中:[0043]A、增删改操作
[0044]应用程序进行增删改操作时,数据缓存中间件主进程首先操作数据库,对数据库中数据进行增删改操作,操作成功,则主进程会向缓存数据维护进程发送消息,缓存数据维护进程除非更新数据缓存的操作,将改变的数据内容更新到缓存中。
[0045]其中,当对数据库数据进行操作失败,则通过数据库的事务管理机制回滚数据。同样,在对数据库数据操作成功但是缓存更新数据操作失败,则通过数据缓存中间件的事务管理功能回滚数据,包括回滚数据库中的数据。
[0046]B、查询操作
[0047]应用程序查询数据时,数据缓存中间件主进程直接查询缓存中数据,然后返回结果数据。查询操作完全通过数据缓存中间件从缓存中取数据,不对数据库进行任何操作。
[0048]C、缓存与数据库一致性
[0049]数据缓存中间件根据指定的规则维护数据的一致性,如图4数据缓存定时更新流程图所示,缓存数据维护进程读取配置文件中缓存数据更新周期的值,然后开启定时更新缓存线程,定时更新数据缓存。当修改配置文件信息后,手动调用重载命令,缓存数据维护进程会重新加载修改后的配置文件。
[0050]另外,缓存数据维护进程还通过第二种机制来保障数据的一致性,如图5缓存数据维护流程图所示,缓存数据维护进程会开启缓存数据维护线程,该线程定时轮询缓存数据是否过期,如果过期,则更新缓存数据。同时可以修改配置文件,设置过期时间。
[0051]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的【具体实施方式】进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种实现数据缓存的方法,其特征在于,所述方法包括: (1)应用程序通过数据中间件获取缓存中的数据信息; (2)应用程序修改数据时,通过数据中间件写入数据库中数据,同时更新缓存中数据; (3)数据中间件通过配置信息,获取更新周期; (4)数据中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据—致。
2.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述(I)包括应用程序查询数据时,数据中间件主进程直接查询缓存中数据,然后返回结果数据。
3.如权利要求2所述的一种实现数据缓存的方法,其特征在于,所述应用程序查询操作通过数据中间件从缓存中取数据,不对数据库进行任何操作。
4.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述(2)包括: (4-1)应用程序进行增删改操作; (4-2)数据中间件主进程对数据库中数据进行增删改操作; (4-3)更新数据库数据; (4-4)主进程向缓存数据维护进程发送消息; (4-5)更新缓存数据; (4-6)结束。
5.如权利要求4所述的一种实现数据缓存的方法,其特征在于,所述步骤(4-3)包括更新数据库数据失败则通过数据库的事务管理机制回滚数据后结束。
6.如权利要求4所述的一种实现数据缓存的方法,其特征在于,所述步骤(4-5)包括更新缓存数据失败则通过数据缓存中间件的事务管理功能回滚数据,包括回滚数据库中的数据。
7.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述步骤(3)包括数据缓存中间件缓存数据维护进程读取配置文件中缓存数据更新周期的值,开启定时更新缓存线程,定时更新数据缓存。
8.如权利要求7所述的一种实现数据缓存的方法,其特征在于,当修改配置文件信息后,手动调用重载命令,缓存数据维护进程会重新加载修改后的配置文件。
9.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述步骤(3)包括数据缓存中间件缓存数据维护进程开启数据维护线程,该线程定时轮询缓存数据是否过期,如过期,则更新缓存数据;同时可修改配置文件,设置过期时间。
10.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述步骤(4)数据库中数据有更新时间字段,记录更新时间;当更新周期设置很大时,数据中间件会根据当前时间和缓存中数据的修改时间做比较;当数据过期,即当前时间一缓存中数据修改时间 > 设置的保质期时,会进行一次更新数据缓存的操作。
【文档编号】G06F12/08GK103617131SQ201310624376
【公开日】2014年3月5日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】徐学辉, 郭庆, 班军成, 苗艳超, 刘新春, 邵宗有 申请人:曙光信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1