掌桥专利:专业的专利平台
掌桥专利
首页

数据存储方法及装置

文献发布时间:2023-06-19 18:37:28


数据存储方法及装置

技术领域

本发明涉及信息安全技术领域,尤其涉及数据存储方法及装置。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

在银行系统中,交易以账号为单位进行处理,而大型银行往往有着巨大的存量账号和与之对应的庞大数据。这些数据统一存储在银行的数据库中,存储设备与存储条件是完全一样的。但不同账号的使用频率却千差万别,有的账号随时都会发生交易,而有的账号数年也不曾使用。如果银行采用统一方式管理,采用低性能的数据存储方式,则不能满足高频账号的使用需求,导致交易超时或卡顿;而采用高性能的数据存储方式,面对庞大的数据,又会导致成本成倍上升。当前的银行数据存储方法无法同时满足数据处理效率和大数据量存储。

发明内容

本发明实施例提供一种数据存储方法,应用于应用服务器,用以在满足大数据量存储的同时,提高数据的处理效率,该方法包括:

在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求;

接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻;

计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;

在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录;其中,数据记录中包含数据标识、数据标识对应的数据结果、数据标识的数据热度、第一发送时刻;

将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。

本发明实施例还提供一种数据存储装置,应用于应用服务器,用以在满足大数据量存储的同时,提高数据的处理效率,该装置包括:

第一处理模块,用于在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求;其中,数据获取请求中携带有待获取数据标识;

第二处理模块,用于接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻;

第三处理模块,用于计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;

第四处理模块,用于在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录;其中,数据记录中包含数据标识、数据标识对应的数据结果、数据标识的数据热度、第一发送时刻;

第五处理模块,用于将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据存储方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法。

本发明实施例中,在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求;接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻;计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录;其中,数据记录中包含数据标识、数据标识对应的数据结果、数据标识的数据热度、第一发送时刻;将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。这样,可以根据数据结果的访问热度将数据结果存储在不同的存储位置中,而不同存储位置的数据读写效率不同,因此,可以在满足大数据量存储的同时,提高数据的处理效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中提供的一种数据存储方法的流程图;

图2为本发明实施例中提供的一种数据存储方法存储过程中使用的服务器架构示意图;

图3为本发明实施例中提供的一种数据存储方法存储过程中使用应用服务器、Redis服务器、数据库服务器进行存储的逻辑特征示例图;

图4为本发明实施例中提供的一种数据存储装置的示意图;

图5为本发明实施例中提供的一种计算机设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。

本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。

经研究发现,在银行系统中,交易以账号为单位进行处理,而大型银行往往有着巨大的存量账号和与之对应的庞大数据。这些数据统一存储在银行的数据库中,存储设备与存储条件是完全一样的。但不同账号的使用频率却千差万别,有的账号随时都会发生交易,而有的账号数年也不曾使用。如果银行采用统一方式管理,采用低性能的数据存储方式,则不能满足高频账号的使用需求,导致交易超时或卡顿;而采用高性能的数据存储方式,面对庞大的数据,又会导致成本成倍上升。如:

目前某些系统逻辑上统一采用传统数据库,但使用不同配置的服务器进行物理分库。例如采用高配机型存储高速分库,低配机型存储低速分库。账号在使用频率发生明显变化时,具有一定的机制从分库中进行调整。但是在同一数据库的不同分库中进行数据迁移,容易导致新的问题。例如无法完成数据部分备份或恢复(因为数据库整体改变,必须以全量的方式备份/恢复,而无法分区域部分备份/恢复,这样做会导致数据错乱)。在分布式系统中,采用快慢数据库分区的形式,还会导致后续的处理过程中,高频账号被汇集在同一服务器处理,虽然提高了数据存储性能,但降低了后续的数据处理性能。

而某些系统采用Redis服务器+数据库服务器,或者应用服务器本地内存+数据库服务器的两级存储机制。两级存储机制性能提升有限,且优化方式较为死板。

因此当前的银行数据存储方法无法同时满足数据处理效率和大数据量存储。

针对上述研究,本发明实施例提供一种数据存储方法,应用于应用服务器,如图1所示,包括:

S101:在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求;

S102:接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻;

S103:计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;

S104:在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录;其中,数据记录中包含数据标识、数据标识对应的数据结果、数据标识的数据热度、第一发送时刻;

S105:将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。

