一种地图瓦片缓存方法及装置的制造方法

文档序号:9547212阅读:508来源:国知局
一种地图瓦片缓存方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种地图瓦片缓存方法及装置。
【背景技术】
[0002]所谓的地图缓存技术,就是按照一定的数学规则,把预生成的地图切成一定规格的地图瓦片(地图切片),并保存到地图服务器端,当用户通过客户端访问地图服务时,月艮务器直接返回对应的地图瓦片缓存数据,无需再进行实时渲染。因此,地图缓存技术是一种实现快速访问和并发访问地图服务的有效方式,通过地图缓存技术,服务器可以根据用户请求返回预先生成的地图瓦片,从而达到降低服务器负担、加速显示地图及提升地图浏览速度的目的。
[0003]目前地图缓存技术主要基于服务器的本机内存进行地图缓存,并在内存中采用先进先出(First Input FirstOutput,FIFO)策略对地图瓦片进行管理,这种方式在实现上非常简单。
[0004]然而,由于现有技术采用FIFO策略对地图瓦片进行管理,当内存占用过高时,会使得瓦片缓存频繁交换出入,增加了内存的负担,甚至有可能淘汰掉常用缓存,导致服务器需要重新生成地图瓦片,降低了整体的服务性能。

【发明内容】

[0005]本发明实施例提供一种地图瓦片缓存方法及装置,用以解决现有技术中采用FIFO策略对内存中的地图瓦片进行管理时,瓦片缓存频繁交换出入,导致了内存负担的增加、月艮务性能整体下降的问题。
[0006]本发明实施例提供的具体技术方案如下:
[0007]—种地图瓦片缓存方法,包括:
[0008]接收客户端发送的地图请求指令,并根据所述地图请求指令确定对应的地图瓦片;
[0009]根据所述地图瓦片的级别和行列号信息,确定所述地图瓦片的存储节点;
[0010]判断所述地图瓦片的级别是否小于设定的阈值,若是,则将所述地图瓦片存入所述存储节点的第一区域;否则,将所述地图瓦片存入所述存储节点的第二区域,并在后续过程中按照设定周期进行数据管理。
[0011]这样,通过分区域实施不同的内存管理策略,对频繁访问区域的地图瓦片始终缓存,避免了地图瓦片的频繁交换出入,提高了系统的处理性能。
[0012]较佳的,进一步包括:
[0013]在初始配置阶段,将部署有Memcache服务的至少两个节点连接成Memcache集群;
[0014]根据预设的内存分配参数,将所述至少两个节点的存储空间划分为第一区域和第二区域。
[0015]这样,通过使用Memcache作为缓存支持,对地图瓦片进行集中式的管理。
[0016]较佳的,将所述至少两个节点的存储空间划分为第一区域和第二区域,包括:
[0017]将所述至少两个节点的内存空间或硬盘空间划分为第一区域和第二区域。
[0018]这样,利用内存空间作为存储空间时,能够更加快速地存储和读取缓存数据,利用硬盘空间作为存储空间时,能够存储更多的缓存数据。
[0019]较佳的,进一步包括:
[0020]接收到内存扩展指令时,在所述内存扩展指令指示增加的新节点上部署Memcache服务,并将部署Memcache服务后的新节点加入所述Memcache集群,形成新的Memcache集群。
[0021]这样,可以根据缓存数据的数量级,简便地对缓存节点进行横向扩展,极大地扩大了系统的总内存,有利于存储更多的缓存数据。
[0022]较佳的,根据所述地图瓦片的级别和行列号信息,确定所述地图瓦片的存储节点,包括:
[0023]根据所述地图瓦片的级别和行列号信息计算哈希Hash值;
[0024]根据所述Hash值从所述Memcache集群内选择所述地图瓦片的存储节点。
[0025]这样,根据计算的Hash值将地图瓦片存储到对应的节点,能够保证在增加或者删除节点时,尽可能小的改变已存在的地图瓦片缓存与节点的映射关系。
[0026]较佳的,将所述地图瓦片存入所述存储节点的第二区域,并在后续过程中按照设定周期进行数据管理,包括:
[0027]将所述地图瓦片存入所述存储节点的第二区域;
[0028]按照设定周期统计所述地图瓦片及存储在所述第二区域内的其他地图瓦片的被访问次数,并基于所述被访问次数从高到低的顺序对所有地图瓦片进行排列;
[0029]判断所述地图瓦片是否位于排序队列的前N%,其中,O彡N彡100,若是,则保留所述地图瓦片的相关数据;否则,将所述地图瓦片的相关数据进行清除。
[0030]这样,为了不过多地占用内存容量,对大比例尺缓存实行缓存淘汰策略。
[0031]一种地图瓦片缓存装置,包括:
[0032]通信单元,用于接收客户端发送的地图请求指令,并根据所述地图请求指令确定对应的地图瓦片;
[0033]确定单元,用于根据所述地图瓦片的级别和行列号信息,确定所述地图瓦片的存储节点;
[0034]处理单元,用于判断所述地图瓦片的级别是否小于设定的阈值,若是,则将所述地图瓦片存入所述存储节点的第一区域;否则,将所述地图瓦片存入所述存储节点的第二区域,并在后续过程中按照设定周期进行数据管理。
[0035]这样,通过分区域实施不同的内存管理策略,对频繁访问区域的地图瓦片始终缓存,避免了地图瓦片的频繁交换出入,提高了系统的处理性能。
[0036]较佳的,进一步包括:
[0037]配置单元,用于在初始配置阶段,将部署有Memcache服务的至少两个节点连接成Memcache集群,以及根据预设的内存分配参数,将所述至少两个节点的存储空间划分为第一区域和第二区域。
[0038]这样,通过使用Memcache作为缓存支持,对地图瓦片进行集中式的管理。
[0039]较佳的,所述配置单元具体用于:
[0040]将所述至少两个节点的内存空间或硬盘空间划分为第一区域和第二区域。
[0041]这样,利用内存空间作为存储空间时,能够更加快速地存储和读取缓存数据,利用硬盘空间作为存储空间时,能够存储更多的缓存数据。
[0042]较佳的,所述配置单元进一步用于:
[0043]在接收到内存扩展指令时,在所述内存扩展指令指示增加的新节点上部署Memcache服务,并将部署Memcache服务后的新节点加入所述Memcache集群,形成新的Memcache 集群。
[0044]这样,可以根据缓存数据的数量级,简便地对缓存节点进行横向扩展,极大地扩大了系统的总内存,有利于存储更多的缓存数据。
[0045]较佳的,所述确定单元具体用于:
[0046]根据所述地图瓦片的级别和行列号信息计算哈希Hash值;
[0047]根据所述Hash值从所述Memcache集群内选择所述地图瓦片的存储节点。
[0048]这样,根据计算的Hash值将地图瓦片存储到对应的节点,能够保证在增加或者删除节点时,尽可能小的改变已存在的地图瓦片缓存与节点的映射关系。
[0049]较佳的,所述处理单元具体用于:
[0050]将所述地图瓦片存入所述存储节点的第二区域;
[0051]按照设定周期统计所述地图瓦片及存储在所述第二区域内的其他地图瓦片的被访问次数,并基于所述被访问次数从高到低的顺序对所有地图瓦片进行排列;
[0052]判断所述地图瓦片是否位于排序队列的前N%,其中,O彡N彡100,若是,则保留所述地图瓦片的相关数据;否则,将所述地图瓦片的相关数据进行清除。
[0053]这样,为了不过多地占用内存容量,对大比例尺缓存实行缓存淘汰策略。
【附图说明】
[0054]图1为本发明实施例中实现地图瓦片缓存的流程图;
[0055]图2为本发明实施例中Memcache分布式地图瓦片缓存管理系统;
[0056]图3为本发明实施例中地图瓦片缓存装置。
【具体实施方式】
[0057]为了解决现有技术中采用FIFO策略对内存中的地图瓦片进行管理时,瓦片缓存频繁交换出入的问题,进而减轻服务器内存的负担并提高系统整体的服务性能,本发明实施例中,提供了一种地图瓦片缓存方法及装置。
[0058]下面结合附图对本发明优选的实施方式进行详细说明。
[0059]参阅图1所示,本发明实施例中,实现地图瓦片缓存的具体流程如下:
[0060]步骤100:接收客户端发送的地图请求指令,并根据该地图请求指令确定对应的地图瓦片。
[0061]考虑到现有技术中采用服务器的本机内存进行瓦片缓存,其内存的大小直接限制了缓存数据的大小,无法根据缓存数据的大小进行横向扩展,因此,本发明实施例中提供了一种管理系统,参阅图2所示,该管理系统凌驾于所有服务器之上,在多台服务器上部署分布式内存对象缓存系统(Memcache)服务,通过Memcache集群代理服务(magent)技术实现分布式管理,搭建了一套Memcache集群服务,并与瓦片地图服务进行对接。
[0062]管理系统在初始配置阶段的配置过程如下,将部署有Memcache服务的至少两个节点连接成Memcache集群,然后根据预设的内存分配参数,将Memcache集群内的每个节点的存储空间均划分为第一区域和第二区域,其中,第一区域用于缓存常用并且数据较小的小比例尺地图瓦片,第二区域用于缓存数据较大的大比例尺地图瓦片。这里所谓的节点可以理解为服务器。每个节点的存储空间可以是内存空间,也可以是硬盘空间,当将内存空间作为存储空间时,能够更加快速地存储和读取缓存数据,当将硬盘空间作为存储空间时,则能够存储更多的缓存数据。
[0063]当需要对上述Memcache集群的总内存进行扩展时,管理系统只需根据接收到的内存扩展指令,在该内存扩展指令指示增加的新节点上部署Memcache服务,然后将部署Memcache服务后的新节点加入原Memcache集群,形成新的Memcache集群。如此,即可根据缓存数据的数量级,方便地对Memcache集群的总内存进行扩展,并且不会影响到瓦片地图服务。
[0064]步骤110:根据地图瓦片的级别和行列号信息,确定地图瓦片的存储节点。
[0065]具体的,步骤110中确定地图瓦片具体的存储节点的过程如下:首先根据该地图瓦片的级别和行列号信息计算哈希(Hash)值,然后根据该Hash值从Memcache集群内选择该地图瓦片的存储节点。
[0066]例如,某地图瓦片的级别为2,行号为20,列号为30时,其内部Hash值的计算结果为562950456737812,根据该Hash值,可以通过“一致性哈希算法”计算节点位置。
[0067]由于Memcache集群是一个高性能的分布式的内存对象缓存系统,其内存内维护了一
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1