一种长链接的缓存优化方法及系统技术方案

技术编号:29959049 阅读:16 留言:0更新日期:2021-09-08 09:14
本发明专利技术公开了一种长链接的缓存优化方法及系统,客户端在与服务端首次建立长链接时,服务端接收初始化并存储建立长链接的预设数据至缓存中,将每一个预设数据的缓存时间一起返回至客户端,以使得客户端保存该第一缓存信息,而在非首次建立长链接时,客户端向服务端发送包括最新缓存信息的长链接请求,服务端根据最新缓存信息中每一个预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储已过期数据至缓存中,将每一个已过期数据的缓存时间一起返回至客户端,以使得客户端对最新缓存信息进行更新。本发明专利技术在明确缓存已经失效的场景下,能够减少一次缓存查询,提高长链接建立的效率,并减少服务端的压力。的压力。的压力。

【技术实现步骤摘要】
一种长链接的缓存优化方法及系统


[0001]本专利技术涉及互联网
,特别涉及一种长链接的缓存优化方法及系统。

技术介绍

[0002]移动互联网蓬勃发展的今天,大部分手机APP(application,应用程序)都提供了消息推送功能,如新闻客户端的热点新闻推荐、IM(Instant Messaging,即时通讯)工具的聊天消息提醒、电商产品促销信息、企业应用的通知和审批流程等等。推送对于提高产品活跃度、提高功能模块使用率、提升用户粘性和提升用户留存率起到了重要作用。
[0003]消息推送的主要实现流程为:客户端预先访问服务端路由地址列表接口,获取可以正常接入的路由地址,选择其中一个地址进行长链接的建立。当成功建立起长链接之后,服务端与客户端将会进行正常的消息通讯。服务端要向客户端发送消息时,需预先根据userId(用户唯一标识)查询对应的设备id列表信息,根据设备id(Identity document,唯一标识)列表查询对应的通道信息,之后,通过对应的通道进行消息的发送。服务端记录设备id与对应的通道信息时,一般都会记录缓存的,即先预先查询缓存是否有相关信息,如果无则查询数据库,从数据库中查询出信息后,并再次加载入缓存中。在推送场景中存在很多这样的需要缓存的数据的场景,这些数据如果都全量缓存在内存中,则会因为数据量巨大而占用大量的内存,因此,现在通用的方式都是设置缓存并设置过期时间,当达到过期时间之后,则缓存失效,程序逻辑为每次均预先访问缓存,当缓存失效后,访问数据库,之后再次写入数据到缓存中。
>[0004]为了配合现在的缓存通用使用方式,推送系统中一般缓存的处理都在长链接建立这个功能点上。当每次建立长链接时,预先都查询下所有需要的缓存是否都存在,不再,则查询数据库并进行缓存加载。这样,则后续的所有在线用户的推送则都可以直接访问缓存,实现消息的快速交互。可是,在正常的交互使用场景下,推送消息的交互次数不会有很多,但是,由于客户端网络质量的差异,会存在较多的长链接建立场景,因为网络断开重连的场景很多,这样,将导致每天每个设备将会有较多次数的长链接建立,每个长链接的建立将都会进行缓存数据的初始化,当设备数量继续增大后,将会给服务端带来较大的压力。

技术实现思路

