CN113364830B - 一种长链接的缓存优化方法及*** - Google Patents

一种长链接的缓存优化方法及*** Download PDF

Info

Publication number
CN113364830B
CN113364830B CN202110451499.8A CN202110451499A CN113364830B CN 113364830 B CN113364830 B CN 113364830B CN 202110451499 A CN202110451499 A CN 202110451499A CN 113364830 B CN113364830 B CN 113364830B
Authority
CN
China
Prior art keywords
cache
time
data
long link
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110451499.8A
Other languages
English (en)
Other versions
CN113364830A (zh
Inventor
刘德建
林伟
陈宏�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Tianquan Educational Technology Ltd
Original Assignee
Fujian Tianquan Educational Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian Tianquan Educational Technology Ltd filed Critical Fujian Tianquan Educational Technology Ltd
Priority to CN202110451499.8A priority Critical patent/CN113364830B/zh
Publication of CN113364830A publication Critical patent/CN113364830A/zh
Application granted granted Critical
Publication of CN113364830B publication Critical patent/CN113364830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

一种长链接的缓存优化方法及***
技术领域
本发明涉及互联网技术领域,特别涉及一种长链接的缓存优化方法及***。
背景技术
移动互联网蓬勃发展的今天,大部分手机APP(application,应用程序)都提供了消息推送功能,如新闻客户端的热点新闻推荐、IM(Instant Messaging,即时通讯)工具的聊天消息提醒、电商产品促销信息、企业应用的通知和审批流程等等。推送对于提高产品活跃度、提高功能模块使用率、提升用户粘性和提升用户留存率起到了重要作用。
消息推送的主要实现流程为:客户端预先访问服务端路由地址列表接口,获取可以正常接入的路由地址,选择其中一个地址进行长链接的建立。当成功建立起长链接之后,服务端与客户端将会进行正常的消息通讯。服务端要向客户端发送消息时,需预先根据userId(用户唯一标识)查询对应的设备id列表信息,根据设备id(Identity document,唯一标识)列表查询对应的通道信息,之后,通过对应的通道进行消息的发送。服务端记录设备id与对应的通道信息时,一般都会记录缓存的,即先预先查询缓存是否有相关信息,如果无则查询数据库,从数据库中查询出信息后,并再次加载入缓存中。在推送场景中存在很多这样的需要缓存的数据的场景,这些数据如果都全量缓存在内存中,则会因为数据量巨大而占用大量的内存,因此,现在通用的方式都是设置缓存并设置过期时间,当达到过期时间之后,则缓存失效,程序逻辑为每次均预先访问缓存,当缓存失效后,访问数据库,之后再次写入数据到缓存中。
为了配合现在的缓存通用使用方式,推送***中一般缓存的处理都在长链接建立这个功能点上。当每次建立长链接时,预先都查询下所有需要的缓存是否都存在,不再,则查询数据库并进行缓存加载。这样,则后续的所有在线用户的推送则都可以直接访问缓存,实现消息的快速交互。可是,在正常的交互使用场景下,推送消息的交互次数不会有很多,但是,由于客户端网络质量的差异,会存在较多的长链接建立场景,因为网络断开重连的场景很多,这样,将导致每天每个设备将会有较多次数的长链接建立,每个长链接的建立将都会进行缓存数据的初始化,当设备数量继续增大后,将会给服务端带来较大的压力。
发明内容
本发明所要解决的技术问题是:提供一种长链接的缓存优化方法及***,提高长链接建立的效率,并减少服务端的压力。
为了解决上述技术问题,本发明采用的技术方案为:
一种长链接的缓存优化方法,包括步骤:
S1、客户端判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
S2、服务端接收第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;
S3、客户端接受第一长链接建立成功信息,将第一缓存信息作为最新缓存信息保存至本地内存;
S4、客户端向服务端发送包括最新缓存信息的第二长链接请求;
S5、服务端接收第二长链接请求,将最新缓存信息中每一个预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储已过期数据至缓存中,将每一个已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端;
S6、客户端接受第二长链接建立成功信息,并根据第二缓存信息对本地内存的最新缓存信息进行更新,得到更新后的最新缓存信息。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种长链接的缓存优化***,包括客户端和服务端,所述客户端包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述服务端包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
S3、接受第一长链接建立成功信息,将第一缓存信息作为最新缓存信息保存至本地内存;
S4、向服务端发送包括所述最新缓存信息的第二长链接请求;
S6、接受第二长链接建立成功信息,并根据第二缓存信息对本地内存的所述最新缓存信息进行更新,得到更新后的最新缓存信息;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S2、接收所述第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个所述预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;
S5、接收所述第二长链接请求,将所述最新缓存信息中每一个所述预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端。
本发明的有益效果在于:一种长链接的缓存优化方法及***,在客户端为与服务端首次建立长链接时,将每一个预设数据的缓存时间保存至客户端的本地内存;在客户端和服务端断开长链接之后进行的非首次长链接时,则客户端会在长链接请求时一起发送每一个预设数据的缓存时间,使得服务端根据每一个预设数据的缓存时间判断预设数据在缓存中是否过期,对于已过期数据,则无需在缓存中检索,直接初始化和存储即可,即在明确缓存已经失效的场景下,能够减少一次缓存查询,提高长链接建立的效率,并减少服务端的压力。
附图说明
图1为本发明实施例的一种长链接的缓存优化方法的流程示意图;
图2为本发明实施例的一种长链接的缓存优化***的结构示意图。
标号说明:
1、一种长链接的缓存优化***;2、客户端;3、第一处理器;4、第一存储器;5、服务端;6、第二处理器;7、第二处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,一种长链接的缓存优化方法,包括步骤:
S1、客户端判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
S2、服务端接收所述第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个所述预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;
S3、客户端接受所述第一长链接建立成功信息,将所述第一缓存信息作为最新缓存信息保存至本地内存;
S4、客户端向服务端发送包括所述最新缓存信息的第二长链接请求;
S5、服务端接收所述第二长链接请求,将所述最新缓存信息中每一个所述预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端;
S6、客户端接受所述第二长链接建立成功信息,并根据所述第二缓存信息对本地内存的所述最新缓存信息进行更新,得到更新后的最新缓存信息。
从上述描述可知,本发明的有益效果在于:在客户端为与服务端首次建立长链接时,将每一个预设数据的缓存时间保存至客户端的本地内存;在客户端和服务端断开长链接之后进行的非首次长链接时,则客户端会在长链接请求时一起发送每一个预设数据的缓存时间,使得服务端根据每一个预设数据的缓存时间判断预设数据在缓存中是否过期,对于已过期数据,则无需在缓存中检索,直接初始化和存储即可,即在明确缓存已经失效的场景下,能够减少一次缓存查询,提高长链接建立的效率,并减少服务端的压力。
进一步地,所述步骤S1具体包括以下步骤:
客户端判断本地内存中是否存储有最新缓存信息,若是,则认为是非首次建立长链接,执行步骤S4,否则认为是与服务端首次建立长链接,向服务端发送第一长链接请求之后执行步骤S2。
从上述描述可知,根据客户端的本地内存是否存储有缓存信息,就可以知道是否为首次建立长链接,从而根据其判断结果生成不同的长链接请求。
进一步地,所述缓存时间为预设数据的创建时间,所述预设数据初始化时包括对每一个所述预设数据初始化一个缓存过期时长;
所述步骤S5具体包括以下步骤:
服务端接收所述第二长链接请求,判断所述最新缓存信息中每一个所述预设数据的缓存时间与所述当前时间的时间差是否大于对应的缓存过期时长,若是,所述预设数据为已过期数据,否则所述预设数据为未过期数据;
服务端初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端。
从上述描述可知,由此,缓存信息中只保存每一个预设数据的创建时间,由服务端根据自身设定的缓存过期时长进行判断,即可判断长链接建立所需要的预设数据是否还保存在缓存中还是已经过期被删除了,从而无需所有的预设数据都需要去缓存中查询,减少了数据查询的次数,从而提高长链接建立的效率,并减少服务端的压力。
进一步地,所述步骤S2中初始化并存储建立长链接的预设数据至缓存中具体包括以下步骤:
从数据库中查询得到建立长链接的预设数据,并将所述预设数据存储至缓存中;
所述步骤S5中初始化并存储所述已过期数据至缓存中具体包括以下步骤:
从数据库中查询得到所述已过期数据,并将所述已过期数据存储至缓存中。
进一步地,所述预设数据包括所述客户端的设备id与在所述客户端上登录的账户id的对应关系、设备id与通道id的对应关系以及账户id与预设标签的关联关系。
请参照图2,一种长链接的缓存优化***,包括客户端和服务端,所述客户端包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述服务端包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
S3、接受第一长链接建立成功信息,将第一缓存信息作为最新缓存信息保存至本地内存;
S4、向服务端发送包括所述最新缓存信息的第二长链接请求;
S6、接受第二长链接建立成功信息,并根据第二缓存信息对本地内存的所述最新缓存信息进行更新,得到更新后的最新缓存信息;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S2、接收所述第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个所述预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;
S5、接收所述第二长链接请求,将所述最新缓存信息中每一个所述预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端。
从上述描述可知,本发明的有益效果在于:在客户端为与服务端首次建立长链接时,将每一个预设数据的缓存时间保存至客户端的本地内存;在客户端和服务端断开长链接之后进行的非首次长链接时,则客户端会在长链接请求时一起发送每一个预设数据的缓存时间,使得服务端根据每一个预设数据的缓存时间判断预设数据在缓存中是否过期,对于已过期数据,则无需在缓存中检索,直接初始化和存储即可,即在明确缓存已经失效的场景下,能够减少一次缓存查询,提高长链接建立的效率,并减少服务端的压力。
进一步地,所述第一处理器执行所述第一计算机程序的所述步骤S1时具体实现以下步骤:
判断本地内存中是否存储有最新缓存信息,若是,则认为是非首次建立长链接,执行步骤S4,否则认为是与服务端首次建立长链接,向服务端发送第一长链接请求之后执行步骤S2。
从上述描述可知,根据客户端的本地内存是否存储有缓存信息,就可以知道是否为首次建立长链接,从而根据其判断结果生成不同的长链接请求。
进一步地,所述缓存时间为预设数据的创建时间,所述预设数据初始化时包括对每一个所述预设数据初始化一个缓存过期时长;
所述第二处理器执行所述第二计算机程序的所述步骤S5时具体实现以下步骤:
接收所述第二长链接请求,判断所述最新缓存信息中每一个所述预设数据的缓存时间与所述当前时间的时间差是否大于对应的缓存过期时长,若是,所述预设数据为已过期数据,否则所述预设数据为未过期数据;
初始化并存储所述已过期数据至缓存中,将每一个所述已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端。
从上述描述可知,由此,缓存信息中只保存每一个预设数据的创建时间,由服务端根据自身设定的缓存过期时长进行判断,即可判断长链接建立所需要的预设数据是否还保存在缓存中还是已经过期被删除了,从而无需所有的预设数据都需要去缓存中查询,减少了数据查询的次数,从而提高长链接建立的效率,并减少服务端的压力。
进一步地,所述第二处理器执行所述第二计算机程序的所述步骤S2中初始化并存储建立长链接的预设数据至缓存时具体实现以下步骤:
从数据库中查询得到建立长链接的预设数据,并将所述预设数据存储至缓存中;
所述第二处理器执行所述第二计算机程序的所述步骤S5中初始化并存储所述已过期数据至缓存时具体实现以下步骤:
从数据库中查询得到所述已过期数据,并将所述已过期数据存储至缓存中。
进一步地,所述预设数据包括所述客户端的设备id与在所述客户端上登录的账户id的对应关系、设备id与通道id的对应关系以及账户id与预设标签的关联关系。
请参照图1,本发明的实施例一为:
一种长链接的缓存优化方法,包括步骤:
S1、客户端判断是否为与服务端首次建立长链接,若是,则向服务端发送第一长链接请求之后执行步骤S2,否则执行步骤S4;
在本实施例中,步骤S1具体包括以下步骤:
客户端判断本地内存中是否存储有最新缓存信息,若是,则认为是非首次建立长链接,执行步骤S4,否则认为是与服务端首次建立长链接,向服务端发送第一长链接请求之后执行步骤S2。
这是因为首次建立长链接之后,客户端的本地内存就会存储有最新缓存信息,因此可以据此判断是否为首次建立长链接。
S2、服务端接收第一长链接请求,初始化并存储建立长链接的预设数据至缓存中,将每一个预设数据的缓存时间作为第一缓存信息随第一长链接建立成功信息一起返回至客户端;
其中,步骤S2中初始化并存储建立长链接的预设数据至缓存中具体包括以下步骤:从数据库中查询得到建立长链接的预设数据,并将预设数据存储至缓存中。
其中,预设数据是指长链接建立所必要的信息,每次建立长链接都需要初始化相关信息,因为无法判断客户端建立长链接的各种复杂场景,所以目前***一般都是在每次长链接建立时进行数据的初始化,这些数据包括客户端的设备id与在客户端上登录的账户id的对应关系、设备id与通道id的对应关系以及账户id与预设标签的关联关系。
其中,缓存时间为预设数据的创建时间,预设数据初始化时包括对每一个预设数据初始化一个缓存过期时长,其中缓存信息并不是指的是预设数据本身,而是每一个预设时间进行缓存时所对应的创建时间。
在本实施例中,假设建立长链接的预设数据有三种数据,分别为a、b和c,其中a的缓存过期时长5分钟,b的缓存过期时长10分钟,c的缓存过期时长30分钟,则在首次建立长链接,由于客户端的本地内存不存在最新缓存信息,则服务端在进行预设数据a、b和c的初始化,需要从数据库中获取到所需要的预设数据a、b和c,待初始化操作完成后,预设数据a、b和c就存储在缓存中,得到了第一缓存信息的字段数据格式为:[{a:创建时间},{b:创建时间},{c:创建时间}]。
在本实施例中,缓存指的是专门的缓存服务器,在本实施例中选择redis集群作为缓存来进行所有数据的存储。
其中,每个客户端建立长链接后,生成的缓存都只能是自己这个客户端使用。如A客户端建立长链接并生成并存储预设数据之后,在缓存的有效期内,如A客户端再次建立长链接则无需再次进行数据缓存。而如果是B客户端建立长链接,则会初始化B客户端的预设数据并进行缓存。
S3、客户端接受第一长链接建立成功信息,将第一缓存信息作为最新缓存信息保存至本地内存;
由此,客户端在收到长链接建立成功的信息后,将[{a:创建时间},{b:创建时间},{c:创建时间}]存储在本地内存中。
S4、客户端向服务端发送包括最新缓存信息的第二长链接请求;
其中,假设在建立长链接的第3分钟之后,因为网络不稳定等等意外因素,客户端和服务端之间的长链接断开,而在第6分钟之后,由于网络良好,客户端再次与服务端建立长链接,则此时客户端的本地内存有最新缓存信息,则将最新缓存时间[{a:创建时间},{b:创建时间},{c:创建时间}]随长链接请求一起发给服务端。
S5、服务端接收第二长链接请求,将最新缓存信息中每一个预设数据的缓存时间与当前时间进行比较,得到已过期数据和未过期数据,初始化并存储已过期数据至缓存中,将每一个已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端;
在本实施例中,步骤S5具体包括以下步骤:
服务端接收第二长链接请求,判断最新缓存信息中每一个预设数据的缓存时间与当前时间的时间差是否大于对应的缓存过期时长,若是,预设数据为已过期数据,否则预设数据为未过期数据;
服务端初始化并存储已过期数据至缓存中,将每一个已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端。
其中,初始化并存储已过期数据至缓存中具体包括以下步骤:从数据库中查询得到已过期数据,并将已过期数据存储至缓存中。
由此,服务端接收到客户端的长链接请求,根据最新缓存时间[{a:创建时间},{b:创建时间},{c:创建时间}]和当前时间比对,发现预设数据a已经过期,则预设数据在缓存中已经被删除了,因此标记为已过期数据,对应的预设数据b和c则为未过期数据,因此,预设数据a直接去数据库中查询,这样就减少了一次去缓存中查询所浪费的时间和所占用的资源,从而在明确缓存已经失效的场景下,能够减少一次缓存查询,提高长链接建立的效率,并减少服务端的压力。
同时,服务端只需要将每一个已过期数据的缓存时间作为第二缓存信息随第二长链接建立成功信息一起返回至客户端即可,即只需要返回[{a:创建时间}],其中,这个创建时间是最新的创建时间。
S6、客户端接受第二长链接建立成功信息,并根据第二缓存信息对本地内存的最新缓存信息进行更新,得到更新后的最新缓存信息。
在客户端接收到长链接建立成功信息,根据接收的[{a:创建时间}]对本地内存中的最新缓存时间[{a:创建时间},{b:创建时间},{c:创建时间}]进行更新,比如步骤S2时预设数据a的创建时间为15:00,则在步骤S4之后的时间来到了15:06,因此更新后的预设数据a的创建时间更新为15:06,而预设数据b和c的创建时间依旧保留为15:00。
其中,服务端虽然增加了数据对比的操作,但是数据比对是通过CPU进行计算,每次查询缓存则是需要通过网络IO来进行的,所以,CPU计算耗时绝对比网络IO要来的少。同时,CPU计算只需要计算一次,而每次建立长链接时,如果需要初始化多次不同的缓存,则需要多次的网络IO,更进一步增加了耗时,因此采用数据对比的操作在整体上还是能提高长链接建立的效率,并减少服务端的压力。
请参照图2,本发明的实施例二为:
一种长链接的缓存优化***1,包括客户端2和服务端5。
其中,客户端2包括第一存储器4、第一处理器3及存储在第一存储器4上并可在第一处理器3上运行的第一计算机程序,第一处理器3执行第一计算机程序时实现上述实施例一中的步骤S1、S3、S4和S6。
其中,服务端5包括第二存储器7、第二处理器6及存储在第二存储器7上并可在第二处理器6上运行的第二计算机程序,第二处理器6执行第一计算机程序时实现上述实施例一中的步骤S2和S5。
综上所述,本发明提供的一种长链接的缓存优化方法及***,根据客户端的本地内存是否存储有缓存信息,就可以知道是否为首次建立长链接,在客户端为与服务端首次建立长链接时,将每一个预设数据的缓存时间保存至客户端的本地内存;在客户端和服务端断开长链接之后进行的非首次长链接时,则客户端会在长链接请求时一起发送每一个预设数据的缓存时间,使得服务端根据每一个预设数据的缓存时间、创建时间和当前时间判断预设数据在缓存中是否过期,对于已过期数据,则无需在缓存中检索,直接初始化和存储即可,即在明确缓存已经失效的场景下,能够减少一次缓存查询,提高长链接建立的效率,并减少服务端的压力。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110451499.8A CN113364830B (zh) 2021-04-26 2021-04-26 一种长链接的缓存优化方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110451499.8A CN113364830B (zh) 2021-04-26 2021-04-26 一种长链接的缓存优化方法及***

Publications (2)

Publication Number Publication Date
CN113364830A CN113364830A (zh) 2021-09-07
CN113364830B true CN113364830B (zh) 2023-07-07

Family

ID=77525584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110451499.8A Active CN113364830B (zh) 2021-04-26 2021-04-26 一种长链接的缓存优化方法及***

Country Status (1)

Country Link
CN (1) CN113364830B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114390453B (zh) * 2022-02-09 2023-09-08 福建天泉教育科技有限公司 一种消息推送的优化方法及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533042A (zh) * 2013-10-10 2014-01-22 北京奇虎科技有限公司 基于位置的信息发布方法和装置
CN109040296A (zh) * 2018-08-30 2018-12-18 上海艾融软件股份有限公司 一种基于长连接的数据推送方法及***
CN111221469A (zh) * 2018-11-27 2020-06-02 杭州海康威视数字技术股份有限公司 同步缓存数据的方法、装置和***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0308991D0 (en) * 2003-04-17 2003-05-28 Psion Digital Ltd A data access replication or communication system comprising a distributed software application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533042A (zh) * 2013-10-10 2014-01-22 北京奇虎科技有限公司 基于位置的信息发布方法和装置
CN109040296A (zh) * 2018-08-30 2018-12-18 上海艾融软件股份有限公司 一种基于长连接的数据推送方法及***
CN111221469A (zh) * 2018-11-27 2020-06-02 杭州海康威视数字技术股份有限公司 同步缓存数据的方法、装置和***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
曾超宇 ; 李金香 ; .Redis在高速缓存***中的应用.微型机与应用.2013,(第12期),第11-13页. *
李原野 ; .一种基于UDP实时远程设备管理***的设计与安全实现.网络空间安全.2016,(第07期),第32-34页. *

Also Published As

Publication number Publication date
CN113364830A (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
CN108595207B (zh) 一种灰度发布方法、规则引擎、***、终端和存储介质
CN106911780B (zh) 业务id生成方法、装置及***
US20040085980A1 (en) System and method for maintaining transaction cache consistency in mobile computing environment
WO2017092351A1 (zh) 缓存数据的更新方法及装置
CN110912980B (zh) 订单状态同步方法、***及存储介质
CN112788126B (zh) 资源下载方法、装置、服务器和存储介质
CN111221469B (zh) 同步缓存数据的方法、装置和***
CN111125138B (zh) 一种轮询查询数据的方法、装置、计算机设备及存储介质
CN113364830B (zh) 一种长链接的缓存优化方法及***
CN111092934B (zh) 更新客户端路由的方法、存储介质
CN101087262A (zh) 一种即时通讯处理方法及***
CN112003945A (zh) 服务请求响应方法及装置
CN111200634A (zh) 缓存资源联动更新方法、***及服务器
US9405785B2 (en) Online propagation of data updates
CN113918857A (zh) 一种提高分布式web应用***性能的三级缓存加速方法
US6701353B1 (en) System for responding to new message polling from clients
CN113377817A (zh) 数据处理方法、***、设备及存储介质
CN107483565B (zh) 一种服务后台识别方法、代理服务器及计算机存储介质
CN114356970B (zh) 一种存储***资源缓存方法及装置
CN110865845B (zh) 提高接口访问效率的方法、存储介质
CN112235184B (zh) 一种基于事件驱动的信息推送方法、装置及电子设备
CN111901449B (zh) 一种优化域名访问的方法及装置
CN115271861A (zh) 一种请求过滤方法、装置、设备及存储介质
CN115361279A (zh) 配置数据的更新方法、装置、电子设备及计算机可读介质
CN110555040A (zh) 一种数据缓存方法、装置及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant