
技术摘要:
本公开的实施例公开了一种数据缓存方法、装置、计算机可读存储介质及电子设备。该方法包括:在接收到用户的数据请求的情况下,判断内存数据库中是否缓存有数据请求的所请求数据;在内存数据库中未缓存所请求数据的情况下,获取所请求数据,将所请求数据缓存于内存数据 全部
背景技术:
业务中使用被动缓存一般都是先读取数据,然后将读取的数据缓存到内存数据库 中,在用户需要某一数据时,可将内存数据库中缓存的该数据提供给用户。需要指出的是, 采用目前的被动缓存策略时,一旦遇到接口被爬虫扫描的情况,大量冷门数据会缓存,这样 会导致内存数据库使用量突增,内存数据库有被打满无法使用等风险。
技术实现要素:
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种数据缓存方 法、装置、计算机可读存储介质及电子设备。 根据本公开实施例的一个方面,提供了一种数据缓存方法,包括: 在接收到用户的数据请求的情况下,判断内存数据库中是否缓存有所述数据请求 的所请求数据; 在所述内存数据库中未缓存所述所请求数据的情况下,获取所述所请求数据,将 所述所请求数据缓存于所述内存数据库中,并设置所述所请求数据的当前缓存有效期; 在所述内存数据库中缓存有所述所请求数据的情况下,更新所述所请求数据的当 前缓存有效期,以使更新后所述所请求数据的当前缓存有效期的时长大于更新前的时长; 其中,更新后所述所请求数据的当前缓存有效期的计时起点为接收到所述数据请求的时 刻。 在一个可选示例中, 所述在所述内存数据库中缓存有所述所请求数据的情况下,更新所述所请求数据 的当前缓存有效期,以使更新后所述所请求数据的当前缓存有效期的时长大于更新前的时 长,包括: 在所述内存数据库中缓存有所述所请求数据的情况下,判断所述所请求数据的当 前缓存有效期的时长是否小于预设时长阈值; 在所述所请求数据的当前缓存有效期的时长小于所述预设时长阈值的情况下,更 新所述所请求数据的当前缓存有效期,以使更新后所述所请求数据的当前缓存有效期的时 长大于更新前的时长; 所述方法还包括: 在所述所请求数据的当前缓存有效期的时长不小于所述预设时长阈值的情况下, 不更新所述所请求数据的当前缓存有效期。 在一个可选示例中,所述更新所述所请求数据的当前缓存有效期,以使更新后所 述所请求数据的当前缓存有效期的时长大于更新前的时长,包括: 4 CN 111611283 A 说 明 书 2/12 页 确定参考时长;其中,所述参考时长大于所述所请求数据的当前缓存有效期的时 长; 将所述参考时长与所述预设时长阈值进行比较,得到比较结果; 根据所述比较结果,更新所述所请求数据的当前缓存有效期,以使更新后所述所 请求数据的当前缓存有效期的时长大于更新前的时长。 在一个可选示例中,所述根据所述比较结果,更新所述所请求数据的当前缓存有 效期,以使更新后所述所请求数据的当前缓存有效期的时长大于更新前的时长,包括: 在所述比较结果表征所述参考时长小于所述预设时长阈值的情况下,更新所述所 请求数据的当前缓存有效期,以使更新后所述所请求数据的当前缓存有效期的时长为所述 参考时长; 在所述比较结果表征所述参考时长不小于所述预设时长阈值的情况下,更新所述 所请求数据的当前缓存有效期,以使更新后所述所请求数据的当前缓存有效期的时长为所 述预设时长阈值。 在一个可选示例中,所述确定参考时长,包括: 获取预设系数;其中,所述预设系数大于1; 计算所述所请求数据的当前缓存有效期的时长与所述预设系数的乘积,并将所述 乘积作为参考时长。 根据本公开实施例的另一个方面,提供了一种数据缓存装置,包括: 判断模块,用于在接收到用户的数据请求的情况下,判断内存数据库中是否缓存 有所述数据请求的所请求数据; 第一处理模块,用于在所述内存数据库中未缓存所述所请求数据的情况下,获取 所述所请求数据,将所述所请求数据缓存于所述内存数据库中,并设置所述所请求数据的 当前缓存有效期; 第二处理模块,用于在所述内存数据库中缓存有所述所请求数据的情况下,更新 所述所请求数据的当前缓存有效期,以使更新后所述所请求数据的当前缓存有效期的时长 大于更新前的时长;其中,更新后所述所请求数据的当前缓存有效期的计时起点为接收到 所述数据请求的时刻。 在一个可选示例中, 所述第二处理模块,包括: 判断子模块,用于在所述内存数据库中缓存有所述所请求数据的情况下,判断所 述所请求数据的当前缓存有效期的时长是否小于预设时长阈值; 处理子模块,用于在所述所请求数据的当前缓存有效期的时长小于所述预设时长 阈值的情况下,更新所述所请求数据的当前缓存有效期,以使更新后所述所请求数据的当 前缓存有效期的时长大于更新前的时长; 所述装置还包括: 第三处理模块,用于在所述所请求数据的当前缓存有效期的时长不小于所述预设 时长阈值的情况下,不更新所述所请求数据的当前缓存有效期。 在一个可选示例中,所述处理子模块,包括: 确定单元,用于确定参考时长;其中,所述参考时长大于所述所请求数据的当前缓 5 CN 111611283 A 说 明 书 3/12 页 存有效期的时长; 比较单元,用于将所述参考时长与所述预设时长阈值进行比较,得到比较结果; 处理单元,用于根据所述比较结果,更新所述所请求数据的当前缓存有效期,以使 更新后所述所请求数据的当前缓存有效期的时长大于更新前的时长。 在一个可选示例中,所述处理单元,包括: 第一处理子单元,用于在所述比较结果表征所述参考时长小于所述预设时长阈值 的情况下,更新所述所请求数据的当前缓存有效期,以使更新后所述所请求数据的当前缓 存有效期的时长为所述参考时长; 第二处理子单元,用于在所述比较结果表征所述参考时长不小于所述预设时长阈 值的情况下,更新所述所请求数据的当前缓存有效期,以使更新后所述所请求数据的当前 缓存有效期的时长为所述预设时长阈值。 在一个可选示例中,所述确定单元,包括: 获取子单元,用于获取预设系数;其中,所述预设系数大于1; 确定子单元,用于计算所述所请求数据的当前缓存有效期的时长与所述预设系数 的乘积,并将所述乘积作为参考时长。 根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,所述存储介 质存储有计算机程序,所述计算机程序用于执行上述数据缓存方法。 根据本公开实施例的又一个方面,提供了一种电子设备,包括: 处理器; 用于存储所述处理器可执行指令的存储器; 所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现 上述数据缓存方法。 本公开的实施例中,在接收到用户的数据请求的情况下,可以判断内存数据库中 是否缓存有数据请求的所请求数据。如果内存数据库中未缓存所请求数据,则可以获取所 请求数据,将所请求数据缓存于内存数据库中,并设置所请求数据的当前缓存有效期。如果 内存数据库中缓存有所请求数据,则可以更新所请求数据的当前缓存有效期,以使更新后 所请求数据的当前缓存有效期的时长大于更新前的时长,且更新后所请求数据的当前缓存 有效期的计时起点为接收到数据请求的时刻。需要说明的是,热门数据在短时间内往往会 被请求多次,而冷门数据在短时间内至多会被请求一次,这样,在上述的所请求数据为冷门 数据的情况下,在设置了所请求数据的当前缓存有效期之后,所请求数据的当前缓存有效 期内一般不会再次接收到针对其的数据请求,这样,在所请求数据的当前缓存有效期结束 之后,所请求数据会由于过期而被直接从内存数据库中删除,不再占用内存数据库中的空 间;在上述的所请求数据为热门数据的情况下,在设置了所请求数据的当前缓存有效期之 后,所请求数据的当前缓存有效期内一般会再次接收到针对其的数据请求,这时,所请求数 据的当前缓存有效期会发生更新,随着接收到针对其的数据请求的次数的增加,所请求数 据的当前缓存有效期会发生若干次更新,所请求数据能够在内存数据库中缓存较长的时 间。 可见,本公开的实施例中,数据在内存数据库中的缓存时间不是完全固定的,而与 数据的热度紧密关联,具体而言,热度低的数据会迅速被从内存数据库中删除,热度高的数 6 CN 111611283 A 说 明 书 4/12 页 据能够在内存数据库中缓存较长时间,这样,即使遇到接口被爬虫扫描的情况,冷门数据在 内存数据库中缓存的时间也非常短,因此,与相关技术中所有数据均设置统一且固定的缓 存有效期的情况相比,本公开的实施例能够有效地规避内存数据库被打满而无法使用的风 险。 下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。 附图说明 通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、 特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明 书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中, 相同的参考标号通常代表相同部件或步骤。 图1是本公开一示例性实施例提供的数据缓存方法的流程示意图。 图2是本公开另一示例性实施例提供的数据缓存方法的流程示意图。 图3是本公开再一示例性实施例提供的数据缓存方法的流程示意图。 图4是本公开一示例性实施例提供的数据缓存装置的结构示意图。 图5是本公开另一示例性实施例提供的数据缓存装置的结构示意图。 图6是本公开一示例性实施例提供的电子设备的结构图。