CN103678181B - 一种缓存数据的保护方法 - Google Patents
一种缓存数据的保护方法 Download PDFInfo
- Publication number
- CN103678181B CN103678181B CN201310664424.3A CN201310664424A CN103678181B CN 103678181 B CN103678181 B CN 103678181B CN 201310664424 A CN201310664424 A CN 201310664424A CN 103678181 B CN103678181 B CN 103678181B
- Authority
- CN
- China
- Prior art keywords
- data
- temporary file
- file
- temporary
- program
- 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
Abstract
本发明涉及计算机领域,特别涉及一种缓存数据的保护方法。本发明在程序启动时,在电脑的任意位置生成一个任意名字的临时文件夹来保存临时文件,当程序接收到数据时在所述临时文件夹中生成一个临时文件,一直到这个临时文件中写满了数据,接下来将接收到的数据写入另一个临时文件;然后另开启线程读取前一个已满的临时文件中的数据插入到所述程序的数据库中,插入成功后则删除此临时文件,从而在出现意外关机等异常情况时候,硬盘中的数据不会丢失,起到了缓存的保护作用。本发明的技术方案采用硬盘做缓存,把缓存保存到硬盘的文件中,当出现意外关机等异常情况时候,内存中的数据会丢失而硬盘中的数据不会丢失,因此起到了缓存的保护作用。
Description
技术领域
本发明涉及计算机领域,特别涉及一种缓存数据的保护方法。
背景技术
目前行业中使用的数据缓存,都是把缓存放在计算机内存中,当数据达到一定程度后再往目的数据库中录入数据。但是当遇到断电或者突然死机等突发情况时,缓存中的数据来不及写入目的数据库中,当计算机再启动时缓存中的数据已经丢失,因此非常需要一种缓存数据的保护方法来对数据存储过程中的数据缓存提供安全保障。
发明内容
本发明所要解决的技术问题是提供一种缓存数据的保护方法,解决了现有技术中遇到突发情况时,缓存中的数据难以得到保障的技术问题。
本发明解决上述技术问题的技术方案如下:一种缓存数据的保护方法,包括以下步骤:
a)启动任一程序;
b)判断计算机中是否存在与所述程序相对应的临时文件夹,若不存在,则在计算机的任意位置建立所述临时文件夹,并在所述程序的配置文件中记录所述临时文件夹的位置,然后进入步骤c;若存在,则直接进入步骤c;
c)所述程序开始接收数据;
d)判断所述临时文件夹中是否存在未存满数据的临时文件,若不存在,则在所述临时文件夹下面随机命名生成临时文件,并记录所建立临时文件的的文件名和临时文件所写入的数据量,所述新生成的临时文件的数据量计为0,然后进入步骤e;若存在,则直接进入步骤e;
e)将所接收的数据写入所述未存满数据的临时文件,每接收一条数据,所述临时文件的数据量加1;
f)判断所述临时文件中的数据量是否达到预先设定的最大值,若没有达到最大值,则跳转进入步骤c,继续接收数据;若达到最大值,则所述临时文件存储数据已满,读取所述已满的临时文件中的数据插入所述程序的数据库;
g)判断所述读取的数据是否插入成功,若插入成功则进入步骤h;若插入不成功,则所述数据继续保留在所述临时文件中,并跳转至步骤c;
h)判断所述已满的临时文件中是否存在未成功插入的数据,若存在,则跳转至步骤f;若不存在,则删除所述已满的临时文件,并进入步骤c,继续接收数据。
进一步,步骤b中,所述临时文件夹建立在所述程序的根目录下。
进一步,步骤d中,采用变量file_name记录新生成的临时文件的文件名;若临时文件夹中没有临时文件,则所述变量file_name置为空。
进一步,步骤d中,采用变量count来对所述临时文件中写入的数据量进行计算,每写入一条数据,所述变量count加1。
进一步,步骤f中,所述预先设定的数据量的最大值为50~100。
进一步,步骤f中,若数据量达到最大值,读取所述已满的临时文件中的数据插入所述程序的数据库后,所述file_name置为空,所述变量count置为0。
进一步,步骤f中,若数据量没有达到最大值,则先判断距离上次接收数据的时间间隔是否达到设定间隔,若达到设定间隔,则读取所述临时文件中的数据插入所述程序的数据库,且所述file_name置为空,所述变量count置为0;若没有达到设定间隔,则跳转至步骤c,继续接收数据。
进一步,所述时间间隔设为20s。
本发明的有益效果是:本发明采用硬盘做缓存,把缓存保存到硬盘的文件中,当出现意外关机等异常情况时候,内存中的数据会丢失而硬盘中的数据不会丢失,因此起到了缓存的保护作用。
附图说明
图1为本发明一种缓存数据的保护方法的流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明的技术方案能够在程序启动时,在电脑的任意位置生成一个任意名字的临时文件夹来保存临时文件,当程序接收到数据时在此文件夹中生成一个临时文件,一直到这个临时文件写入了一定量的数据,接下来接收到的数据写入另一个临时文件。然后另开启线程读取前一个已满的临时文件中的数据插入到所述程序的数据库中,插入成功后则删除此临时文件,从而在出现意外关机等异常情况时候,硬盘中的数据不会丢失,起到了缓存的保护作用。
如图1所示,为本发明一种缓存数据的保护方法的流程示意图。
以下以“治安卡口服务”程序来对本发明技术方案的步骤进行具体描述。包括以下步骤:
步骤1、启动“治安卡口服务”程序。
步骤2、判断所述“治安卡口服务”程序的根目录下面是否存在临时文件夹DB,如果不存在,则在“治安卡口服务”程序的根目录下面生成临时文件夹DB,并在“治安卡口服务”程序的配置文件中记录临时文件夹DB的位置,然后进入步骤3;若存在,则直接进入步骤3。在其他实施例中,所述临时文件夹可以任意命名,并建立在计算机的任意位置。
步骤3、遍历所述临时文件夹DB,检测所述临时文件夹DB中是否存在已存满数据的临时文件,若有,则开启一个单独线程进入步骤7,并新建一记录临时文件文件名的变量file_name,此时临时文件夹中没有临时文件,file_name置为空;并新建一个变量count来对所述临时文件中写入的数据量进行计算,此时没有临时文件,变量count置为0,以后每写入一条数据,所述变量count加1。
步骤4、建立网络通信开始接收相机传输过来的过往车辆数据,当接收到一条数据时,判断所述临时文件夹中变量file_name是否为空,若为空,则在所述临时文件夹下面,按时间生成一个临时文件例如20131125093011.txt,这表示2013-11-259:30:11,并用变量file_name记录下此文件名,进入下一步;若不为空,则直接进入下一步。本步骤中,相机为安装在公路上的卡口相机,所述卡口相机会记录下每个过往车辆的信息,每一辆车对应一条信息,车辆的信息通过网络协议传输到“治安卡口服务”程序中。
步骤5、把程序接收到的数据写入所述临时文件中,每写入一个数据,所述count变量计数加1。
步骤6、设定count变量的最大值为100,判断变量count的值是否已经达到设定的最大值100,如果达到最大值则进入下一步,并把file_name置为空,count置为0;如果没达到最大值,则判断距离上次接收数据的时间间隔是否达到设定间隔20s,若达到设定间隔20,则进入步骤7;若没有达到设定间隔,则继续接收数据,并将所述接收的数据存入所述未满的临时文件中。
步骤7、读取所述临时文件中的数据,并将读取的数据插入所述程序的数据库中,且所述file_name置为空,所述变量count置为0。
步骤8、判断数据是否插入成功,若插入成功则继续判断所述已满的临时文件中是否存在未成功插入的数据,若不存在未成功插入的数据,则删除此临时文件,若存在未成功插入的数据,则跳转进入步骤6;如果插入不成功则跳到步骤4继续接收数据,未插入成功的数据继续保留在临时文件中。
本发明的技术方案采用硬盘做缓存,把缓存保存到硬盘的文件中,当出现意外关机等异常情况时候,内存中的数据会丢失而硬盘中的数据不会丢失,因此起到了缓存的保护作用。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种缓存数据的保护方法,包括以下步骤:
a)启动任一程序;
b)判断计算机中是否存在与所述程序相对应的临时文件夹,若不存在,则在计算机的任意位置建立所述临时文件夹,并在所述程序的配置文件中记录所述临时文件夹的位置,然后进入步骤c;若存在,则直接进入步骤c;
c)所述程序开始接收数据;
d)判断所述临时文件夹中是否存在未存满数据的临时文件,若不存在,则在所述临时文件夹下面随机命名生成临时文件,并记录所建立临时文件的的文件名和临时文件所写入的数据量,新生成的临时文件的数据量计为0,然后进入步骤e;若存在,则直接进入步骤e;
e)将所接收的数据写入所述未存满数据的临时文件,每接收一条数据,所述临时文件的数据量加1;
f)判断所述临时文件中的数据量是否达到预先设定的最大值,若没有达到最大值,则跳转进入步骤c,继续接收数据;若达到最大值,则所述临时文件存储数据已满,读取所述已满的临时文件中的数据插入所述程序的数据库;
g)判断所述读取的数据是否插入成功,若插入成功则进入步骤h;若插入不成功,则所述数据继续保留在所述临时文件中,并跳转至步骤c;
h)判断所述已满的临时文件中是否存在未成功插入的数据,若存在,则跳转至步骤f;若不存在,则删除所述已满的临时文件,并进入步骤c,继续接收数据。
2.根据权利要求1所述的一种缓存数据的保护方法,其特征在于:步骤b中,所述临时文件夹建立在所述程序的根目录下。
3.根据权利要求1所述的一种缓存数据的保护方法,其特征在于:步骤d中,采用变量file_name记录新生成的临时文件的文件名;若临时文件夹中没有临时文件,则所述变量file_name置为空。
4.根据权利要求1所述的一种缓存数据的保护方法,其特征在于:步骤d中,采用变量count来对所述临时文件中写入的数据量进行计算,每写入一条数据,所述变量count加1。
5.根据权利要求1所述的一种缓存数据的保护方法,其特征在于:步骤f中,所述预先设定的数据量的最大值为50~100。
6.根据权利要求3所述的一种缓存数据的保护方法,其特征在于:步骤f中,若数据量达到最大值,读取所述已满的临时文件中的数据插入所述程序的数据库后,file_name置为空。
7.根据权利要求4所述的一种缓存数据的保护方法,其特征在于:步骤f中,若数据量达到最大值,读取所述已满的临时文件中的数据插入所述程序的数据库后,变量count置为0。
8.根据权利要求3所述的一种缓存数据的保护方法,其特征在于:步骤f中,若数据量没有达到最大值,则先判断距离上次接收数据的时间间隔是否达到设定间隔,若达到设定间隔,则读取所述临时文件中的数据插入所述程序的数据库,且file_name置为空;若没有达到设定间隔,则跳转至步骤c,继续接收数据。
9.根据权利要求4所述的一种缓存数据的保护方法,其特征在于:步骤f中,若数据量没有达到最大值,则先判断距离上次接收数据的时间间隔是否达到设定间隔,若达到设定间隔,则读取所述临时文件中的数据插入所述程序的数据库,且变量count置为0;若没有达到设定间隔,则跳转至步骤c,继续接收数据。
10.根据权利要求8或9所述的一种缓存数据的保护方法,其特征在于:所述时间间隔设为20s。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310664424.3A CN103678181B (zh) | 2013-12-10 | 2013-12-10 | 一种缓存数据的保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310664424.3A CN103678181B (zh) | 2013-12-10 | 2013-12-10 | 一种缓存数据的保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678181A CN103678181A (zh) | 2014-03-26 |
CN103678181B true CN103678181B (zh) | 2016-08-17 |
Family
ID=50315806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310664424.3A Active CN103678181B (zh) | 2013-12-10 | 2013-12-10 | 一种缓存数据的保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678181B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228109B (zh) * | 2018-01-17 | 2021-05-25 | 合肥联宝信息技术有限公司 | 一种电子设备的保护数据方法、装置及计算机存储介质 |
CN112929463A (zh) * | 2021-01-26 | 2021-06-08 | 网宿科技股份有限公司 | 一种基于dns的流量代理方法、服务器及系统 |
CN112965950A (zh) * | 2021-03-09 | 2021-06-15 | 浪潮云信息技术股份公司 | 一种实现流式数据写入对象存储的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833489A (zh) * | 2010-05-06 | 2010-09-15 | 北京邮电大学 | 一种文件实时监控和智能备份的方法 |
CN101187887B (zh) * | 2006-11-15 | 2012-05-16 | 鸿富锦精密工业(深圳)有限公司 | 具有数据临时保护功能的存储装置及方法 |
CN102841674A (zh) * | 2012-07-25 | 2012-12-26 | 中国科学院上海微系统与信息技术研究所 | 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100376435B1 (ko) * | 2001-03-28 | 2003-03-17 | 주식회사 피엔에스텍 | 컴퓨터 하드디스크에 저장된 데이터 보호 장치 및 방법그리고 컴퓨터가 그 방법을 수행하도록 하는 프로그램을기록한 컴퓨터로 읽을 수 있는 기록매체 |
-
2013
- 2013-12-10 CN CN201310664424.3A patent/CN103678181B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187887B (zh) * | 2006-11-15 | 2012-05-16 | 鸿富锦精密工业(深圳)有限公司 | 具有数据临时保护功能的存储装置及方法 |
CN101833489A (zh) * | 2010-05-06 | 2010-09-15 | 北京邮电大学 | 一种文件实时监控和智能备份的方法 |
CN102841674A (zh) * | 2012-07-25 | 2012-12-26 | 中国科学院上海微系统与信息技术研究所 | 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103678181A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104462563B (zh) | 一种文件存储方法和系统 | |
CN107729558B (zh) | 文件系统碎片整理的方法、系统、装置及计算机存储介质 | |
CN103514106B (zh) | 一种数据缓存方法 | |
CN102436478B (zh) | 一种实现海量数据存取的系统及方法 | |
CN103678181B (zh) | 一种缓存数据的保护方法 | |
CN104866610B (zh) | 一种基于相似类型匹配估算的SQLite删除数据恢复方法 | |
US10353820B2 (en) | Low-overhead index for a flash cache | |
CN103347009A (zh) | 一种信息过滤方法及装置 | |
CN102231137B (zh) | 一种数据存储系统及方法 | |
KR20170041712A (ko) | 데이터베이스 고장 시의 데이터 저장 | |
CN106910528A (zh) | 一种固态硬盘数据巡检的优化方法及装置 | |
CN106648442A (zh) | 一种元数据节点的内存镜像方法、装置 | |
CN107273449B (zh) | 一种基于内存数据库的断点处理方法及系统 | |
CN103455391B (zh) | 一种动态调整的数据保护的装置和方法 | |
CN104636218B (zh) | 数据恢复方法及装置 | |
CN112765137B (zh) | 基于区块分布式区块链的区块同步方法及电子设备 | |
US11226898B2 (en) | Data caching method and apparatus | |
CN102750342B (zh) | 一种集群文件系统数据一致性的方法 | |
CN105404824A (zh) | 异步数据缓加密系统及方法 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN106406771A (zh) | 日志记录方法及日志记录器 | |
CN103077187A (zh) | 日志管理方法和日志管理系统 | |
CN113806087B (zh) | 一种基于下刷速度调整业务速度的方法和装置 | |
CN103049351B (zh) | 多元数据服务器的日志处理方法和装置 | |
CN112765683B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211022 Address after: 541001 floor 1, building 2, block b5b6, No. 27, Zhongyin Road, Xiufeng District, Guilin City, Guangxi Zhuang Autonomous Region Patentee after: Guangxi Great Wall Computer Technology Co.,Ltd. Address before: 541001 the Guangxi Zhuang Autonomous Region Changhai Xiufeng District, Guilin City Road No. 3 Patentee before: GUILIN SEATECH Co.,Ltd. |