本发明实施例中,在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求;接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻;计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录;其中,数据记录中包含数据标识、数据标识对应的数据结果、数据标识的数据热度、第一发送时刻;将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。这样,可以根据数据结果的访问热度将数据结果存储在不同的存储位置中,而不同存储位置的数据读写效率不同,因此,可以在满足大数据量存储的同时,提高数据的处理效率。

下面对上述数据存储方法加以详细说明。

如图2所示,为本发明实施例提供的一种数据存储方法存储过程中使用的服务器架构示意图,本发明实施例的数据存储方法在存储数据时例如会使用到多台分布式应用服务器、至少一套远程字典Redis服务器、以及至少一套数据库(Database,DB)服务器。

其中,传统数据库(如MySQL、oracle、DB2等),其存储容量大,通常可以达到几千万甚至数十亿级别,但访问速度慢,在频繁读写的情况下会导致整个系统处理效率更加低下。Redis服务器,其存储容量较大,通常可以达到十万至千万条数据级别。成本较传统数据库高,但在频繁读写时效率远高于传统数据库。应用服务器本地内存,其存储容量非常小,且扩展困难。应用服务器本地内存优先需要供应用执行使用,其余可用来供数据存储的至多也只有几百至数千条数据。但它的执行和修改速度高。

具体的,如图3所示,为本发明实施例提供的一种数据存储方法存储过程中使用应用服务器、Redis服务器、数据库服务器进行存储的逻辑特征示例图,其中,数据库(DB)服务器保有全量数据,数据库服务器记录中要包含最后访问时间。数据库服务器中如发现活跃数据则暂存入Redis服务器,Redis服务器为Key-Value方式存储,其中Key为访问键值(例如数据标识),Value例如包含数据记录中的数据标识对应的数据结果、数据标识的数据热度、第一发送时刻,如按照“数据标识对应的数据结-第一发送时刻(即每次更新时更新为最后处理时间)-数据热度-采样时间(也即最后处理时间)”进行编码后存储。活跃数据中的批量处理数据与更加活跃的热点数据需要进行锁定并读取至服务器本地内存中进行存储。由于分布式应用服务器存在多台,且每台仅能访问自己的本地内存,故应用服务器本地内存分为两个区域:共享数据区与独占数据区。其中共享数据区允许其他应用服务器也从Redis中获取相同数据(一般用于客户信息等数据的快速查找等只读操作),而独占数据区存储的数据不能让其他应用服务器同时获得(一般用于批量处理或动账类的尖峰交易)。

具体的,应用服务器在接收到数据获取请求时,根据数据获取请求,从应用服务器本地内存中查找所述数据请求对应的数据结果;在应用服务器本地内存中未查找到数据结果时,访问Redis服务器查找数据获取请求对应的数据结果。在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求。

此处,数据标识例如包括用户的银行账号,用户在银行的其他用户标识等。

本发明一实施例中,应用服务器本地内存访问时间近似为100ns,Redis服务器访问时间近似为70μs,数据库访问时间近似为0.2-2ms,数量级上的差距导致最坏情况的进行三次数据查找,总效率也不会比只查找数据库低很多。

接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻,计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;根据第一时长差值与第一预设时长,来确定数据标识是否经常被访问,因此在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录。将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。

此处,初始数据热度例如可以结合实际的应用场景进行设置,每一数据标识的初始数据热度可以设置为同一数值,也可以根据数据标识对应数据结果的重要程度设置为不同的数值。

另外,第一预设时长用于评估数据标识被访问的时间间隔是否符合热点数据标识的条件,第一预设时长可以结合实际的应用场景进行设置。

例如,网银、手机银行的登录超时时间一般为15分钟,所以认为15分钟内再次操作的即为活跃数据,因此可将第一预设时长设置为15分钟。

该实施例中,将经常被访问的数据标识对应的数据结果存储在Redis服务器中,再次获取数据标识对应的数据结果时,就可以从Redis服务器中获取数据结果,提高查找该数据标识对应的数据结果的效率。

另外,数据记录在每次数据标识被访问时都会进行更新,例如更新数据记录中的数据热度、第一发送时刻(更新为数据标识本次被访问的访问时刻,即本次应用服务器向Redis服务器发送该数据标识的数据获取请求的发送时刻)。因此根据数据标识对应的数据记录,可以实时确定数据标识被访问的情况,进而可以根据数据记录确定是否继续将数据标识对应的数据结果存储在Redis服务器中,或者是否需要进一步将该数据标识对应的数据结果存储至应用服务器本地内存中、或者是否需要从应用服务器本地内存中移除。以此避免Redis服务器或者应用服务器本地内存被长期无效占用,避免资源浪费,也能确保访问频率较高的热点数据标识的数据结果能存储在应用服务器本地内存储中,提高数据标识对应的数据结果的查找效率。

