CN107992489A - 一种数据处理方法及服务器 - Google Patents
一种数据处理方法及服务器 Download PDFInfo
- Publication number
- CN107992489A CN107992489A CN201610946373.7A CN201610946373A CN107992489A CN 107992489 A CN107992489 A CN 107992489A CN 201610946373 A CN201610946373 A CN 201610946373A CN 107992489 A CN107992489 A CN 107992489A
- Authority
- CN
- China
- Prior art keywords
- data
- access
- expired
- terminal
- server
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
本发明实施例公开了一种数据处理方法,该方法包括:接收第一访问请求,该第一访问请求用于请求访问第一访问数据;响应第一访问请求,检测本地缓存中是否存储有过期的第一访问数据;若检测出存储有过期的第一访问数据,则生成过期指令,该过期指令用于告知访问终端本地缓存中的第一访问数据过期;接收第二访问请求,该第二访问请求用于请求访问第一访问数据;若检测到第二访问请求为生成过期指令后接收的访问请求,获取第一访问数据在本地缓存中对应的预设更新数据通知标识;当预设更新数据通知标识为第一预设值时,发送过期指令至第一访问终端,该第一访问终端为发送第二访问请求的终端。本发明实施例还同时公开了一种服务器。
Description
技术领域
本发明涉及计算机领域中的网络数据访问技术,尤其涉及一种数据处理方法及服务器。
背景技术
服务器实现管理和控制多个客户端在数据库中的存储数据。本地缓存是服务器使用应用进程缓存储服务器返回到终端的访问数据,以减轻其应用终端访问服务器数据库的访问压力。具体的本地缓存的实现为:服务器在本地的物理内存划分出一部分空间,并使用该第一部分空间用来暂时存储服务器返回到终端的访问数据。通常,本地缓存内存储的数据都需要及时更新,以在用户通过终端上的客户端向服务器访问数据时,能够从服务器本地缓存内获得最新最准确的访问数据。由于本地的物理内存的空间有限,因此,本地缓存中存数的访问数据的存储是需要更新和删除的。
现有技术中,本地缓存的实现大都由程序自行实现,并使用全局字典进行存储,且设定有一个过期时间,当服务器检测到本地缓存中的某一数据过期后,终端可以直接去访问服务器的数据库中与该某一数据对应的数据。
然而,在高并发量的系统中,本地缓存内的数据存在过期的瞬间可能会有大量的访问请求穿透到服务器的数据库进行访问,进而导致服务器的访问过载,对数据库造成极大的访问压力,使得数据库不稳定,造成雪崩。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据处理方法及服务器,能够降低在本地缓存中的数据过期时服务器中数据库的访问压力,达到了预防访问请求穿透服务器的目的。
本发明的技术方案是这样实现的:
本发明实施例提供了一种数据处理方法,包括:
接收第一访问请求,所述第一访问请求用于请求访问第一访问数据;
响应所述第一访问请求,检测本地缓存中是否存储有过期的所述第一访问数据;
若检测出存储有过期的所述第一访问数据,则生成过期指令,所述过期指令用于告知访问终端所述本地缓存中的所述第一访问数据过期;
接收第二访问请求,所述第二访问请求用于请求访问所述第一访问数据;
若检测到所述第二访问请求为生成所述过期指令后接收的访问请求,则获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识;
当所述预设更新数据通知标识为第一预设值时,发送所述过期指令至第一访问终端,所述第一访问终端为发送所述第二访问请求的终端。
本发明实施例提供了一种服务器,包括:
接收单元,用于接收第一访问请求,所述第一访问请求用于请求访问第一访问数据;
检测单元,用于响应所述接收单元接收的所述第一访问请求,检测本地缓存中是否存储有过期的所述第一访问数据;
生成单元,用于若所述检测单元检测出存储有过期的所述第一访问数据,则生成过期指令,所述过期指令用于告知访问终端所述本地缓存中的所述第一访问数据过期;
所述接收单元,还用于接收第二访问请求,所述第二访问请求用于请求访问所述第一访问数据;
获取单元,用于若所述检测单元检测到所述第二访问请求为生成所述过期指令后接收的访问请求,则获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识;
发送单元,用于当所述获取单元获取的所述预设更新数据通知标识为第一预设值时,发送所述生成单元生成的所述过期指令至第一访问终端,所述第一访问终端为发送所述第二访问请求的终端。
本发明实施例提供了一种数据处理方法及服务器,接收第一访问请求,该第一访问请求用于请求访问第一访问数据;响应第一访问请求,检测本地缓存中是否存储有过期的第一访问数据;若检测出存储有过期的第一访问数据,则生成过期指令,该过期指令用于告知访问终端本地缓存中的第一访问数据过期;接收第二访问请求,该第二访问请求用于请求访问第一访问数据;若检测到第二访问请求为生成过期指令后接收的访问请求,获取第一访问数据在本地缓存中对应的预设更新数据通知标识;当预设更新数据通知标识为第一预设值时,发送过期指令至第一访问终端,该第一访问终端为发送第二访问请求的终端。采用上述方法实现方案,由于服务器在检测到本地缓存中要被访问的第一访问数据过期了的时候,在接下来接收到的访问请求接收到时,只允许预设更新数据通知标识达到一定预设值时才告知该访问请求对应的访问终端第一访问数据已经过期,使得访问终端可以再次向服务器的数据库去请求第一访问数据,避免了在高并发访问请求在请求过期的第一访问数据时,都去服务器中的数据库去获取第一访问数据的情况,因此,降低了在本地缓存中的数据过期时服务器中数据库的访问压力,达到了预防访问请求穿透服务器的目的。
附图说明
图1为本发明实施例提供的一种数据处理方法的系统架构图;
图2为本发明实施例提供的一种数据处理方法的流程图一;
图3为本发明实施例提供的一种聊天应用的登录界面示意图;
图4为本发明实施例提供的一种数据处理方法的流程图二;
图5为本发明实施例提供的一种数据处理方法的流程图三;
图6为本发明实施例提供的一种数据处理方法的流程图四;
图7为本发明实施例提供的一种数据处理方法的流程图五;
图8为本发明实施例提供的一种数据处理方法的流程图六;
图9为本发明实施例提供的一种服务器的结构示意图一;
图10为本发明实施例提供的一种服务器的结构示意图二;
图11为本发明实施例提供的一种服务器的结构示意图三;
图12为本发明实施例提供的一种服务器的结构示意图四;
图13为本发明实施例提供的一种服务器的结构示意图五。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例中一种数据处理系统的架构图,图1中包括:一个或多个服务器1、终端设备2及网络3,网络3中包括路由器,网关等等网络实体,图中并未体现。终端2通过有线网络或者无线网络与服务器1进行信息交互,以便从终端2采集到相关的数据信息传输至服务器1。终端的类型如图1所示,包括手机、平板电脑或PDA、台式机、PC机、智能TV等类型。其中,终端中安装有各种用户所需的应用,比如具备娱乐功能的应用(如视频应用,音频播放应用,游戏应用,阅读软件、聊天应用和直播应用),又如具备服务功能的应用(如地图导航应用、团购应用、拍摄应用等)。
基于上述架构,实现下述各实施例。
实施例一
本发明实施例提供了一种数据处理方法,应用在服务器侧,如图2所示,该方法可以包括:
S101、接收第一访问请求,该第一访问请求用于请求访问第一访问数据。
需要说明的是,本发明实施例提供的数据处理方法可以应用在用户通过终端进行应用功能(通过客户端实现)实现,该终端向服务器请求与实现某一应用功能的访问数据的情况下。
本发明实施例实现的前提是终端与服务器进行了网络连接,该终端与服务器可以通过网络连接进行相应的信息或数据交互的过程。具体的,需要建立终端的应用(APP)客户端与服务器的网络连接,此为终端(例如,手机)的基本功能之一。
这里,当启动终端的应用程序,运行该应用程序的应用客户端,该应用客户端为第三方应用程序APP的客户端。
在本发明实施例中,通过对终端上的某一应用的应用界面的操作,该终端将进行某一应用对应的第一访问请求发送给服务器,即该服务器接收了来自终端的第一访问请求,其中,该第一访问请求是用来请求访问服务器的第一访问数据的。也就是说,第一访问数据为与某一应用的应用界面上实现应用功能时对应的数据。其中,本发明实施例中将发送访问请求至服务器的终端也可以称为访问终端。
可选的,本发明实施例中的终端可以为智能手机,平板、智能电视等智能电子设备,本发明实施例不作限制。
示例性的,如图3所示,使用手机上的聊天应用时,通过该手机上的登录界面输入用户的用户名和密码,并在登陆界面上点击“登录”按钮后,该手机就向服务器发送请求与用户登录访问请求(即服务器接收了终端的第一访问请求),以获取与该用户登录相关的访问数据(第一访问数据)。
S102、响应第一访问请求,检测本地缓存中是否存储有过期的第一访问数据。
服务器在接收了第一访问请求之后,该服务器会对该第一访问请求进行响应,由于多个访问终端可以向服务器进行第一访问数据的访问,因此,该服务器可以在第一访问数据被首次访问后,就将该第一访问数据存储在该服务器的本地缓存中,当再有访问终端向服务器进行第一访问数据的访问时,就直接从本地缓存中获取该第一访问数据就可以了。但是,由于本地缓存的存储空间的有限性,该本地缓存中会按照一定规则进行过期的访问数据(过期数据)的清除,因此,在服务器就收到了第一访问请求时,需要先检测该本地缓存中是不是存储有过期的第一访问数据。
具体的,服务器先检测本地缓存中是否存储有第一访问数据,该服务器检测的结果可以有两种:一种是服务器检测出存储有第一访问数据;另一种是服务器未检测出存储有第一访问数据。而本发明实施例中,若服务器检测出了存储有第一访问数据,则该服务器就检测第一访问数据是否过期,从而判断服务器中是否存储有过期的第一访问数据。
需要说明的是,本发明实施例中的本地缓存中的过期数据的清楚可以为在预设时间段进行过期数据的清理,因此,会出现本地缓存中的过期数据虽然过期了,但是还没有被清除的情况。因此,本发明实施例中,服务器响应第一访问请求时,该服务器检测本地缓存中是否存储有过期的第一访问数据。
S103、若检测出存储有过期的第一访问数据,则生成过期指令,该过期指令用于告知访问终端本地缓存中的第一访问数据过期。
服务器检测本地缓存中是否存储有过期的第一访问数据之后,该服务器检测的结果可以有两种:一种是服务器检测出存储有过期的第一访问数据;另一种是服务器未检测出存储有过期的第一访问数据。而本发明实施例中,若服务器检测出了存储有过期的第一访问数据,则该服务器就生成过期指令,其中,该过期指令用于告知访问终端本地缓存中的第一访问数据过期。
具体的,若服务器检测出存储有过期的第一访问数据,则生成第一访问请求的第一应答指令,并在第一应答指令中设置预设的标志位,得到过期指令。
需要说明的是,在本发明实施例中,在多个访问终端向服务器请求访问第一访问数据时,该服务器先从本地缓存中去获取该第一访问数据,若该服务器在本地缓存中去获取该第一访问数据时,检测到该第一访问数据已经过期了,则该服务器就加锁,并设置预设的标志位的值与预设过期值,在过期指令生成后再有多个访问终端同时访问第一访问数据,但是服务器只会告知一个访问终端本地缓存中的第一访问数据已经过期了,需要去访问服务器的数据库中的最新的第一访问数据了。相当于,在过期生成之后,服务器再接收的多个访问第一访问数据的请求中只有一个请求可以获取该过期指令。
这里,由于过期数据还没有删除,因此,服务器对第一访问请求的应答可以为直接从本地缓存中获取第一访问数据。同时,在过期指令生成之后,没有收到过期指令的访问终端通过访问服务器的本地缓存获取第一访问数据。
可选的,本发明实施例中的预设的标志位的值可以用useable表示,预设过期值的设定可以为1、true等字母或数字,具体的预设的标志位的表示以及预设过期值的表示可由实际设置的情况决定,本发明实施例不作限制。
进一步地,服务器在检测出本地缓存中无数据的情况下,终端可以从从服务器的数据库中下载最新第一访问数据。具体的实现过程将在后续实施例中进行详细的说明。
可以理解的是,在过期指令生成之后,还有多个访问终端请求访问第一访问数据时,服务器进行加锁,只允许过期指令发送给再接收来的一个访问终端(第一访问终端)。其他的访问终端还是从服务器的本地缓存中进行第一访问数据的获取的。这样的话,服务器只是告知了第一访问终端向服务器的数据库请求最新的第一访问数据,避免了同时多个访问终端向服务器的数据库进行最新的第一访问数据的访问,从而降低了在本地缓存中的数据过期时服务器中数据库的访问压力,达到了预防访问请求穿透服务器的目的。
S104、接收第二访问请求,该第二访问请求用于请求访问第一访问数据。
在服务器生成过期指令后,表征本地缓存中的第一访问数据已经过期了,这时,服务器的本地缓存中的第一访问数据需要重新进行更新了,这时,若是服务器接收了第二访问请求的话,服务器可以将过期指令发送给第二访问请求对应的第一访问终端,使得第一访问终端可以去服务器的数据库中请求最新的第一访问数据,该第二访问请求用于请求访问第一访问数据。
需要说明的是,本发明实施例中,服务器将过期指令发送给哪个第二访问请求是需要进行判定的。具体的实现在S105中进行了描述。
S105、若检测到第二访问请求为生成过期指令后接收的访问请求,则获取第一访问数据在本地缓存中对应的预设更新数据通知标识。
服务器接收第二访问请求的时候,需要对该第二访问请求进行判定,以确定怎样响应该第二访问请求。
在本发明实施例中,当服务器在生成过期指令后接收的第二访问请求,则该服务器需要判定是否告知第二访问请求对应的第一访问终端需要重新进行最新的第一访问数据的获取,具体的判定是要判定该第二访问请求之前是否已经有访问终端去获取最新的第一访问数据了。在本发明实施例中,服务器通过在本地缓存中对应的预设更新数据通知标识来实现判定。因此,若服务器检测到第二访问请求为生成过期指令后接收的访问请求,则该服务器需要获取第一访问数据在本地缓存中对应的预设更新数据通知标识,进行进一步的判定。
需要说明的是,在本发明实施例中,服务器的本地缓存中存储的第一访问数据设置有对应的预设更新数据通知标识,该预设更新数据通知标识的默认值为第一预设值,其中,第一预设值用于表征可以向此次访问第一访问数据的访问终端进行过期指令的发送,第二预设值用于表征向此次访问第一访问数据的访问终端进行过期指令的发送。本发明实施例中的服务器通过预设更新数据通知标识的值对过期指令实现了加锁的功能。
可选的,本发明实施例中的第一预设值可以为0,第二预设值就为1,本发明实施例不限制第一预设值和第二预设值的具体的实现形式,只要第一预设值不同于第二预设值即可。
可选的,本发明实施例中的预设更新数据通知标识可以用notiExpire来表示,也可以用其他的字母或标识进行表示,以实际的设置为准,本发明实施例对预设更新数据通知标识的表示形式不作限制。
S106、当预设更新数据通知标识为第一预设值时,发送过期指令至第一访问终端,该第一访问终端为发送第二访问请求的终端。
服务器在获取第一访问数据在本地缓存中对应的预设更新数据通知标识之后,在本发明实施例中,该预设更新数据通知标识的形态可以有两种:第一预设值和第二预设值,由于第一预设值用于表征向此次访问第一访问数据的访问终端进行过期指令的发送,因此,当服务器获取的预设更新数据通知标识为第一预设值时,该服务器就选中此次进行第一访问数据访问的第一访问终端可以进行最新的第一访问数据的获取工作,即服务器决定将此次只能发送一次的过期指令发送给第一访问终端,其中,该第一访问终端为发送第二访问请求的终端。
示例性的,本发明实施例中的服务器读取本地缓存的过程的具体实现可以如下:
其中,数据定义如下:
进一步地,如图4所示,S105之后,本发明实施例提供的一种数据处理方法还可以包括:S107。具体如下:
S107、当预设更新数据通知标识为第二预设值时,发送第一访问数据至第一访问终端。
服务器在获取第一访问数据在本地缓存中对应的预设更新数据通知标识之后,在本发明实施例中,该预设更新数据通知标识的形态可以有两种:第一预设值和第二预设值,由于第二预设值用于表征向此次访问第一访问数据的访问终端进行过期指令的发送,因此,服务器中的本地缓存中的第一访问数据已经过期,但是服务器并不指示这时的第一访问终端向服务器的数据库去获取最新的第一访问数据,而是继续从本地缓存中获取第一访问数据,并发送该第一访问数据至第一访问终端。由于预设更新数据通知标识还表征已经有访问终端去服务器的数据库中获取最新的第一访问数据了,因此,这时的第一访问终端就不用去数据库中再进行最新第一访问数据的访问了。
可以理解的是,服务器只是告知了一个访问终端向服务器的数据库请求最新的第一访问数据,避免了同时多个访问终端向服务器的数据库进行最新的第一访问数据的访问,从而降低了在本地缓存中的数据过期时服务器中数据库的访问压力,达到了预防访问请求穿透服务器的目的。
进一步地,如图5所示,S106之后,本发明实施例提供的一种数据处理方法还可以包括:S108-S110。具体如下:
S108、接收第一访问终端响应过期指令发送的下载请求,该下载请求用于请求从数据库中获取第一访问数据。
服务器发送过期指令至第一访问终端,该第一访问终端为发送第二访问请求的终端之后,由于该服务器的过期指令用于告知第一访问终端本地缓存中的第一访问数据过期,这样第一访问终端就会重新对服务器的数据库发起第一访问数据的访问请求了,即第一访问终端响应过期指令,发送下载请求至服务器,其中,该下载请求用于请求访问数据库中存储的最新的第一访问数据了。
需要说明的是,本发明实施例中,第一访问终端会就收到服务器对第二访问请求的响应,当该第一访问终端接收到了应答指令之后,若在该应答中能够检测到预设的标志位,并且该预设的标志位的值为预设过期值时,该第一访问终端就知道了需要重新去服务器的数据库访问第一访问数据了。
S109、响应下载请求,从数据库中获取第一访问数据。
服务器接收第一访问终端响应过期指令发送的下载请求之后,该服务器获知了第一访问终端需要从其数据库中访问第一访问数据,于是,该服务器就可以响应下载请求,从数据库中获取第一访问数据。
需要说明的是,本发明实施例中的服务器的数据库中存储的数据都是最新的数据。
S110、将第一访问数据写入所述本地缓存中,并发送该第一访问数据至第一访问终端。
服务器从数据库中获取第一访问数据之后,由于服务器中本地缓存中之前存储的第一访问数据已经过期了,因此,该服务器可以将新获取的最新的第一访问数据写入本地缓存中,用来代替之前已经过期的第一访问数据,同时,该服务器可以发送最新的第一访问数据至第一访问终端,这样,该第一访问终端也获取到了第一访问数据,完成此次的访问过程,实现了当前的应用功能。
可以理解的是,由于在服务器中的本地缓存中的第一访问数据过期的情况下,该服务器只是通知一个访问终端从数据库中进行第一访问数据的访问,这样,该服务器就可以获取到数据库中存储的最新的第一访问数据了,并且通过更新本地缓存中的过期的第一访问数据,使得本地缓存中的过期数据有了新的数据的更新,保证了当已过期的第一访问数据被删除之后,该本地缓存中还可以有最新的第一访问数据供后面的访问终端进行该第一访问数据的访问。即保证了访问终端从本地缓存中进行第一访问数据的访问过程,保证了无损服务,还避免了大量访问终端同时一起去服务器的数据库中进行第一访问数据访问的压力。
需要说明的是,本发明实施例中的服务器将第一访问数据写入本地缓存中的过程将在后续实施例中进行详细的说明。
进一步地,在服务器将第一访问数据写入本地缓存,即更新了本地缓存中的已过期的第一访问数据之后,该服务器可以将与该第一访问数据对应的预设更新数据通知标识从第一预设值更新为第二预设值,即恢复初始默认值,以供下次第一访问数据过期时实现过期指令的加锁过程。
需要说明的是,在服务器中的本地缓存中的第一访问数据没有过期的时候,服务器对于访问终端对第一访问数据的访问请求的应答,都是直接从本地缓存中获取第一访问数据,并发送给访问终端,这样的情况是与预设更新数据通知标识是没有关系的,只有第一访问数据过期,需要对第一访问数据进行更新时,才会考虑预设更新数据通知标识进行访问请求的应答。
实施例二
本发明实施例提供了一种数据处理方法,如图6所示,该方法可以包括:
S201、接收第一访问请求,该第一访问请求用于请求访问第一访问数据。
这里,本发明实施例的S201的描述与实施例一中的S101的描述一致,此处不再赘述。
S202、响应第一访问请求,检测本地缓存中是否存储有第一访问数据。
服务器在接收了第一访问请求之后,该服务器会对该第一访问请求进行响应,由于多个访问终端可以向服务器进行第一访问数据的访问,因此,该服务器可以在第一访问数据被首次访问后,就将该第一访问数据存储在该服务器的本地缓存中,当再有访问终端向服务器进行第一访问数据的访问时,就直接从本地缓存中获取该第一访问数据就可以了。但是,由于本地缓存的存储空间的有限性,该本地缓存中会按照一定规则进行过期的访问数据(过期数据)的清除,因此,在服务器就收到了第一访问请求时,需要先检测该本地缓存中是不是存储有第一访问数据。即,服务器响应第一访问请求,检测本地缓存中是否存储有第一访问数据。
S203、若检测出未存储有第一访问数据,则发送第二应答指令至第一访问终端,该第二应答指令用于指示第一访问终端向数据库中请求访问该第一访问数据。
服务器检测本地缓存中是否存储有第一访问数据之后,该服务器检测的结果可以有两种:一种是服务器检测出存储有第一访问数据;另一种是服务器未检测出存储有第一访问数据。而本发明实施例中,若服务器检测出了未存储有第一访问数据,表征第一访问数据可能还没有终端被访问过,这样的话,该服务器就直接指示第一访问终端向服务器的数据库去获取第一访问数据,即服务器发送第二应答指令至第一访问终端,该第二应答指令用于指示第一访问终端向数据库中请求访问该第一访问数据。
S204、接收第一访问终端响应第二应答指令发送的下载请求,该下载请求用于请求从数据库中获取第一访问数据。
这里,本发明实施例的S204的描述与实施例一中的S108的描述一致,此处不再赘述。
不同的是,本发明实施例中的下载请求是基于服务器发送的第二应答指令响应的,而S108中的下载指令则是基于服务器发送的过期指令响应的。
S205、响应下载请求,从数据库中获取第一访问数据。
这里,本发明实施例的S205的描述与实施例一中的S109的描述一致,此处不再赘述。
S206、将第一访问数据写入本地缓存中,并发送该第一访问数据至第一访问终端。
这里,本发明实施例的S206的描述与实施例一中的S110的描述一致,此处不再赘述。
实施例三
基于实施例一和实施例二的实现,如图7所示,本发明实施例提供的一种数据处理方法中,S110或S206中描述的第一访问数据写入本地缓存的过程还可以包括:S301-S302。具体如下:
S301、设置与第一访问数据对应的过期时间戳、过期删除时间戳和预设更新数据通知标识。
S302、将第一访问数据、过期时间戳、过期删除时间戳和预设更新数据通知标识相应存储在本地缓存中。
服务器从其数据库中获取了最新的第一访问数据之后,该服务器将最新的第一访问数据缓存至服务器的本地缓存中,而在该服务器添加缓存时,该服务器设置过期时间戳和过期删除时间戳以及预设更新数据通知标识。
过期时间戳,用于表征第一访问数据对应的过期时间点;过期删除时间戳用于表征第一访问数据过期后的删除时间点;预设更新数据通知标识,用于表征是否需要从数据库中更新第一访问数据。
具体的,服务器指明缓存的key(基本信息),value(缓存数据)、过期时间戳和过期删除时间戳,并存储预设更新数据通知标识与第一访问数据对应。
可选的,过期时间戳与过期删除时间戳之间的时间间隔可以为一个固定值,具体的数值本发明实施例不作限制。只要保证第一访问数据对应的过期时间戳的时间点在过期删除时间戳的时间点之前就可以了。具体的时间戳的时间点可自行设置过期时间间隔,本发明实施例不作限制。
需要说明的是,本发明实施例中的缓存数据使用分片散列结构存储,采用分片散列结构存储可以减小锁的粒度,确保存数数据的高效性。在本发明实施例中,本地缓存中缓存的每一个数据被保存在一个cacheItem结构中,cacheItem保存了被缓存的对象的基本信息(访问终端的信息等),缓存数据(第一访问数据),过期时间(过期时间戳),过期删除时间(过期删除时间戳),是否已经通知访问终端更新数据的标识(预设更新数据通知标识)。
进一步地,在本发明实施例中,服务器中的本地缓存中缓存的数据在存放到分片散列结构中的同时,还会被服务器存放到一个以过期时间戳为权重的树状结构中,这个结构用于后续的本地缓存的清楚过程中,以供内存回收的检索和扫描。
示例性的,本发明实施例中,服务器将第一访问数据进行缓存的过程的具体实现可以如下:
基于实实施例三中的S301和S302的实现,如图8所示,本发明实施例提供的一种数据处理方法中还包括:清除本地缓存中过期的第一访问数据的过程,具体如下:
S303、在预设时间段到达时,获取当前系统时间。
S304、当过期删除时间戳与当前系统时间匹配时,删除与该过期删除时间戳对应的第一访问数据及其相关数据。
在本发明实施例中,服务器可以启动一个清理协成,定期对缓存的数据进行扫描,并将已经过期并且超过过期删除时间的访问数据从内存中删除,从而实现内存的回收。
基于本发明实施例的前述步骤,在预设时间段到达时,服务器获取当前系统时间;当过期删除时间戳与当前系统时间匹配时,删除与该过期删除时间戳对应的第一访问数据及其相关数据。
可选的,预设时间段可以为1分钟,具体的数值本发明实施例不作限制。
具体的,在第一访问数据在被写入本地缓存时,该第一访问数据还同时被服务器存放到一个以过期时间戳为权重的树状结构中,该服务器利用这个结构,在预设时间段到达,按照树状结构的顺序进行本地缓存中存储的访问数据的检索、扫描和删除,从而实现本地缓存的内存回收。
可以理解的是,服务器依据以过期时间戳为权重的树状结构进行本地缓存中的数据清除时,由于树状结构是按照过期的先后顺序进行排列的,因此,可以让服务器快速和方便的就能检索到已过期需要进行删除的数据,提高了服务器清除过期数据的效率,且实现简便。
示例性的,本发明实施例中,服务器清除本地缓存中过期的第一访问数据的过程的具体实现可以如下:
实施例四
如图9所示,本发明实施例提供了一种服务器1,该服务器1可以包括:
接收单元10,用于接收第一访问请求,所述第一访问请求用于请求访问第一访问数据。
检测单元11,用于响应所述接收单元10接收的所述第一访问请求,检测本地缓存中是否存储有过期的所述第一访问数据。
生成单元12,用于若所述检测单元11检测出存储有过期的所述第一访问数据,则生成过期指令,所述过期指令用于告知访问终端所述本地缓存中的所述第一访问数据过期。
所述接收单元10,还用于接收第二访问请求,所述第二访问请求用于请求访问所述第一访问数据。
获取单元13,用于若所述检测单元11检测到所述第二访问请求为生成所述过期指令后接收的访问请求,则获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识。
发送单元14,用于当所述获取单元13获取的所述预设更新数据通知标识为第一预设值时,发送所述生成单元12生成的所述过期指令至第一访问终端,所述第一访问终端为发送所述第二访问请求的终端。
可选的,所述生成单元12,具体用于若所述检测单元11检测出存储有过期的所述第一访问数据,则生成所述第一访问请求的第一应答指令,并在所述第一应答指令中设置预设的标志位,得到所述过期指令。
可选的,所述接收单元10,还用于所述发送所述过期指令至第一访问终端之后,接收所述第一访问终端响应所述发送单元14发送的所述过期指令发送的下载请求,所述下载请求用于请求从数据库中获取所述第一访问数据。
可选的,所述发送单元14,还用于所述获取单元13获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识之后,当所述获取单元13获取的所述预设更新数据通知标识为第二预设值时,发送所述第一访问数据至所述第一访问终端。
可选的,所述检测单元11,具体用于检测所述本地缓存中是否存储有所述第一访问数据;若检测到存储有所述第一访问数据,则根据所述第一访问数据对应的过期时间戳检测所述第一访问数据是否过期。
可选的,所述发送单元14,还用于所述检测单元11检测所述本地缓存中是否存储有所述第一访问数据之后,若所述检测单元11检测出未存储有所述第一访问数据,则发送第二应答指令至所述第一访问终端,所述第二应答指令用于指示所述第一访问终端向所述数据库中请求访问所述第一访问数据。
所述接收单元10,还用于接收所述第一访问终端响应所述发送单元14发送的所述第二应答指令发送的下载请求,所述下载请求用于请求从数据库中获取所述第一访问数据。
可选的,基于图9,如图10所示,所述服务器还包括:写入单元15。
所述获取单元13,还用于所述接收单元10接收所述下载请求之后,响应所述下载请求,从所述数据库中获取所述第一访问数据。
所述写入单元15,用于将所述获取单元13获取的所述第一访问数据写入所述本地缓存中。
所述发送单元14,还用于发送所述获取单元13获取的所述第一访问数据至所述第一访问终端。
可选的,基于图10,如图11所示,所述服务器还包括:设置单元16。
所述设置单元16,用于设置与所述获取单元13获取的所述第一访问数据对应的过期时间戳、过期删除时间戳和预设更新数据通知标识。
所述写入单元15,具体用于将所述获取单元13获取的所述第一访问数据、所述设置单元16设置的所述过期时间戳、所述过期删除时间戳和所述预设更新数据通知标识相应存储在本地缓存中。
可选的,基于图11,如图12所示,所述服务器1还包括:删除单元17。
所述获取单元13,还用于在预设时间段到达时,获取当前系统时间;
所述删除单元17,用于当所述写入单元15写入的所述过期删除时间戳与所述获取单元13获取的所述当前系统时间匹配时,删除与所述过期删除时间戳对应的所述第一访问数据及其相关数据。
如图13所示,在实际应用中,上述检测单元11、生成单元12,获取单元13、写入单元15、设置单元16和删除单元17可由位于服务器上的处理器18实现,具体为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等实现,接收单元10由接收器19实现,发送单元14由发送器110实现,上述终端还包括:存储介质111实现,该存储介质111、接收器19和发送器110可以通过系统总线112与处理器18连接,其中,存储介质111用于存储可执行程序代码,该程序代码包括计算机操作指令,存储介质111可能包含高速RAM存储器,也可能还包括非易失性存储器,例如,至少一个磁盘存储器。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (18)
1.一种数据处理方法,其特征在于,包括:
接收第一访问请求,所述第一访问请求用于请求访问第一访问数据;
响应所述第一访问请求,检测本地缓存中是否存储有过期的所述第一访问数据;
若检测出存储有过期的所述第一访问数据,则生成过期指令,所述过期指令用于告知访问终端所述本地缓存中的所述第一访问数据过期;
接收第二访问请求,所述第二访问请求用于请求访问所述第一访问数据;
若检测到所述第二访问请求为生成所述过期指令后接收的访问请求,则获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识;
当所述预设更新数据通知标识为第一预设值时,发送所述过期指令至第一访问终端,所述第一访问终端为发送所述第二访问请求的终端。
2.根据权利要求1所述的方法,其特征在于,所述若检测出存储有过期的所述第一访问数据,则生成过期指令,包括:
若检测出存储有过期的所述第一访问数据,则生成所述第一访问请求的第一应答指令,并在所述第一应答指令中设置预设的标志位,得到所述过期指令。
3.根据权利要求1所述的方法,其特征在于,所述发送所述过期指令至第一访问终端之后,所述方法还包括:
接收所述第一访问终端响应所述过期指令发送的下载请求,所述下载请求用于请求从数据库中获取所述第一访问数据。
4.根据权利要求1所述的方法,其特征在于,所述获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识之后,所述方法还包括:
当所述预设更新数据通知标识为第二预设值时,发送所述第一访问数据至所述第一访问终端。
5.根据权利要求1或2所述的方法,其特征在于,所述检测本地缓存中是否存储有过期的所述第一访问数据,包括:
检测所述本地缓存中是否存储有所述第一访问数据;
若检测到存储有所述第一访问数据,则根据所述第一访问数据对应的过期时间戳检测所述第一访问数据是否过期。
6.根据权利要求5所述的方法,其特征在于,所述检测所述本地缓存中是否存储有所述第一访问数据之后,所述方法还包括:
若检测出未存储有所述第一访问数据,则发送第二应答指令至所述第一访问终端,所述第二应答指令用于指示所述第一访问终端向所述数据库中请求访问所述第一访问数据;
接收所述第一访问终端响应所述第二应答指令发送的下载请求,所述下载请求用于请求从数据库中获取所述第一访问数据。
7.根据权利要求3或6所述的方法,其特征在于,接收所述下载请求之后,所述方法还包括:
响应所述下载请求,从所述数据库中获取所述第一访问数据;
将所述第一访问数据写入所述本地缓存中,并发送所述第一访问数据至所述第一访问终端。
8.根据权利要求7所述的方法,其特征在于,所述将所述第一访问数据写入所述本地缓存中,包括:
设置与所述第一访问数据对应的过期时间戳、过期删除时间戳和预设更新数据通知标识;
将所述第一访问数据、所述过期时间戳、所述过期删除时间戳和所述预设更新数据通知标识相应存储在本地缓存中。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在预设时间段到达时,获取当前系统时间;
当所述过期删除时间戳与所述当前系统时间匹配时,删除与所述过期删除时间戳对应的所述第一访问数据及其相关数据。
10.一种服务器,其特征在于,包括:
接收单元,用于接收第一访问请求,所述第一访问请求用于请求访问第一访问数据;
检测单元,用于响应所述接收单元接收的所述第一访问请求,检测本地缓存中是否存储有过期的所述第一访问数据;
生成单元,用于若所述检测单元检测出存储有过期的所述第一访问数据,则生成过期指令,所述过期指令用于告知访问终端所述本地缓存中的所述第一访问数据过期;
所述接收单元,还用于接收第二访问请求,所述第二访问请求用于请求访问所述第一访问数据;
获取单元,用于若所述检测单元检测到所述第二访问请求为生成所述过期指令后接收的访问请求,则获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识;
发送单元,用于当所述获取单元获取的所述预设更新数据通知标识为第一预设值时,发送所述生成单元生成的所述过期指令至第一访问终端,所述第一访问终端为发送所述第二访问请求的终端。
11.根据权利要求10所述的服务器,其特征在于,
所述生成单元,具体用于若所述检测单元检测出存储有过期的所述第一访问数据,则生成所述第一访问请求的第一应答指令,并在所述第一应答指令中设置预设的标志位,得到所述过期指令。
12.根据权利要求10所述的服务器,其特征在于,
所述接收单元,还用于所述发送所述过期指令至第一访问终端之后,接收所述第一访问终端响应所述发送单元发送的所述过期指令发送的下载请求,所述下载请求用于请求从数据库中获取所述第一访问数据。
13.根据权利要求10所述的服务器,其特征在于,
所述发送单元,还用于所述获取单元获取所述第一访问数据在所述本地缓存中对应的预设更新数据通知标识之后,当所述获取单元获取的所述预设更新数据通知标识为第二预设值时,发送所述第一访问数据至所述第一访问终端。
14.根据权利要求10或11所述的服务器,其特征在于,
所述检测单元,具体用于检测所述本地缓存中是否存储有所述第一访问数据;若检测到存储有所述第一访问数据,则根据所述第一访问数据对应的过期时间戳检测所述第一访问数据是否过期。
15.根据权利要求14所述的服务器,其特征在于,
所述发送单元,还用于所述检测单元检测所述本地缓存中是否存储有所述第一访问数据之后,若所述检测单元检测出未存储有所述第一访问数据,则发送第二应答指令至所述第一访问终端,所述第二应答指令用于指示所述第一访问终端向所述数据库中请求访问所述第一访问数据;
所述接收单元,还用于接收所述第一访问终端响应所述发送单元发送的所述第二应答指令发送的下载请求,所述下载请求用于请求从数据库中获取所述第一访问数据。
16.根据权利要求12或15所述的服务器,其特征在于,所述服务器还包括:写入单元;
所述获取单元,还用于所述接收单元接收所述下载请求之后,响应所述下载请求,从所述数据库中获取所述第一访问数据;
所述写入单元,用于将所述获取单元获取的所述第一访问数据写入所述本地缓存中,
所述发送单元,还用于发送所述获取单元获取的所述第一访问数据至所述第一访问终端。
17.根据权利要求16所述的服务器,其特征在于,所述服务器还包括:设置单元;
所述设置单元,用于设置与所述获取单元获取的所述第一访问数据对应的过期时间戳、过期删除时间戳和预设更新数据通知标识;
所述写入单元,具体用于将所述获取单元获取的所述第一访问数据、所述设置单元设置的所述过期时间戳、所述过期删除时间戳和所述预设更新数据通知标识相应存储在本地缓存中。
18.根据权利要求17所述的服务器,其特征在于,所述服务器还包括:删除单元;
所述获取单元,还用于在预设时间段到达时,获取当前系统时间;
所述删除单元,用于当所述写入单元写入的所述过期删除时间戳与所述获取单元获取的所述当前系统时间匹配时,删除与所述过期删除时间戳对应的所述第一访问数据及其相关数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946373.7A CN107992489B (zh) | 2016-10-26 | 2016-10-26 | 一种数据处理方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946373.7A CN107992489B (zh) | 2016-10-26 | 2016-10-26 | 一种数据处理方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107992489A true CN107992489A (zh) | 2018-05-04 |
CN107992489B CN107992489B (zh) | 2021-07-09 |
Family
ID=62029141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610946373.7A Active CN107992489B (zh) | 2016-10-26 | 2016-10-26 | 一种数据处理方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107992489B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324615A (zh) * | 2018-12-13 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 数据处理方法、装置、介质及电子设备 |
CN111694848A (zh) * | 2019-03-15 | 2020-09-22 | 阿里巴巴集团控股有限公司 | 使用引用计数更新数据缓冲的方法及装置 |
CN113254484A (zh) * | 2021-06-17 | 2021-08-13 | 杭州天谷信息科技有限公司 | 一种基于客户端的数据加密的缓存方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729247A (zh) * | 2012-10-12 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 数据获取请求的处理方法、系统及服务器 |
CN105095282A (zh) * | 2014-05-14 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种缓存数据更新方法、装置及系统 |
CN105138587A (zh) * | 2015-07-31 | 2015-12-09 | 小米科技有限责任公司 | 数据访问方法、装置和系统 |
-
2016
- 2016-10-26 CN CN201610946373.7A patent/CN107992489B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729247A (zh) * | 2012-10-12 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 数据获取请求的处理方法、系统及服务器 |
CN105095282A (zh) * | 2014-05-14 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种缓存数据更新方法、装置及系统 |
CN105138587A (zh) * | 2015-07-31 | 2015-12-09 | 小米科技有限责任公司 | 数据访问方法、装置和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324615A (zh) * | 2018-12-13 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 数据处理方法、装置、介质及电子设备 |
CN111694848A (zh) * | 2019-03-15 | 2020-09-22 | 阿里巴巴集团控股有限公司 | 使用引用计数更新数据缓冲的方法及装置 |
CN111694848B (zh) * | 2019-03-15 | 2023-04-25 | 阿里巴巴集团控股有限公司 | 使用引用计数更新数据缓冲的方法及装置 |
CN113254484A (zh) * | 2021-06-17 | 2021-08-13 | 杭州天谷信息科技有限公司 | 一种基于客户端的数据加密的缓存方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107992489B (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9888058B2 (en) | Sending files from one device to another device over a network | |
US8666367B2 (en) | Remotely locating and commanding a mobile device | |
US8838679B2 (en) | Providing state service for online application users | |
WO2017092351A1 (zh) | 缓存数据的更新方法及装置 | |
CN108429777B (zh) | 一种基于缓存的数据更新方法及服务器 | |
EP3491808B1 (en) | Interchangeable retrieval of content | |
JP6064800B2 (ja) | 情報処理装置及びプログラム | |
CN113407286B (zh) | 一种服务器远程管理方法及装置 | |
JP5863388B2 (ja) | 情報処理システム及びその制御方法、並びにプログラム | |
KR20230003228A (ko) | 문서 공유 처리 방법, 장치, 기기, 매체와 시스템 | |
CN104618388B (zh) | 快速注册登录方法及对应的重置服务器、信息服务器 | |
US20140188982A1 (en) | Virtual Desktop Infrastructure (VDI) Login Acceleration | |
WO2017088686A1 (zh) | 实现网站指纹登录的方法、装置和客户端设备 | |
CN107992489A (zh) | 一种数据处理方法及服务器 | |
US20170155712A1 (en) | Method and device for updating cache data | |
EP3016013A1 (en) | Information processing device, terminal device, information processing program, and information processing method | |
CN103365892A (zh) | 一种用于对多个联系对象进行处理的方法与设备 | |
WO2019242279A1 (zh) | 一种消息处理方法及装置 | |
KR20120073799A (ko) | 클라우드 스토리지 기반의 데이터 동기화 및 서비스 제공 장치와 방법 | |
JP2015121947A (ja) | ログイン中継サーバ装置、ログイン中継方法、及びプログラム | |
KR20150119668A (ko) | 메일 메시지를 이용한 파일 공유 방법 및 시스템 | |
US20180091461A1 (en) | Method and device for securing network communications using self-erasing messages | |
US9536199B1 (en) | Recommendations based on device usage | |
JP5069168B2 (ja) | ネットワーク運用監視システム、マネージャ装置、及びネットワーク運用監視方法 | |
CN106325986B (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 |