顾及访问热度的网络空间信息服务高性能内存缓存方法技术

技术编号:13620737 阅读:126 留言:0更新日期:2016-08-31 13:18
本发明专利技术公开了一种顾及访问热度的网络空间信息服务高性能内存缓存方法,包括以下步骤:服务器端接收客户端发送的空间数据请求,获得请求的访问地址;将地址作为关键字在全局内存缓存中检索缓存对象,如果检索没命中,则将客户端请求地址作为关键字从临时缓存中检索对应的临时缓存对象,若检索命中,根据临时缓存对象的访问次数决定是否加入全局内存缓存中,若未命中,则将当前请求信息加入到临时缓存。本发明专利技术方法能够控制缓存模块仅将访问热度达到一定阈值的空间数据缓存到有限的服务器内存中,减少内存缓存的置换次数,避免过多地对内存缓存数据进行淘汰处理,提高服务器端的内存缓存性能和网络空间信息服务的并发访问性能。

【技术实现步骤摘要】

本专利技术涉及网络地理信息系统技术,尤其是一种顾及访问热度的网络空间信息服务高性能内存缓存方法
技术介绍
网络空间信息服务高性能内存缓存是网络地理信息系统(WebGIS)中需要解决的重要问题之一,利用服务器内存的高性能并发读写性能,将网络空间信息服务请求数据缓存到服务器的高速内存中,能够提高客户端请求的并发响应效率,但服务器的内存资源是有限的,对于大规模的海量空间数据,只能缓存部分数据到服务器的内存中,当大用户量密集并发访问时,由于大量临时访问数据被加入到有限的内存缓存中,会导致频繁地对内存缓存中的数据进行淘汰处理,降低了内存缓存的效率和缓存命中率。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种顾及访问热度的网络空间信息服务高性能内存缓存方法,降低服务器上内存缓存的淘汰频率,提高网络空间信息服务内存缓存性能。本专利技术解决其技术问题所采用的技术方案是:一种顾及访问热度的网络空间信息服务高性能内存缓存方法,其包括以下步骤:步骤1:设置服务器端的空间数据请求次数缓存阈值(ACT),全局内存缓存对象最大个数(GCT),临时缓存对象最大个数(TCT)。步骤2:服务器端接收客户端发送的空间数据请求,获得请求的访问地址。步骤3:将地址作为关键字从全局内存缓存中去检索缓存对象,如果全局缓存命中,转步骤4;如果全局内存缓存没命中,转步骤6。步骤4:更新命中的全局内存缓存对象的最后访问时间属性。步骤5:将命中的缓存对象中存储的结果数据直接返回给客户端,结束。步骤6:从空间数据库中检索客户端请求的数据。步骤7:将结果数据返回给客户端。步骤8:将客户端请求地址作为关键字从临时缓存中检索对应的临时缓存对象,如果临时缓存命中,转步骤9;如果临时缓存未命中,转步骤15。步骤9:获取临时缓存对象的访问次数(RAC)。如果RAC>ACT,转步骤10;反之则转步骤14。步骤10:将当前请求得到的结果数据增加到全局内存缓存中。步骤11:删除当前请求的临时缓存对象,步骤12:获取全局内存缓存中的缓存个数(GCC),如果GCC>GCT,转步骤13,如果GCC<GCT,结束。步骤13:删除全局内存缓存中最久未被访问的一个缓存对象,结束。步骤14:将临时缓存对象的访问次数(RAC)加1,并更新临时缓存对象的最后访问时间,结束。步骤15:将当前请求的临时缓存对象的访问次数初始为1,并将其增加到临时缓存中。步骤16:获取临时缓存中的缓存对象个数(TCC),如果TCC>TCT,转步骤17;如果TCC<TCT,结束。步骤17:删除临时缓存中最久未被访问的一个缓存对象,结束。按上述方案,所述步骤1)中临时缓存和全局缓存都采用键值对的形式存储,其中,键均为请求的地址,值分别为临时缓存对象和全局缓存对象。按上述方案,所述每个临时缓存对象的值中包括其键对应的请求地址的最后访问时间和对该地址的访问次数;所述每个全局缓存对象的值中包括其键对应的请求地址的最后访问时间和该请求对应的结果数据。按上述方案,所述步骤9)中,仅当请求地址的访问次数超过阈值时才将请求地址对应的结果数据缓存到全局缓存中。本专利技术的有益效果是能够根据网络空间信息服务访问请求的访问热度来判断是否将请求数据缓存到服务器的内存缓存中,以避免将一些临时访问次数较少的数据存储到服务器的内存缓存中,减少服务器内存缓存的转换次数,提高服务器端内存缓存效率和缓存命中率,提高网络空间信息服务的大用户量并发请求处理性能。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术的方法流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,图1是本专利技术提供的顾及访问热度的网络空间信息服务高性能内存缓存方法流程图,所述方法包括以下步骤:步骤1:设置服务器端的空间数据请求次数缓存阈值(ACT),全局内存缓存对象最大个数(GCT),临时缓存对象最大个数(TCT)。步骤2:服务器端接收客户端发送的空间数据请求,获得请求访问的HTTP地址。步骤3:将地址作为关键字从全局内存缓存中去检索缓存对象,如果全局缓存命中,转步骤4;如果全局内存缓存没命中,转步骤6。全局缓存对象使用键值对的形式存储,请求访问的HTTP地址作为键,值为一个全局缓存对象类(GlobalCacheItem),其包含请求的结果数据(data)和请求的最后访问时间(lastAccessTime)。全局缓存对象类定义如下:Public class GlobalCacheItem{ Public byte[] data; Public DateTime lastAccessTime;本文档来自技高网...

【技术保护点】
一种顾及访问热度的网络空间信息服务高性能内存缓存方法,其特征在于,其包括以下步骤:步骤1)设置服务器端的空间数据请求次数缓存阈值ACT,全局内存缓存对象最大个数GCT,临时缓存对象最大个数TCT;步骤2)服务器端接收客户端发送的空间数据请求,获得请求的访问地址;步骤3)将地址作为关键字在全局内存缓存中检索缓存对象,如果检索命中,转步骤4)如果检索没命中,转步骤6);步骤4)更新命中的全局内存缓存对象的最后访问时间属性为当前时间;步骤5)将命中的缓存对象中存储的结果数据直接返回给客户端,结束;步骤6)从空间数据库中检索客户端请求的数据;步骤7)将结果数据返回给客户端;步骤8)将客户端请求地址作为关键字从临时缓存中检索对应的临时缓存对象,如果临时缓存命中对象,转步骤9);如果临时缓存未命中对象,转步骤15);步骤9)获取临时缓存对象的访问次数RAC;如果RAC>ACT,转步骤10);反之则转步骤14);步骤10)将当前请求得到的结果数据增加到全局内存缓存中;步骤11)删除当前请求的临时缓存对象;步骤12)获取全局内存缓存中的缓存个数GCC,如果GCC>GCT,转步骤13,如果GCC<GCT,结束;步骤13:删除全局内存缓存中最久未被访问的一个全局缓存对象,结束;步骤14)将临时缓存对象的访问次数RAC加1,并更新临时缓存对象的最后访问时间,结束;步骤15)将当前请求的对象增加到临时缓存中作为临时缓存对象,并将该临时缓存对象的访问次数初始为1;步骤16)获取临时缓存中的缓存对象个数TCC,如果TCC>TCT,转步骤17;如果TCC<TCT,结束;步骤17)删除临时缓存中最久未被访问的一个临时缓存对象,结束。...