[0005]本专利技术所要解决的技术问题是:提供一种长链接的缓存优化方法及系统,提高长链接建立的效率,并减少服务端的压力。
[0006]为了解决上述技术问题,本专利技术采用的技术方案为:
[0007]一种长链接的缓存优化方法,包括步骤:
[0008]S1、客户端判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
[0009]S2、服务端接收第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至
客户端;
[0010]S3、客户端接受第一长链接建立成功信息,将第一缓存信息作为最新缓存信息保存至本地内存;
[0011]S4、客户端向服务端发送包括最新缓存信息的第二长链接请求;
[0012]S5、服务端接收第二长链接请求,将最新缓存信息中每一个预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储已过期数据至缓存中,将每一个已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端;
[0013]S6、客户端接受第二长链接建立成功信息,并根据第二缓存信息对本地内存的最新缓存信息进行更新,得到更新后的最新缓存信息。
[0014]为了解决上述技术问题,本专利技术采用的另一种技术方案为:
[0015]一种长链接的缓存优化系统,包括客户端和服务端,所述客户端包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述服务端包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
[0016]S1、判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
[0017]S3、接受第一长链接建立成功信息,将第一缓存信息作为最新缓存信息保存至本地内存;
[0018]S4、向服务端发送包括所述最新缓存信息的第二长链接请求;
[0019]S6、接受第二长链接建立成功信息,并根据第二缓存信息对本地内存的所述最新缓存信息进行更新,得到更新后的最新缓存信息;
[0020]所述第二处理器执行所述第二计算机程序时实现以下步骤:
[0021]S2、接收所述第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个所述预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;
[0022]S5、接收所述第二长链接请求,将所述最新缓存信息中每一个所述预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端。
[0023]本专利技术的有益效果在于:一种长链接的缓存优化方法及系统,在客户端为与服务端首次建立长链接时,将每一个预设数据的缓存时间保存至客户端的本地内存;在客户端和服务端断开长链接之后进行的非首次长链接时,则客户端会在长链接请求时一起发送每一个预设数据的缓存时间,使得服务端根据每一个预设数据的缓存时间判断预设数据在缓存中是否过期,对于已过期数据,则无需在缓存中检索,直接初始化和存储即可,即在明确缓存已经失效的场景下,能够减少一次缓存查询,提高长链接建立的效率,并减少服务端的压力。
附图说明
[0024]图1为本专利技术实施例的一种长链接的缓存优化方法的流程示意图;
[0025]图2为本专利技术实施例的一种长链接的缓存优化系统的结构示意图。
[0026]标号说明:
[0027]1、一种长链接的缓存优化系统;2、客户端;3、第一处理器;4、第一存储器;5、服务端;6、第二处理器;7、第二处理器。
具体实施方式
[0028]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0029]请参照图1,一种长链接的缓存优化方法,包括步骤:
[0030]S1、客户端判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
[0031]S2、服务端接收所述第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个所述预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;
[0032]S3、客户端接受所述第一长链接建立成功信息,将所述第一缓存信息作为最新缓存信息保存至本地内存;
[0033]S4、客本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种长链接的缓存优化方法,其特征在于,包括步骤:S1、客户端判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;S2、服务端接收所述第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个所述预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;S3、客户端接受所述第一长链接建立成功信息,将所述第一缓存信息作为最新缓存信息保存至本地内存;S4、客户端向服务端发送包括所述最新缓存信息的第二长链接请求;S5、服务端接收所述第二长链接请求,将所述最新缓存信息中每一个所述预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端;S6、客户端接受所述第二长链接建立成功信息,并根据所述第二缓存信息对本地内存的所述最新缓存信息进行更新,得到更新后的最新缓存信息。2.根据权利要求1所述的一种长链接的缓存优化方法,其特征在于,所述步骤S1具体包括以下步骤:客户端判断本地内存中是否存储有最新缓存信息,若是,则认为是非首次建立长链接,执行步骤S4,否则认为是与服务端首次建立长链接,向服务端发送第一长链接请求之后执行步骤S2。3.根据权利要求1所述的一种长链接的缓存优化方法,其特征在于,所述缓存时间为预设数据的创建时间,所述预设数据初始化时包括对每一个所述预设数据初始化一个缓存过期时长;所述步骤S5具体包括以下步骤:服务端接收所述第二长链接请求,判断所述最新缓存信息中每一个所述预设数据的缓存时间与所述当前时间的时间差是否大于对应的缓存过期时长,若是,所述预设数据为已过期数据,否则所述预设数据为未过期数据;服务端初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端。4.根据权利要求1所述的一种长链接的缓存优化方法,其特征在于,所述步骤S2中初始化并存储建立长链接的预设数据至缓存中具体包括以下步骤:从数据库中查询得到建立长链接的预设数据,并将所述预设数据存储至缓存中;所述步骤S5中初始化并存储所述已过期数据至缓存中具体包括以下步骤:从数据库中查询得到所述已过期数据,并将所述已过期数据存储至缓存中。5.根据权利要求1所述的一种长链接的缓存优化方法,其特征在于,所述预设数据包括所述客户端的设备id与在所述客户端上登录的账户id的对应关系、设备id与通道id的对应关系以及账户id与预设标签的关联关系。6.一种长链接的缓存优化系统,包括客户端和服务端,所述客户端包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述服务端
包括第二存储器、第二处理器及存储在第二存储器上并...

【专利技术属性】
技术研发人员:刘德建林伟陈宏
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1