对于访问频率较低的数据,其需要的更新频率比较高,其对应的设置的逻辑过期时间可以短一些。基于此,本发明实施例中,将逻辑过期时间设置为150-900秒,超过150-900秒后过期。优选的,将逻辑过期时间设置为300秒,超过300秒后过期,该设置值可以满足80-90%的数据的更新频率需要。
[0050]由于逻辑过期时间比较短,所以可以保证异步缓存服务器中已经存储的数据的更新频次比较多,更新速率比较快。
[0051]本发明实施例中,将物理过期时间设置为1-7天。优选的,将物理过期时间设置为2天,该设置值可以很好的平衡冷数据的访问频次以及异步缓存服务器的空间资源配置。物理过期时间设置的越长,对访问冷数据的性能提升效果越好。但是,物理过期时间越长,占用的异步缓存服务器的空间越大。因此,物理过期时间可以根据访问频次较低的冷数据的访问频次以及异步缓存服务器的资源配置的实际情况进行设置。
[0052]本发明实施例中,由于物理过期时间比较长,一般情况下,80% -90%的缓存数据都不会物理过期,所以每次请求达到时,一般情况下只需要读取缓存数据,而不需要访问源数据。
[0053]在本发明的一个实施例中,将源数据进行序列化,在序列化后的数据前端添加逻辑过期时间,形成异步缓存数据,并存储到异步缓存服务器中。
[0054]当请求到达,访问异步缓存服务器,并将异步缓存数据返回给用户时,将逻辑过期时间与源数据分离,并将源数据反序列化成对象后返回给用户。
[0055]对数据序列化后进行存储,将序列化后的数据反序列化成对象后返回给用户,可以方便数据存储和传输。
[0056]在本发明的一个实施例中,采用分布式锁控制的方式,调用所述作为委托参数的访问源服务器的函数,保证更新的异步缓存数据每次逻辑过期时,只回源一次,进而保证源服务器不会具有过大的访问压力。
[0057]在本发明的一个实施例中,提供了一种异步缓存服务器,包括:
[0058]数据接收单元:用于接收用户请求和作为委托参数的访问源服务器的函数;
[0059]数据处理单元:检查所述异步缓存服务器中是否存在与所述用户请求的数据一致的异步缓存数据;还用于为源数据添加逻辑过期时间,以及为所述异步缓存数据设置物理过期时间;
[0060]数据提取单元:用于调用所述作为委托参数的访问源服务器的函数,从所述源服务器中获取与所述用户请求的数据相一致的源数据;
[0061]数据存储单元:用于存储异步缓存数据;
[0062]数据输出单元:用于将异步缓存数据和源数据返回给用户。
[0063]在本发明的一个实施例中,提供了一种异步缓存系统,包括:用于发送用户请求和作为委托参数的访问源服务器的函数的用户请求处理端,上述实施例中提供的异步缓存服务器和提供源数据的源服务器。
[0064]通过采用本发明公开的上述技术方案,得到了如下有益的效果:
[0065]本发明的技术方案中,在从异步缓存服务器和源服务器读取用户请求的数据,并将其返回给用户,对用户的请求完成响应的同时,通过对源数据设置逻辑过期时间,形成异步缓存数据,并将异步缓存数据存储于异步缓存服务器中,从而实现异步缓存服务器的更新;同时,通过逻辑过期时间作为基准判断异步缓存数据是否过期,过期后,则读取源数据,并再次在异步缓存服务器中更新;通过上述两次的异步缓存数据的更新,可以保证80% -90%的用户请求只需要访问异步缓存服务器即可,而不需要读取源服务器。因此,在读取请求数据时,尤其是当数据请求量比较大的情况下,会极大的减轻源服务器的访问压力,进而减轻系统的负载压力,在实际使用过程中发现,与现有技术相比,采用本发明实施例提供的技术方案,对请求的响应时间为500毫秒以下,而采用现有的缓存技术,对请求的响应时间为4秒;另外,采用本发明实施例提供的技术方案,当访问源服务器出错时,也不会影响当次请求的响应,只会影响缓存数据的更新,所以,采用本发明实施例提供的技术方案,可以明显的提升系统的可用性和稳定性。
[0066]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0067]本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。
[0068]上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储坐寸。
[0069]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0070]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
【主权项】
1.一种异步缓存方法,其特征在于,包括如下步骤: S1,异步缓存服务器接收用户请求和作为委托参数的访问源服务器的函数; S2,检查所述异步缓存服务器中是否存在与所述用户请求的数据一致的异步缓存数据,如果不存在则执行步骤S3,如果存在则执行步骤S7 ; S3,所述异步缓存服务器调用所述作为委托参数的访问源服务器的函数,从所述源服务器中获取与所述用户请求的数据相一致的源数据,并将该源数据返回给用户,同时执行步骤S4 ; S4,为步骤S3或步骤S6中获取的所述源数据添加逻辑过期时间,形成异步缓存数据;将所述异步缓存数据存入所述异步缓存服务器,并设置所述异步缓存数据的物理过期时间; S5,验证所述异步缓存数据是否逻辑过期,如果未逻辑过期,则结束;如果逻辑过期,则执行步骤S6 ; S6,调用所述作为委托参数的访问源服务器的函数,从所述源服务器中获取与所述用户请求的数据相一致的源数据,然后执行步骤S4 ; S7,获取所述异步缓存数据,并将该数据返回给用户;同时执行步骤S5-S6。2.根据权利要求1所述的方法,其特征在于,步骤S4中,所述逻辑过期时间设置为150-900 秒。3.根据权利要求2所述的方法,其特征在于,所述逻辑过期时间设置为300秒。4.根据权利要求1所述的方法,其特征在于,步骤S4中,所述物理过期时间设置为1-7天。5.根据权利要求4所述的方法,其特征在于,所述物理过期时间设置为2天。6.根据权利要求1所述的方法,其特征在于,步骤S4中,所述为步骤S3或步骤S6中获取的所述源数据添加逻辑过期时间,包括,将步骤S3或步骤S6中获取的所述源数据进行序列化,在序列化后的数据前端添加逻辑过期时间。7.根据权利要求6所述的方法,其特征在于,步骤S7中,所述获取所述异步缓存数据,并将该数据返回给用户,包括,将所述异步缓存数据中的所述逻辑过期时间和所述源数据分离,并将所述源数据反序列化成对象后返回给用户。8.根据权利要求1所述的方法,其特征在于,步骤S6中,所述调用所述作为委托参数的访问源服务器的函数,采用分布式锁控制。9.一种异步缓存服务器,其特征在于,包括: 数据接收单元:用于接收用户请求和作为委托参数的访问源服务器的函数; 数据处理单元:检查所述异步缓存服务器中是否存在与所述用户请求的数据一致的异步缓存数据;还用于为源数据添加逻辑过期时间,以及为所述异步缓存数据设置物理过期时间; 数据提取单元:用于调用所述作为委托参数的访问源服务器的函数,从所述源服务器中获取与所述用户请求的数据相一致的源数据; 数据存储单元:用于存储异步缓存数据; 数据输出单元:用于将异步缓存数据和源数据返回给用户。10.一种异步缓存系统,其特征在于,包括:用户请求处理端,用于发送用户请求和作为委托参数的访问源服务器的函数,权利要求9所述的异步缓存服务器和提供源数据的源服务器。
【专利摘要】本发明公开了一种异步缓存方法、服务器及系统,涉及缓存技术领域。本发明的技术方案中,在从异步缓存服务器和源服务器读取用户请求的数据,并将其返回给用户,对用户的请求完成响应的同时,通过对源数据设置逻辑过期时间,形成异步缓存数据,并将异步缓存数据存储于异步缓存服务器中,从而实现异步缓存服务器的更新;同时,通过逻辑过期时间作为基准判断异步缓存数据是否过期,过期后,则读取源数据,并再次在异步缓存服务器中更新;通过上述两次的异步缓存数据的更新,可以保证80%-90%的用户请求只需要访问异步缓存服务器即可,而不需要读取源服务器。所以,采用本发明实施例提供的技术方案,可以明显的提升系统的可用性和稳定性。
【IPC分类】G06F9/44
【公开号】CN105373369
【申请号】CN201410422144
【发明人】李林
【申请人】北京皮尔布莱尼软件有限公司
【公开日】2016年3月2日
【申请日】2014年8月25日