【技术特征摘要】
1.一种顾及访问热度的网络空间信息服务高性能内存缓存方法,其特征在于,其包括以下步骤:步骤1)设置服务器端的空间数据请求次数缓存阈值ACT,全局内存缓存对象最大个数GCT,临时缓存对象最大个数TCT;步骤2)服务器端接收客户端发送的空间数据请求,获得请求的访问地址;步骤3)将地址作为关键字在全局内存缓存中检索缓存对象,如果检索命中,转步骤4)如果检索没命中,转步骤6);步骤4)更新命中的全局内存缓存对象的最后访问时间属性为当前时间;步骤5)将命中的缓存对象中存储的结果数据直接返回给客户端,结束;步骤6)从空间数据库中检索客户端请求的数据;步骤7)将结果数据返回给客户端;步骤8)将客户端请求地址作为关键字从临时缓存中检索对应的临时缓存对象,如果临时缓存命中对象,转步骤9);如果临时缓存未命中对象,转步骤15);步骤9)获取临时缓存对象的访问次数RAC;如果RAC>ACT,转步骤10);反之则转步骤14);步骤10)将当前请求得到的结果数据增加到全局内存缓存中;步骤11)删除当前请求的临时缓存对象;步骤12)获取全局内存缓存中的缓存个数GCC,如果GCC>GCT,转步骤13,如果GCC<GCT,结束;步骤13:删除全局内...

【专利技术属性】
技术研发人员:郭明强黄颖谢忠吴亮罗显刚
申请(专利权)人:中国地质大学武汉
类型:发明
国别省市:湖北;42

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

1