本发明一实施例中,再次获取数据标识对应的数据结果时,更新数据标识对应的数据记录包括:再次获取数据标识对应的数据结果时,向Redis服务器发送数据获取请求;根据第一发送时刻、向Redis服务器发送数据获取请求的第二发送时刻、以及第一预设时长,确定更新后的数据热度;根据数据标识、数据标识对应的数据结果、更新后的数据热度、以及第二发送时刻得到更新后的数据记录;其中,更新后的数据记录中包含数据标识、数据标识对应的数据结果、更新后的数据热度、第二发送时刻。

本发明一实施例中,根据第一发送时刻、向Redis服务器发送数据获取请求的第二发送时刻、以及第一预设时长,确定更新后的数据热度,例如包括:计算第二发送时刻与第一发送时刻之间的第二时长差值;在第二时长差值大于第一预设时长时,采用下述公式确定更新后的访问热度:更新后的访问热度=更新前的访问热度×(第二发送时刻-第一预设时长)÷(第二发送时刻-第一发送时刻)+1;在第二时长差值不大于第一预设时长时,采用下述公式确定更新后的访问热度:更新后的访问热度=更新前的访问热度+1。

本发明一实施例中,在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中,例如包括:在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器的共享数据区。

此外,为了进一步提高数据存储效率,方便批量数据处理或者交易峰值处理,本发明另一实施例中,数据记录中还包括:分布处理标识字段、以及锁定标识字段;还包括:在数据获取请求发生在批量数据处理或者交易峰值时,将数据记录中的分布处理标识字段、以及锁定标识字段设置为锁定标识;将分布处理标识字段、以及锁定标识字段全为锁定标识的数据记录存储至应用服务器的独占数据区;在对存储在独占数据区的数据记录中的数据结果使用完时,将独占数据区的数据记录中的分布处理标识字段、以及锁定标识字段设置为非锁定标识后,将独占数据区的数据记录存储至Redis服务器中。

例如,Redis服务器中Value中数据记录的内容为“数据标识对应的数据结果-锁定标识字段-分布处理标识字段-数据标识最近一次被访问时刻-数据热度-采样时间(即数据标识最近一次被访问时刻)”,数据标识甲在Value中数据记录的内容为“[Data]|N|N|20210716101803589|2|20210716101803589”,在数据获取请求发生在批量数据处理或者交易峰值时,将|N|N|设置为|Y|Y|。

本发明另一实施例中,在接收到数据标识对应的数据修改指令时,将Redis服务器中数据标识对应的数据记录中的锁定标识字段设置为锁定标识,例如,将“[Data]|N|N|20210716101803589|2|20210716101803589”设置为“[Data]|Y|N|20210716101803589|2|20210716101803589”;在对数据标识对应的数据结果进行修改后,将Redis服务器中数据标识对应的数据记录中的锁定标识字段设置为非锁定标识,例如将“[Data]|Y|N|20210716101803589|2|20210716101803589”设置为“[Data]|N|N|20210716101803589|2|20210716101803589”。

此外,本发明一实施中,数据处理结束,完成同步时,例如遵循以下优先级:

I.Redis服务器已锁定时同步以Redis服务器点的数据为准;

II.Redis服务器未锁定时同步以数据库服务器的数据为准;

III.应用服务器缓存处理结束后更新Redis服务器结果并解锁;

IV.应用服务器缓存处理失败后需回滚交易(撤销交易的所有改动),并解锁Redis服务器。

此外,为了进一步避免存储空间浪费,本发明一实施例中,还包括:在预设时刻,计算每一数据记录最近一次被访问的第二访问时刻与预设时刻之间的第三时长差值;清除Redis服务器、应用服务器本地内存中第三时长差值大于第二预设时长的数据记录。

本发明另一实施例中,还包括:在数据获取请求的数量大于预设数量阈值时,根据数据记录最近一次被访问的第二访问时刻,对应用服务器、以及Redis服务器中的数据记录进行排序,删除不在预设排序范围的内的数据记录。

本发明实施例中还提供了一种数据存储装置,如下面的实施例所述。由于该装置解决问题的原理与数据存储方法相似,因此该装置的实施可以参见数据存储方法的实施,重复之处不再赘述。

如图4所示,为本发明实施例提供的一种数据存储装置的示意图,应用于应用服务器,包括:

