CN103617131B - 一种实现数据缓存的方法 - Google Patents
一种实现数据缓存的方法 Download PDFInfo
- Publication number
- CN103617131B CN103617131B CN201310624376.5A CN201310624376A CN103617131B CN 103617131 B CN103617131 B CN 103617131B CN 201310624376 A CN201310624376 A CN 201310624376A CN 103617131 B CN103617131 B CN 103617131B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer storage
- caching
- middleware
- data buffer
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种实现数据缓存的方法,所述方法包括:(1)应用程序通过数据中间件获取缓存中的数据信息;(2)应用程序修改数据时,通过数据中间件写入数据库中数据,同时更新缓存中数据;(3)数据中间件通过配置信息,获取更新周期;(4)数据中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据一致。本发明提高了读取数据的响应速度,提高了系统的性能,有效的解决缓存数据和数据库数据一致性问题,实现了在一定时间内即保障了数据的一致性又提高了系统的性能,减少了系统调用数据库的请求次数,避免数据库调用的性能开销。
Description
技术领域
本发明属于数据缓存技术,具体讲涉及一种实现数据缓存的方法。
背景技术
随着网络的普及化,用户经常使用到的数据通过缓存(Cache)技术进行管理,从而减轻服务器重新请求的压力,提高网站的访问速度。缓存技术有很多,所谓的数据缓存,指的是数据库的数据不是直接传输,而是将数据暂存在内存中的一种技术,数据缓存的直接目的是为了提高读取数据的响应速度,实现对数据查询的及时响应,数据缓存的使用在大访问量的情况下能极大的减少对数据库操作的次数,降低系统负载提高系统性能。将数据调用到内存,然后从内存中读取,从而可以大大提高读取速度。数据缓存技术有很多的方案,这里由于开源、高性能等特点,降低系统负载提高系统性能。
但现有技术中缓存和数据库数据一致性功能欠缺。
发明内容
针对现有技术的不足,本发明提供一种实现数据缓存的方法,本发明为保障数据缓存保持一致性提供两种机制,并详细介绍了本发明增删改操作的流程处理方式。本发明应用程序可为需要访问数据的各种应用,数据库也可采用Mysql,Oracle等。
本发明的目的是采用下述技术方案实现的:
一种实现数据缓存的方法,其改进之处在于,所述方法包括:
(1)应用程序通过数据缓存中间件获取缓存中的数据信息;
(2)应用程序修改数据时,通过数据缓存中间件写入数据库中数据,同时更新缓存中数据;
(3)数据缓存中间件通过配置信息,获取更新周期;
(4)数据缓存中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据一致。
优选的,所述(1)包括应用程序查询数据时,数据缓存中间件主进程直接查询缓存中数据,然后返回结果数据。
进一步地,所述应用程序查询操作通过数据缓存中间件从缓存中取数据,不对数据库进行任何操作。
优选的,所述(2)包括:
(4-1)应用程序进行增删改操作;
(4-2)数据缓存中间件主进程对数据库中数据进行增删改操作;
(4-3)更新数据库数据;
(4-4)主进程向缓存数据维护进程发送消息;
(4-5)更新缓存数据;
(4-6)结束。
进一步地,所述步骤(4-3)包括更新数据库数据失败则通过数据库的事务管理机制回滚数据后结束。
进一步地,所述步骤(4-5)包括更新缓存数据失败则通过数据缓存中间件的事务管理功能回滚数据,包括回滚数据库中的数据。
优选的,所述步骤(3)包括数据缓存中间件缓存数据维护进程读取配置文件中缓存数据更新周期的值,开启定时更新缓存线程,定时更新数据缓存。
进一步地,当修改配置文件信息后,手动调用重载命令,缓存数据维护进程会重新加载修改后的配置文件。
优选的,所述步骤(3)包括数据缓存中间件缓存数据维护进程开启数据维护线程,该线程定时轮询缓存数据是否过期,如过期,则更新缓存数据;同时可修改配置文件,设置过期时间。
优选的,所述步骤(4)数据库中数据有更新时间字段,记录更新时间;当更新周期设置很大时,数据缓存中间件会根据当前时间和缓存中数据的修改时间做比较;当数据过期,即当前时间-缓存中数据修改时间>设置的保质期时,会进行一次更新数据缓存的操作。
与现有技术比,本发明的有益效果为:
1、本发明提高了读取数据的响应速度,提高了系统的性能。
2、本发明有效的解决缓存数据和数据库数据一致性问题。
3、本发明实现了在一定时间内即保障了数据的一致性又提高了系统的性能。
4、本发明减少了系统调用数据库的请求次数,避免数据库调用的性能开销。
5、本发明实现了低成本的水平扩展。
附图说明
图1为本发明提供的一种实现数据缓存的方法数据缓存中间体机构图。
图2为本发明提供的一种实现数据缓存的方法数据增删改操作流程图。
图3为本发明提供的一种实现数据缓存的方法数据查询流程图。
图4为本发明提供的一种实现数据缓存的方法数据缓存定时更新流程图。
图5为本发明提供的一种实现数据缓存的方法缓存数据维护进程流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
如图1数据缓存中间体架构图所示:
应用程序通过数据缓存中间件获取缓存中的数据信息。
应用程序修改数据时,通过数据缓存中间件写入数据库中数据,同时更新缓存中数据。
数据缓存中间件通过配置信息,获取更新周期,数据缓存中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据一致性。
其中,数据库中数据有更新时间字段,记录更新时间,当更新周期设置很大时,数据缓存中间件会根据当前时间和缓存中数据的修改时间做比较,当数据过期,即当前时间-缓存中数据修改时间>设置的保质期时,会进行一次更新数据缓存的操作。其中:
A、增删改操作
应用程序进行增删改操作时,数据缓存中间件主进程首先操作数据库,对数据库中数据进行增删改操作,操作成功,则主进程会向缓存数据维护进程发送消息,缓存数据维护进程除非更新数据缓存的操作,将改变的数据内容更新到缓存中。
其中,当对数据库数据进行操作失败,则通过数据库的事务管理机制回滚数据。同样,在对数据库数据操作成功但是缓存更新数据操作失败,则通过数据缓存中间件的事务管理功能回滚数据,包括回滚数据库中的数据。
B、查询操作
应用程序查询数据时,数据缓存中间件主进程直接查询缓存中数据,然后返回结果数据。查询操作完全通过数据缓存中间件从缓存中取数据,不对数据库进行任何操作。
C、缓存与数据库一致性
数据缓存中间件根据指定的规则维护数据的一致性,如图4数据缓存定时更新流程图所示,缓存数据维护进程读取配置文件中缓存数据更新周期的值,然后开启定时更新缓存线程,定时更新数据缓存。当修改配置文件信息后,手动调用重载命令,缓存数据维护进程会重新加载修改后的配置文件。
另外,缓存数据维护进程还通过第二种机制来保障数据的一致性,如图5缓存数据维护流程图所示,缓存数据维护进程会开启缓存数据维护线程,该线程定时轮询缓存数据是否过期,如果过期,则更新缓存数据。同时可以修改配置文件,设置过期时间。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种实现数据缓存的方法,其特征在于,所述方法包括:
(1)应用程序通过数据缓存中间件获取缓存中的数据信息;
(2)应用程序修改数据时,通过数据缓存中间件写入数据库中数据,同时更新缓存中数据;
(3)数据缓存中间件通过配置信息,获取更新周期;
(4)数据缓存中间件根据更新周期,定时更新缓存中数据,保持缓存中数据和数据库中数据一致;
所述(2)包括:
(4-1)应用程序进行增删改操作;
(4-2)数据缓存中间件主进程对数据库中数据进行增删改操作;
(4-3)更新数据库数据;
(4-4)主进程向缓存数据维护进程发送消息;
(4-5)更新缓存数据;
(4-6)结束;
所述步骤(4-5)包括更新缓存数据失败则通过数据缓存中间件的事务管理功能回滚数据,包括回滚数据库中的数据。
2.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述(1)包括应用程序查询数据时,数据缓存中间件主进程直接查询缓存中数据,然后返回结果数据。
3.如权利要求2所述的一种实现数据缓存的方法,其特征在于,所述应用程序查询操作通过数据缓存中间件从缓存中取数据,不对数据库进行任何操作。
4.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述步骤(4-3)包括更新数据库数据失败则通过数据库的事务管理机制回滚数据后结束。
5.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述步骤(3)包括数据缓存中间件缓存数据维护进程读取配置文件中缓存数据更新周期的值,开启定时更新缓存线程,定时更新数据缓存。
6.如权利要求5所述的一种实现数据缓存的方法,其特征在于,当修改配置文件信息后,手动调用重载命令,缓存数据维护进程会重新加载修改后的配置文件。
7.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述步骤(3)包括数据缓存中间件缓存数据维护进程开启数据维护线程,该线程定时轮询缓存数据是否过期,如过期,则更新缓存数据;同时可修改配置文件,设置过期时间。
8.如权利要求1所述的一种实现数据缓存的方法,其特征在于,所述步骤(4)数据库中数据有更新时间字段,记录更新时间;当更新周期设置很大时,数据缓存中间件会根据当前时间和缓存中数据的修改时间做比较;当数据过期,即当前时间-缓存中数据修改时间>设置的保质期时,会进行一次更新数据缓存的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310624376.5A CN103617131B (zh) | 2013-11-26 | 2013-11-26 | 一种实现数据缓存的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310624376.5A CN103617131B (zh) | 2013-11-26 | 2013-11-26 | 一种实现数据缓存的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103617131A CN103617131A (zh) | 2014-03-05 |
CN103617131B true CN103617131B (zh) | 2017-02-22 |
Family
ID=50167834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310624376.5A Active CN103617131B (zh) | 2013-11-26 | 2013-11-26 | 一种实现数据缓存的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103617131B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227333B (zh) * | 2014-06-06 | 2019-11-05 | 中兴通讯股份有限公司 | 网元设备数据维护的方法和装置 |
CN104021192A (zh) * | 2014-06-13 | 2014-09-03 | 北京联时空网络通信设备有限公司 | 一种数据库更新方法及装置 |
CN104462194A (zh) * | 2014-10-28 | 2015-03-25 | 北京国双科技有限公司 | 一种业务数据的处理方法、装置及服务器 |
CN105630812A (zh) * | 2014-10-30 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 集群应用缓存刷新方法及装置 |
CN105700902A (zh) * | 2014-11-27 | 2016-06-22 | 航天信息股份有限公司 | 数据加载和刷新方法及装置 |
CN105138587B (zh) * | 2015-07-31 | 2019-09-10 | 小米科技有限责任公司 | 数据访问方法、装置和系统 |
CN106559452B (zh) * | 2015-09-28 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 集群环境下的数据处理方法及装置 |
CN105608197B (zh) * | 2015-12-25 | 2019-09-10 | Tcl集团股份有限公司 | 一种高并发下Memcache数据的获取方法及系统 |
CN105740383A (zh) * | 2016-01-27 | 2016-07-06 | 中国科学院计算技术研究所 | 一种大数据平台下数据库与缓存的数据一致性方法及系统 |
CN107291729B (zh) * | 2016-03-31 | 2021-05-07 | 北京北方华创微电子装备有限公司 | 数据更新方法及系统、半导体设备 |
CN106162248B (zh) * | 2016-06-27 | 2019-08-23 | 武汉斗鱼网络科技有限公司 | 直播平台推广位的管理方法及系统 |
CN106599071A (zh) * | 2016-11-18 | 2017-04-26 | 青岛海信移动通信技术股份有限公司 | 一种短信息的显示方法和装置 |
CN108614847B (zh) * | 2016-12-30 | 2022-02-01 | 北京京东尚科信息技术有限公司 | 一种数据的缓存方法及系统 |
CN108664520B (zh) * | 2017-04-01 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 维护数据一致性的方法、装置、电子设备和可读存储介质 |
CN107451236A (zh) * | 2017-07-26 | 2017-12-08 | 上海斐讯数据通信技术有限公司 | 数据缓存方法、装置和计算机处理设备 |
CN107622021A (zh) * | 2017-09-27 | 2018-01-23 | 郑州云海信息技术有限公司 | 一种缓存数据的方法及装置 |
CN108415922B (zh) * | 2017-09-30 | 2021-10-22 | 平安科技(深圳)有限公司 | 数据库修改方法及应用服务器 |
CN110019873B (zh) * | 2017-12-25 | 2021-08-27 | 深圳市优必选科技有限公司 | 人脸数据处理方法、装置及设备 |
CN108270854A (zh) * | 2018-01-15 | 2018-07-10 | 北京值得买科技股份有限公司 | 一种远程服务配置本地化的方法及系统 |
CN109325054A (zh) * | 2018-07-23 | 2019-02-12 | 中国建设银行股份有限公司 | 基于缓存的数据处理方法、系统和存储介质 |
CN109358805B (zh) * | 2018-09-03 | 2021-11-30 | 中新网络信息安全股份有限公司 | 一种数据缓存方法 |
CN111176907B (zh) * | 2020-01-06 | 2021-03-05 | 中科驭数(北京)科技有限公司 | 硬件数据库回滚方法、软件数据库回滚方法及装置 |
CN112528278A (zh) * | 2020-12-07 | 2021-03-19 | 天博电子信息科技有限公司 | 一种基于中间件缓存机制的网络数据存储及访问方法 |
CN118363884A (zh) * | 2024-04-29 | 2024-07-19 | 北京泰迪未来科技股份有限公司 | 一种分布式多级缓存方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169790A (zh) * | 2007-11-30 | 2008-04-30 | 中兴通讯股份有限公司 | 一种基于web应用的矩阵式数据缓存方法及装置 |
CN101707399A (zh) * | 2009-11-20 | 2010-05-12 | 深圳市科陆电子科技股份有限公司 | 电能信息采集方法及系统 |
CN102426594A (zh) * | 2011-10-31 | 2012-04-25 | 沈文策 | 对数据库进行操作的方法和系统 |
-
2013
- 2013-11-26 CN CN201310624376.5A patent/CN103617131B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169790A (zh) * | 2007-11-30 | 2008-04-30 | 中兴通讯股份有限公司 | 一种基于web应用的矩阵式数据缓存方法及装置 |
CN101707399A (zh) * | 2009-11-20 | 2010-05-12 | 深圳市科陆电子科技股份有限公司 | 电能信息采集方法及系统 |
CN102426594A (zh) * | 2011-10-31 | 2012-04-25 | 沈文策 | 对数据库进行操作的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103617131A (zh) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103617131B (zh) | 一种实现数据缓存的方法 | |
CN103856567B (zh) | 基于Hadoop分布式文件系统的小文件存储方法 | |
CN102902730B (zh) | 基于数据缓存的读数据方法及装置 | |
EP2797014B1 (en) | Database update execution according to power management schemes | |
CN103246696A (zh) | 高并发数据库的访问方法及应用于多服务器系统的方法 | |
US11599503B2 (en) | Path name cache for notifications of file changes | |
CN103885728A (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN105917319A (zh) | 存储器单元和方法 | |
CN110188108A (zh) | 数据存储方法、装置、系统、计算机设备及存储介质 | |
US20120290595A1 (en) | Super-records | |
US11347687B2 (en) | Incremental inline journaling in a journaled file system | |
CN111221828A (zh) | 一种提高数据库数据和缓存数据一致性的方法及终端 | |
CN105426321A (zh) | 采用远程位置信息的rdma友好缓存方法 | |
CN107888687B (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
CN103716375A (zh) | 基于分布式缓存的多级财政数据交互方法及系统 | |
US20230214354A1 (en) | Method and Device for Local Random Readahead of File in Distributed File System | |
US10936500B1 (en) | Conditional cache persistence in database systems | |
CN103631972B (zh) | 一种列访问感知的数据缓存方法及系统 | |
CN105100289A (zh) | 一种基于注解描述的Web缓存方法 | |
CN114706836B (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
CN107704603A (zh) | 一种实现读写分离的方法及装置 | |
CN105915619A (zh) | 顾及访问热度的网络空间信息服务高性能内存缓存方法 | |
CN110471914B (zh) | 一种实时数据处理中维度关联的方法及系统 | |
CN115469810A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN103353891A (zh) | 数据库管理系统及其数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191010 Address after: 110002 No.1 Shuguang street, Liaodongwan New District, Panjin City, Liaoning Province Co-patentee after: Sugon Information Industry Co., Ltd. Patentee after: Dawning Information System (Liaoning) Co., Ltd. Address before: 300384 Tianjin city Xiqing District Huayuan Industrial Zone (outer ring) Haitai Huake Street No. 15 1-3 Patentee before: Sugon Information Industry Co., Ltd. |
|
TR01 | Transfer of patent right |