一种服务器端数据存储设备及方法

文档序号:10534881阅读:842来源:国知局
一种服务器端数据存储设备及方法
【专利摘要】本发明提供了一种服务器端数据存储设备及方法,其可优化数据存储策略,有效缓解服务器的数据存储压力。该设备包含:接收装置,用于接收数据更新请求;以及处理装置,用于从所述数据更新请求内提取数据,并执行以下操作中的一者:将所述数据存入缓存内,并确定数据库内所述数据上一次被更新的时间,在本次更新距离所述数据上一次被更新超出一预设时间段的情况下,将所述数据从所述缓存内更新至所述数据库内;或将所述数据存入缓存内的一数据队列内,并采用先进先出的原则将该数据队列内的数据更新至所述数据库内。
【专利说明】
一种服务器端数据存储设备及方法
技术领域
[0001]本发明涉及信息技术,具体地,涉及一种服务器端数据存储设备及方法。
【背景技术】
[0002]随着互联网及信息技术的发展,各运营商的服务器面临了海量数据存储的压力。目前向服务器更新数据的是一般为将数据直接更新至该服务器的数据库。然而,在存在大批量数据需要写入数据库的情况下,服务器向数据库写入数据的压力将非常大。在服务器无法在合理的时间完成至数据库的数据写入的情况下,将会给客户带来不好的数据存储体验。

【发明内容】

