logo好方法网

缓存刷新方法和电子设备


技术摘要:
本公开的实施例提供了缓存刷新方法、电子设备、以及计算机可读存储介质。本公开的实施例的缓存刷新方法,包括:向缓存源发送查询请求,所述查询请求中携带有本地缓存中的业务数据的标识;所述缓存源用于存储服务端对业务数据的更新记录,所述更新记录包括业务数据的标  全部
背景技术:
如今大型网站的应用都是分布式部署的,这就意味着同一应用会部署在多台机器 上。随着系统中的应用越来越多,应用之间的关系越来越复杂,系统中的许多应用会依赖系 统中的同一个应用的服务。例如,在一个购物网站中,登录、用户信息展示、订单展示等应用 都可能使用用户信息管理应用的服务,这些应用需要从用户信息管理应用处获取到用户的 用户名和手机号等信息。 在系统中,一个应用为了提升自身的性能,可以向其它应用提供client包。即,该 应用将自己作为服务端,向其它应用提供客户端,并且在客户端中使用本地缓存。这就意味 着当其他应用安装客户端以后,会优先访问其本地缓存中的业务数据;如果本地缓存中不 存在业务数据,再去访问该应用,也就是去访问服务端来获取业务数据。客户端通过访问服 务端获取到业务数据以后,将业务数据保存在本地缓存中以供自己查询使用。通过这种方 式,可以大幅度的减少服务端的访问量。 但是,这种方式存在以下弊端:如果服务端的业务数据已经改变,但是客户端的本 地缓存中的业务数据却并未及时更新,或者多个客户端的本地缓存中的业务数据不一致, 会造成业务数据错误、功能紊乱等问题。 因此,有必要提供高可靠,高一致性的缓存刷新方案。
技术实现要素:
本公开的实施例的目的在于提供高可靠,高一致性的缓存刷新方案。 根据本公开实施例的第一方面,提供了缓存刷新方法,应用于客户端,包括以下步 骤: 向缓存源发送查询请求,所述查询请求中携带有本地缓存中的业务数据的标识; 所述缓存源用于存储服务端对业务数据的更新记录,所述更新记录包括业务数据的标识和 业务数据的更新版本号; 接收缓存源返回的查询结果,根据所述查询结果刷新本地缓存。 可选地,所述客户端被配置为,以第一预设时长为周期定时向缓存源发送所述查 询请求。 可选地,所述缓存源被配置为,在接收到所述查询请求后,在当前时间之前最近的 第二预设时长内的更新记录中进行查询;所述第二预设时长大于所述第一预设时长。 可选地,所述缓存源被配置为,以第三预设时长为周期定时清除第三预设时长之 前的更新记录;所述第三预设时长大于所述第一预设时长。 可选地,所述客户端被配置为,在重启后向缓存源发送所述查询请求。 5 CN 111581239 A 说 明 书 2/14 页 可选地,所述更新记录包括更新后的业务数据; 所述查询结果中包括缓存源中的同一标识的业务数据的最高更新版本号; 根据所述查询结果刷新本地缓存,包括: 在本地缓存中的业务数据的更新版本号小于缓存源中的同一标识的业务数据的 最高更新版本号的情况下,只删除本地缓存中的业务数据,或者,从缓存源处获取最高更新 版本号的业务数据并且更新到本地缓存中。 可选地,所述更新记录不包括更新后的业务数据; 所述查询结果中包括缓存源中的同一标识的业务数据的最高更新版本号; 根据所述查询结果刷新本地缓存,包括: 在本地缓存中的业务数据的更新版本号小于缓存源中的同一标识的业务数据的 最高更新版本号的情况下,只删除本地缓存中的业务数据,或者,访问服务端获取业务数据 并且更新到本地缓存中。 可选地,所述更新记录包括更新后的业务数据; 所述查询请求中携带有本地缓存中的业务数据的更新版本号; 所述查询结果是缓存源通过比较查询请求中的业务数据的更新版本号和缓存源 中的同一标识的业务数据的最高更新版本号得到的,其中,如果缓存源中的同一标识的业 务数据的最高更新版本号高于查询请求中的业务数据的更新版本号,所述查询结果为需要 刷新; 根据所述查询结果刷新本地缓存,包括: 在所述查询结果为需要刷新的情况下,只删除本地缓存中的业务数据,或者,从缓 存源处获取最高更新版本号的业务数据并且更新到本地缓存中。 可选地,所述更新记录不包括更新后的业务数据; 所述查询请求中携带有本地缓存中的业务数据的更新版本号; 所述查询结果是缓存源通过比较查询请求中的业务数据的更新版本号和缓存源 中的同一标识的业务数据的最高更新版本号得到的,其中,如果缓存源中的同一标识的业 务数据的最高更新版本号高于查询请求中的业务数据的更新版本号,所述查询结果为需要 刷新; 根据所述查询结果刷新本地缓存,包括: 在所述查询结果为需要刷新的情况下,只删除本地缓存中的业务数据,或者,访问 服务端获取业务数据并且更新到本地缓存中。 根据本公开实施例的第二方面,提供了缓存刷新方法,应用于服务端,包括以下步 骤: 在对业务数据进行更新时,生成业务数据的更新记录;所述更新记录包括业务数 据的标识和业务数据的更新版本号; 将所述更新记录存储到缓存源中,以使得客户端可以根据缓存源中的业务数据的 最高更新版本号对客户端的本地缓存中的业务数据进行刷新。 可选地,所述更新记录还包括更新后的业务数据。 根据本公开实施例的第三方面,提供了缓存刷新方法,应用于缓存源,所述缓存源 用于存储服务端对业务数据的更新记录,所述更新记录包括业务数据的标识和业务数据的 6 CN 111581239 A 说 明 书 3/14 页 更新版本号;所述方法包括以下步骤: 接收客户端发送的查询请求,所述查询请求中携带有客户端的本地缓存中的业务 数据的标识; 根据所述查询请求进行查询,得到查询结果; 将所述查询结果发送给客户端,以供客户端根据所述查询结果刷新客户端的本地 缓存。 可选地,所述更新记录还包括更新后的业务数据。 可选地,所述客户端被配置为,以第一预设时长为周期定时向缓存源发送所述查 询请求; 所述缓存源被配置为,在接收到所述查询请求后,在当前时间之前最近的第二预 设时长内的更新记录中进行查询;所述第二预设时长大于所述第一预设时长。 可选地,所述客户端被配置为,以第一预设时长为周期定时向缓存源发送所述查 询请求; 所述缓存源被配置为,以第三预设时长为周期定时清除第三预设时长之前的更新 记录;所述第三预设时长大于所述第一预设时长。 可选地,所述根据所述查询请求进行查询,得到查询结果,包括: 根据查询请求中的业务数据的标识,在缓存源中查询得到业务数据的最高更新版 本号。 可选地,所述查询请求中携带有客户端的本地缓存中的业务数据的更新版本号; 所述根据所述查询请求进行查询,得到查询结果,包括: 根据查询请求中的业务数据的标识,在缓存源中查询得到同一标识的业务数据的 最高更新版本号; 如果缓存源中的同一标识的业务数据的最高更新版本号高于查询请求中的业务 数据的更新版本号,生成需要刷新的查询结果; 如果缓存源中的同一标识的业务数据的最高更新版本号等于查询请求中的业务 数据的更新版本号,生成不需要刷新的查询结果。 根据本公开实施例的第四方面,提供了电子设备,包括处理器和存储器;所述存储 器中存储有计算机指令,所述计算机指令被所述处理器执行时实现本公开实施例的第一方 面提供的缓存刷新方法。 根据本公开实施例的第五方面,提供了电子设备,包括处理器和存储器;所述存储 器中存储有计算机指令,所述计算机指令被所述处理器执行时实现本公开实施例的第二方 面提供的缓存刷新方法。 根据本公开实施例的第六方面,提供了电子设备,包括处理器和存储器;所述存储 器中存储有计算机指令,所述计算机指令被所述处理器执行时实现本公开实施例的第三方 面提供的缓存刷新方法。 根据本公开实施例的第七方面,提供了计算机可读存储介质,其上存储有计算机 指令,所述计算机指令被处理器执行时实现本公开实施例的第一方面提供的缓存刷新方 法。 根据本公开实施例的第八方面,提供了计算机可读存储介质,其上存储有计算机 7 CN 111581239 A 说 明 书 4/14 页 指令,所述计算机指令被处理器执行时实现本公开实施例的第二方面提供的缓存刷新方 法。 根据本公开实施例的第九方面,提供了计算机可读存储介质,其上存储有计算机 指令,所述计算机指令被处理器执行时实现本公开实施例的第三方面提供的缓存刷新方 法。 通过以下参照附图对本公开的示例性实施例的详细描述,本公开的实施例的特征 及其优点将会变得清楚。 附图说明 被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连 同其说明一起用于解释本公开的实施例的原理。 图1是本公开的实施例提供的缓存刷新系统的示意图; 图2是本公开的实施例提供的硬件配置的框图; 图3是本公开的实施例提供的缓存刷新方法的流程图。
下载此资料需消耗2积分,
分享到:
收藏