第一处理模块401,用于在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求;其中,数据获取请求中携带有待获取数据标识;

第二处理模块402,用于接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻;

第三处理模块403,用于计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;

第四处理模块404,用于在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录;其中,数据记录中包含数据标识、数据标识对应的数据结果、数据标识的数据热度、第一发送时刻;

第五处理模块405,用于将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。

在一种可能的实施方式中,还包括:查找模块,用于根据数据获取请求,从应用服务器本地内存中查找所述数据请求对应的数据结果;在应用服务器本地内存中未查找到数据结果时,访问Redis服务器查找数据获取请求对应的数据结果。

在一种可能的实施方式中,第五处理模块,具体用于再次获取数据标识对应的数据结果时,向Redis服务器发送数据获取请求;根据第一发送时刻、向Redis服务器发送数据获取请求的第二发送时刻、以及第一预设时长,确定更新后的数据热度;根据数据标识、数据标识对应的数据结果、更新后的数据热度、以及第二发送时刻得到更新后的数据记录;其中,更新后的数据记录中包含数据标识、数据标识对应的数据结果、更新后的数据热度、第二发送时刻。

在一种可能的实施方式中,第五处理模块,具体用于计算第二发送时刻与第一发送时刻之间的第二时长差值;在第二时长差值大于第一预设时长时,采用下述公式确定更新后的访问热度:更新后的访问热度=更新前的访问热度×(第二发送时刻-第一预设时长)÷(第二发送时刻-第一发送时刻)+1;在第二时长差值不大于第一预设时长时,采用下述公式确定更新后的访问热度:更新后的访问热度=更新前的访问热度+1。

在一种可能的实施方式中,第五处理模块,具体用于在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器的共享数据区。

在一种可能的实施方式中,数据记录中还包括:分布处理标识字段、以及锁定标识字段;所述装置还包括:第六处理模块,用于在数据获取请求发生在批量数据处理或者交易峰值时,将数据记录中的分布处理标识字段、以及锁定标识字段设置为锁定标识;将分布处理标识字段、以及锁定标识字段全为锁定标识的数据记录存储至应用服务器的独占数据区;在对存储在独占数据区的数据记录中的数据结果使用完时,将独占数据区的数据记录中的分布处理标识字段、以及锁定标识字段设置为非锁定标识后,将独占数据区的数据记录存储至Redis服务器中。

在一种可能的实施方式中,第六处理模块,还用于在接收到数据标识对应的数据修改指令时,将Redis服务器中数据标识对应的数据记录中的锁定标识字段设置为锁定标识;在对数据标识对应的数据结果进行修改后,将Redis服务器中数据标识对应的数据记录中的锁定标识字段设置为非锁定标识。

在一种可能的实施方式中,还包括:第七处理模块,用于在预设时刻,计算每一数据记录最近一次被访问的第二访问时刻与预设时刻之间的第三时长差值;清除Redis服务器、应用服务器本地内存中第三时长差值大于第二预设时长的数据记录。

在一种可能的实施方式中,还包括:第八处理模块,用于在预设时刻,计算每一数据记录最近一次被访问的第二访问时刻与预设时刻之间的第三时长差值;清除Redis服务器、应用服务器本地内存中第三时长差值大于第二预设时长的数据记录。

基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述数据存储方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法。

本发明实施例中,在应用服务器本地内存、Redis服务器中未查找到数据获取请求中数据标识对应的数据结果时,向数据库服务器发送数据获取请求;接收数据库服务器根据数据获取请求发送的数据结果、以及所述数据标识最近一次被访问的第一访问时刻;计算向数据库服务器发送数据获取请求的第一发送时刻与第一访问时刻之间的第一时长差值;在第一时长差值小于第一预设时长时,根据数据标识、数据标识对应的数据结果、预先配置的数据标识的初始数据热度、第一发送时刻生成数据标识对应的数据记录;其中,数据记录中包含数据标识、数据标识对应的数据结果、数据标识的数据热度、第一发送时刻;将数据记录存储至Redis服务器中,以供再次获取数据标识对应的数据结果时,从Redis服务器中获取数据结果、更新数据标识对应的数据记录、以及在更新后的数据记录中的数据热度大于预设热度时,将数据标识、以及数据标识对应的数据结果存储至应用服务器中。这样,可以根据数据结果的访问热度将数据结果存储在不同的存储位置中,而不同存储位置的数据读写效率不同,因此,可以在满足大数据量存储的同时,提高数据的处理效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120115631676