[0003]本发明的目的是提供一种服务器端数据存储设备及方法,其可优化数据存储策略,有效缓解服务器的数据存储压力。
[0004]为了实现上述目的,本发明提供一种服务器端数据存储设备,该设备包含:接收装置,用于接收数据更新请求;以及处理装置,用于从所述数据更新请求内提取数据,并执行以下操作中的一者:将所述数据存入缓存内,并确定数据库内所述数据上一次被更新的时间,在本次更新距离所述数据上一次被更新超出一预设时间段的情况下,将所述数据从所述缓存内更新至所述数据库内;或将所述数据存入缓存内的一数据队列内,并采用先进先出的原则将该数据队列内的数据更新至所述数据库内。
[0005]其中,所述处理装置可在将所述数据存入缓存内或该缓存内的一数据队列内之后,针对所述数据更新请求发出数据更新完成的指示。
[0006]其中,所述处理装置还可用于对所述数据更新请求进行解析及校验。
[0007]其中,所述接收装置还可用于接收数据读取请求;所述处理装置还可用于响应于所述数据读取请求,从所述缓存内读取该数据读取请求所针对的数据,并发送该数据。
[0008]其中,所述处理装置还可用于在所述缓存内不存在该数据读取请求所针对的数据的情况下,从所述数据库内读取该数据读取请求所针对的数据,并发送该数据。
[0009]相应地,本发明还提供一种服务器端数据存储方法,该方法包含:接收数据更新请求;从所述数据更新请求内提取数据;以及以下操作中的一者:将所述数据存入缓存内,并确定数据库内所述数据上一次被更新的时间,在本次更新距离所述数据上一次被更新超出一预设时间段的情况下,将所述数据从所述缓存内更新至所述数据库内;或将所述数据存入缓存内的一数据队列内,并采用先进先出的原则将该数据队列内的数据更新至所述数据库内。
[0010]其中,该方法还可包含:在将所述数据存入缓存内或该缓存内的一数据队列内之后,针对所述数据更新请求发出数据更新完成的指示。
[0011 ]其中,该方法还可包含:在接收所述数据更新请求之后,对所述数据更新请求进行解析及校验。
[0012]其中,该方法还可包含:接收数据读取请求;响应于所述数据读取请求,从所述缓存内读取该数据读取请求所针对的数据,并发送该数据。
[0013]其中,该方法还可包含:在所述缓存内不存在该数据读取请求所针对的数据的情况下,从所述数据库内读取该数据读取请求所针对的数据,并发送该数据。
[0014]通过上述技术方案,可在需要向数据库更新数据的情况下,现将数据更新至缓存,之后再将数据从缓存更新至数据库。由于缓存的数据处理速度要远高于数据库的数据处理速度,因此可以很好地应对大批量数据的更新。对于存入缓存的数据,可采用懒惰更新的方式或数据队列更新的方式来该数据更新至数据库内。
[0015]本发明的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0016]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0017]图1为本发明提供的服务器端数据存储设备的结构示意图;
[0018]图2为本发明提供的服务器端数据存储设备的一实施例的结构示意图;以及
[0019]图3为本发明提供的服务器端数据存储方法的流程图。
[0020]附图标记说明
[0021]HO接收装置120处理装置
[0022]130缓存140数据库
【具体实施方式】
[0023]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0024]图1为本发明提供的服务器端数据存储设备的结构示意图。如图1所示,本发明提供一种服务器端数据存储设备,该设备包含:接收装置110,用于接收数据更新请求;以及处理装置120,用于从所述数据更新请求内提取数据,并执行以下操作中的一者:将所述数据存入缓存内,并确定数据库内所述数据上一次被更新的时间,在本次更新距离所述数据上一次被更新超出一预设时间段的情况下(例如超出一天时间),将所述数据从所述缓存内更新至所述数据库内;或将所述数据存入缓存内的一数据队列内,并采用先进先出的原则将该数据队列内的数据更新至所述数据库内。藉此,可在需要向数据库更新数据的情况下,现将数据更新至缓存,之后再将数据从缓存更新至数据库。由于缓存的数据处理速度要远高于数据库的数据处理速度,因此可以很好地应对大批量数据的更新。对于存入缓存的数据,可采用懒惰更新的方式或数据队列更新的方式来该数据更新至数据库内。
[0025]所述处理装置可在将所述数据存入缓存内或该缓存内的一数据队列内之后,针对所述数据更新请求发出数据更新完成的指示。由于存入缓存内的数据可在随后被更新至数据库内,虽然可能稍有延后,但该更新至数据库内的操作必然会由处理装置完成,因此在将所述数据存入缓存内或该缓存内的一数据队列内之后即针对所述数据更新请求发出数据更新完成的指示,可使得用户具有服务器对该数据更新操作及时响应的感知,提高了用户体验。
[0026]优选地,所述处理装置还可用于对所述数据更新请求进行解析及校验。该解析及校验可判断所述处理器接收到的请求具体是进行各种操作(例如,数据写入或读取),并对该请求进行简单的校验,例如数据是否完整、格式是否正确等等。但需要说明的是,该解析及校验不做复杂的验证,以提高服务器对请求的响应速度。之后,对于更新数据请求,该处理装置可从中提取数据,并将该数据更新至缓存系统。
[0027]所述接收装置还可用于接收数据读取请求;所述处理装置还可用于响应于所述数据读取请求,从所述缓存内读取该数据读取请求所针对的数据,并在所述缓存内存在该数据读取请求所针对的数据的情况下,发送该数据;在所述缓存内不存在该数据读取请求所针对的数据的情况下,从所述数据库内读取该数据读取请求所针对的数据,并发送该数据。藉此,通过优先从缓存内读取数据,可提高数据读取速度,从而有利于提高服务器对数据读取请求的响应速度。
[0028]图2为本发明提供的服务器端数据存储设备的一实施例的结构示意图。如图2所示,本发明的服务器端数据存储设备可实施于WEB服务器内。具体而言,WEB服务器可接收WEB请求,该请求用于请求数据更新或数据读取。之后,PHP(服务端脚本语言)对该WEB请求进行解析,判断其具体是进行各种操作(数据写入或读取),并对该WEB请求进行简单的校验,例如数据是否完整、格式是否正确等等。但需要说明的是,该PHP并不做复杂的验证,以提高对WEB请求的响应速度。之后,对于更新数据请求,该PHP可将该数据更新至缓存130。
[0029]缓存130在接收到所述数据之后,可先存储该数据;之后判断该数据上一次的更新时间,在上次更新时间与本次更新时间之差大于阈值(例如一天)的情况下,将该数据更新至数据库140(例如,非关系型数据库Mongo DB)内;否则不将该数据更新至数据库140内。可替换的,所述缓存还可将所述数据更新到缓存队列内,之后针对该队列内所存储的数据,采用先进先出的原则将该数据更新至数据库内。由于先将数据更新至缓存、之后再采用懒惰更新的方式或数据队列更新方式将该数据更新至数据库,可极大地缓解数据库在面临并发更新数据时的压力;
[0030]图3为本发明提供的服务器端数据存储方法的流程图。相应地,如图3所示,本发明还提供一种服务器端数据存储方法,该方法包含:接收数据更新请求;从所述数据更新请求内提取数据;以及以下操作中的一者:将所述数据存入缓存内,并确定数据库内所述数据上一次被更新的时间,在本次更新距离所述数据上一次被更新超出一预设时间段的情况下,将所述数据从所述缓存内更新至所述数据库内;或将所述数据存入缓存内的一数据队列内,并采用先进先出的原则将该数据队列内的数据更新至所述数据库内。有关该方法的具体细节及益处,可参阅以上针对服务器端数据存储设备的描述,于此不再赘述。
[0031]通过本发明的方案,可显著提高服务器对WEB请求的读写响应速度,尤其是对于大量的并发数据。经过测试,采用本发明方案的服务器每天可以应对3亿的PV(page view)访问,98%的请求都可以达到小于50ms的响应时间。另外,经进一步的压力测试,该服务器还可承受3倍于上述3亿PV访问量。然而,在对于没有应用本发明方案的服务器而言,其只能应对I亿的PV访问。
[0032]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0033]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0034]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种服务器端数据存储设备,其特征在于,该设备包含: 接收装置,用于接收数据更新请求;以及 处理装置,用于从所述数据更新请求内提取数据,并执行以下操作中的一者: 将所述数据存入缓存内,并确定数据库内所述数据上一次被更新的时间,在本次更新距离所述数据上一次被更新超出一预设时间段的情况下,将所述数据从所述缓存内更新至所述数据库内;或 将所述数据存入缓存内的一数据队列内,并采用先进先出的原则将该数据队列内的数据更新至所述数据库内。2.根据权利要求1所述的设备,其特征在于,所述处理装置在将所述数据存入缓存内或该缓存内的一数据队列内之后,还用于: 针对所述数据更新请求发出数据更新完成的指示。3.根据权利要求1所述的设备,其特征在于,所述处理装置还用于对所述数据更新请求进行解析及校验。4.根据权利要求1所述的设备,其特征在于, 所述接收装置还用于接收数据读取请求; 所述处理装置还用于响应于所述数据读取请求,从所述缓存内读取该数据读取请求所针对的数据,并发送该数据。5.根据权利要求4所述的设备,其特征在于,所述处理装置还用于在所述缓存内不存在该数据读取请求所针对的数据的情况下,从所述数据库内读取该数据读取请求所针对的数据,并发送该数据。6.一种服务器端数据存储方法,其特征在于,该方法包含: 接收数据更新请求; 从所述数据更新请求内提取数据;以及 以下操作中的一者: 将所述数据存入缓存内,并确定数据库内所述数据上一次被更新的时间,在本次更新距离所述数据上一次被更新超出一预设时间段的情况下,将所述数据从所述缓存内更新至所述数据库内;或 将所述数据存入缓存内的一数据队列内,并采用先进先出的原则将该数据队列内的数据更新至所述数据库内。7.根据权利要求6所述的方法,其特征在于,该方法还包含: 在将所述数据存入缓存内或该缓存内的一数据队列内之后,针对所述数据更新请求发出数据更新完成的指示。8.根据权利要求6所述的方法,其特征在于,该方法还包含: 在接收所述数据更新请求之后,对所述数据更新请求进行解析及校验。9.根据权利要求6所述的方法,其特征在于,该方法还包含: 接收数据读取请求; 响应于所述数据读取请求,从所述缓存内读取该数据读取请求所针对的数据,并发送该数据。10.根据权利要求9所述的方法,其特征在于,该方法还包含: 在所述缓存内不存在该数据读取请求所针对的数据的情况下,从所述数据库内读取该数据读取请求所针对的数据,并发送该数据。
【文档编号】G06F17/30GK105893424SQ201510882809
【公开日】2016年8月24日
【申请日】2015年12月4日
【发明人】罗晓东
【申请人】乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1