[发明专利]一种将数据通过请求日志的形式持久化到内存数据库中的方法在审
申请号: | 202111192877.1 | 申请日: | 2021-10-13 |
公开(公告)号: | CN114048182A | 公开(公告)日: | 2022-02-15 |
发明(设计)人: | 贾枭;孙振东 | 申请(专利权)人: | 上海那一科技有限公司 |
主分类号: | G06F16/18 | 分类号: | G06F16/18;G06F11/14 |
代理公司: | 上海国瓴律师事务所 31363 | 代理人: | 傅耀 |
地址: | 200240 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 通过 请求 日志 形式 持久 内存 数据库 中的 方法 | ||
本发明提供了一种将数据通过请求日志的形式持久化到内存数据库中的方法,包括如下步骤:A,服务器启动;B,服务器端接收到客户端请求;C,服务器端处理请求并获取或修改内存数据库中的数据;D,服务器端将请求记录到日志中。其中本发明的有益效果是:能够简化复杂结构数据的持久化,适合处理具有复杂结构或者用户定制结构的数据。
技术领域
本发明涉及及计算机软件领域,特别涉及一种将数据通过请求日志的形式持久化到内存数据库中的方法。
背景技术
传统的数据库分为关系型和非关系型两种。关系型数据库使用关系模型来组织并存储数据,非关系型数据库以键值对的形式组织并存储数据。但复杂的数据关系,无法通过关系模型或者键值对来描述。在这种情况下,使用传统数据库会变得尤为复杂。
此外,传统的数据库的数据存放在文件中,对数据的操作都要通过文件I/O,速度较慢。传统的数据库往往配备一系列数据管理程序,操作数据需要通过这些管理程序,使用起来较为复杂。
传统的内存数据库的持久化一般采用两种方式,一是将数据存入磁盘,二是将数据记录到日志中,这两种方式不适合处理具有复杂结构或者用户定制结构的数据。
为了解决上述问题,本发明通过记录日志的方式对数据进行持久化,与传统记录日志的内存数据库不同的地方在于,本发明是将数据相关的请求记录在日志中,而不是将数据记录在日志中。并且通过对日志中请求进行重放的方式来恢复内存数据库,所有对数据的直接操作交给相应请求的处理函数。数据库无需关注数据的结构,能够存储复杂结构或定制化结构的数据,并且实现简单,易于使用。
此发明并不是为了优化现有数据库系统的性能,而是在选择性能较好的内存数据库后,使其能够简化复杂结构数据的持久化。
发明内容
为了解决上述技术问题,本发明中披露了一种将数据通过请求日志的形式持久化到内存数据库中的方法,本发明的技术方案是这样实施的:
一种将数据通过请求日志的形式持久化到内存数据库中的方法,包括如下步骤,
A,服务器启动;
B,服务器端接收到客户端请求;
C,服务器端处理请求并获取或修改内存数据库中的数据;
D,服务器端将请求记录到日志中。
优选地,所述C步骤中具体步骤如下,
服务器端处理客户端发送过来的请求,处理该请求可能需要从内存数据库中获取数据,或修改内存数据库中的数据。如果该请求不成功,继续执行B步骤;若请求是GET请求,则内存数据库中的数据没有被修改,继续执行B步骤。若请求既成功,且不是GET请求,则执行D步骤。
优选地,所述A步骤和所述B步骤之间还包括E步骤,从日志中恢复数据。
优选地,所述E步骤中,服务器端读取日志文件,根据日志重新在内存中构建数据库。
优选地,所述E步骤包括,
E1,打开日志文件;
E2,读取一行请求;
E3,服务器重放这条请求,并继续执行E2。
优选地,所述E1步骤中,首先打开日志文件,若失败则结束步骤E,若成功,则继续执行步骤E2。
优选地,所述E2步骤中,首先从日志文件中读取一行请求,若发生EOF,则结束步骤E,若未发生EOF,则继续执行步骤E3。
优选地,所述E3步骤中,服务器处理E2步骤中的读取的请求,并在内存数据库中产生数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海那一科技有限公司,未经上海那一科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111192877.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种紫铜板精密淬火炉及其淬火工艺
- 下一篇:一种肺功能锻炼装置控制电路
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置