欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種地圖瓦片緩存方法及裝置的制造方法

文檔序號(hào):9547212閱讀:599來源:國知局
一種地圖瓦片緩存方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種地圖瓦片緩存方法及裝置。
【背景技術(shù)】
[0002]所謂的地圖緩存技術(shù),就是按照一定的數(shù)學(xué)規(guī)則,把預(yù)生成的地圖切成一定規(guī)格的地圖瓦片(地圖切片),并保存到地圖服務(wù)器端,當(dāng)用戶通過客戶端訪問地圖服務(wù)時(shí),月艮務(wù)器直接返回對(duì)應(yīng)的地圖瓦片緩存數(shù)據(jù),無需再進(jìn)行實(shí)時(shí)渲染。因此,地圖緩存技術(shù)是一種實(shí)現(xiàn)快速訪問和并發(fā)訪問地圖服務(wù)的有效方式,通過地圖緩存技術(shù),服務(wù)器可以根據(jù)用戶請(qǐng)求返回預(yù)先生成的地圖瓦片,從而達(dá)到降低服務(wù)器負(fù)擔(dān)、加速顯示地圖及提升地圖瀏覽速度的目的。
[0003]目前地圖緩存技術(shù)主要基于服務(wù)器的本機(jī)內(nèi)存進(jìn)行地圖緩存,并在內(nèi)存中采用先進(jìn)先出(First Input FirstOutput,FIFO)策略對(duì)地圖瓦片進(jìn)行管理,這種方式在實(shí)現(xiàn)上非常簡單。
[0004]然而,由于現(xiàn)有技術(shù)采用FIFO策略對(duì)地圖瓦片進(jìn)行管理,當(dāng)內(nèi)存占用過高時(shí),會(huì)使得瓦片緩存頻繁交換出入,增加了內(nèi)存的負(fù)擔(dān),甚至有可能淘汰掉常用緩存,導(dǎo)致服務(wù)器需要重新生成地圖瓦片,降低了整體的服務(wù)性能。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實(shí)施例提供一種地圖瓦片緩存方法及裝置,用以解決現(xiàn)有技術(shù)中采用FIFO策略對(duì)內(nèi)存中的地圖瓦片進(jìn)行管理時(shí),瓦片緩存頻繁交換出入,導(dǎo)致了內(nèi)存負(fù)擔(dān)的增加、月艮務(wù)性能整體下降的問題。
[0006]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0007]—種地圖瓦片緩存方法,包括:
[0008]接收客戶端發(fā)送的地圖請(qǐng)求指令,并根據(jù)所述地圖請(qǐng)求指令確定對(duì)應(yīng)的地圖瓦片;
[0009]根據(jù)所述地圖瓦片的級(jí)別和行列號(hào)信息,確定所述地圖瓦片的存儲(chǔ)節(jié)點(diǎn);
[0010]判斷所述地圖瓦片的級(jí)別是否小于設(shè)定的閾值,若是,則將所述地圖瓦片存入所述存儲(chǔ)節(jié)點(diǎn)的第一區(qū)域;否則,將所述地圖瓦片存入所述存儲(chǔ)節(jié)點(diǎn)的第二區(qū)域,并在后續(xù)過程中按照設(shè)定周期進(jìn)行數(shù)據(jù)管理。
[0011]這樣,通過分區(qū)域?qū)嵤┎煌膬?nèi)存管理策略,對(duì)頻繁訪問區(qū)域的地圖瓦片始終緩存,避免了地圖瓦片的頻繁交換出入,提高了系統(tǒng)的處理性能。
[0012]較佳的,進(jìn)一步包括:
[0013]在初始配置階段,將部署有Memcache服務(wù)的至少兩個(gè)節(jié)點(diǎn)連接成Memcache集群;
[0014]根據(jù)預(yù)設(shè)的內(nèi)存分配參數(shù),將所述至少兩個(gè)節(jié)點(diǎn)的存儲(chǔ)空間劃分為第一區(qū)域和第二區(qū)域。
[0015]這樣,通過使用Memcache作為緩存支持,對(duì)地圖瓦片進(jìn)行集中式的管理。
[0016]較佳的,將所述至少兩個(gè)節(jié)點(diǎn)的存儲(chǔ)空間劃分為第一區(qū)域和第二區(qū)域,包括:
[0017]將所述至少兩個(gè)節(jié)點(diǎn)的內(nèi)存空間或硬盤空間劃分為第一區(qū)域和第二區(qū)域。
[0018]這樣,利用內(nèi)存空間作為存儲(chǔ)空間時(shí),能夠更加快速地存儲(chǔ)和讀取緩存數(shù)據(jù),利用硬盤空間作為存儲(chǔ)空間時(shí),能夠存儲(chǔ)更多的緩存數(shù)據(jù)。
[0019]較佳的,進(jìn)一步包括:
[0020]接收到內(nèi)存擴(kuò)展指令時(shí),在所述內(nèi)存擴(kuò)展指令指示增加的新節(jié)點(diǎn)上部署Memcache服務(wù),并將部署Memcache服務(wù)后的新節(jié)點(diǎn)加入所述Memcache集群,形成新的Memcache集群。
[0021]這樣,可以根據(jù)緩存數(shù)據(jù)的數(shù)量級(jí),簡便地對(duì)緩存節(jié)點(diǎn)進(jìn)行橫向擴(kuò)展,極大地?cái)U(kuò)大了系統(tǒng)的總內(nèi)存,有利于存儲(chǔ)更多的緩存數(shù)據(jù)。
[0022]較佳的,根據(jù)所述地圖瓦片的級(jí)別和行列號(hào)信息,確定所述地圖瓦片的存儲(chǔ)節(jié)點(diǎn),包括:
[0023]根據(jù)所述地圖瓦片的級(jí)別和行列號(hào)信息計(jì)算哈希Hash值;
[0024]根據(jù)所述Hash值從所述Memcache集群內(nèi)選擇所述地圖瓦片的存儲(chǔ)節(jié)點(diǎn)。
[0025]這樣,根據(jù)計(jì)算的Hash值將地圖瓦片存儲(chǔ)到對(duì)應(yīng)的節(jié)點(diǎn),能夠保證在增加或者刪除節(jié)點(diǎn)時(shí),盡可能小的改變已存在的地圖瓦片緩存與節(jié)點(diǎn)的映射關(guān)系。
[0026]較佳的,將所述地圖瓦片存入所述存儲(chǔ)節(jié)點(diǎn)的第二區(qū)域,并在后續(xù)過程中按照設(shè)定周期進(jìn)行數(shù)據(jù)管理,包括:
[0027]將所述地圖瓦片存入所述存儲(chǔ)節(jié)點(diǎn)的第二區(qū)域;
[0028]按照設(shè)定周期統(tǒng)計(jì)所述地圖瓦片及存儲(chǔ)在所述第二區(qū)域內(nèi)的其他地圖瓦片的被訪問次數(shù),并基于所述被訪問次數(shù)從高到低的順序?qū)λ械貓D瓦片進(jìn)行排列;
[0029]判斷所述地圖瓦片是否位于排序隊(duì)列的前N%,其中,O彡N彡100,若是,則保留所述地圖瓦片的相關(guān)數(shù)據(jù);否則,將所述地圖瓦片的相關(guān)數(shù)據(jù)進(jìn)行清除。
[0030]這樣,為了不過多地占用內(nèi)存容量,對(duì)大比例尺緩存實(shí)行緩存淘汰策略。
[0031]一種地圖瓦片緩存裝置,包括:
[0032]通信單元,用于接收客戶端發(fā)送的地圖請(qǐng)求指令,并根據(jù)所述地圖請(qǐng)求指令確定對(duì)應(yīng)的地圖瓦片;
[0033]確定單元,用于根據(jù)所述地圖瓦片的級(jí)別和行列號(hào)信息,確定所述地圖瓦片的存儲(chǔ)節(jié)點(diǎn);
[0034]處理單元,用于判斷所述地圖瓦片的級(jí)別是否小于設(shè)定的閾值,若是,則將所述地圖瓦片存入所述存儲(chǔ)節(jié)點(diǎn)的第一區(qū)域;否則,將所述地圖瓦片存入所述存儲(chǔ)節(jié)點(diǎn)的第二區(qū)域,并在后續(xù)過程中按照設(shè)定周期進(jìn)行數(shù)據(jù)管理。
[0035]這樣,通過分區(qū)域?qū)嵤┎煌膬?nèi)存管理策略,對(duì)頻繁訪問區(qū)域的地圖瓦片始終緩存,避免了地圖瓦片的頻繁交換出入,提高了系統(tǒng)的處理性能。
[0036]較佳的,進(jìn)一步包括:
[0037]配置單元,用于在初始配置階段,將部署有Memcache服務(wù)的至少兩個(gè)節(jié)點(diǎn)連接成Memcache集群,以及根據(jù)預(yù)設(shè)的內(nèi)存分配參數(shù),將所述至少兩個(gè)節(jié)點(diǎn)的存儲(chǔ)空間劃分為第一區(qū)域和第二區(qū)域。
[0038]這樣,通過使用Memcache作為緩存支持,對(duì)地圖瓦片進(jìn)行集中式的管理。
[0039]較佳的,所述配置單元具體用于:
[0040]將所述至少兩個(gè)節(jié)點(diǎn)的內(nèi)存空間或硬盤空間劃分為第一區(qū)域和第二區(qū)域。
[0041]這樣,利用內(nèi)存空間作為存儲(chǔ)空間時(shí),能夠更加快速地存儲(chǔ)和讀取緩存數(shù)據(jù),利用硬盤空間作為存儲(chǔ)空間時(shí),能夠存儲(chǔ)更多的緩存數(shù)據(jù)。
[0042]較佳的,所述配置單元進(jìn)一步用于:
[0043]在接收到內(nèi)存擴(kuò)展指令時(shí),在所述內(nèi)存擴(kuò)展指令指示增加的新節(jié)點(diǎn)上部署Memcache服務(wù),并將部署Memcache服務(wù)后的新節(jié)點(diǎn)加入所述Memcache集群,形成新的Memcache 集群。
[0044]這樣,可以根據(jù)緩存數(shù)據(jù)的數(shù)量級(jí),簡便地對(duì)緩存節(jié)點(diǎn)進(jìn)行橫向擴(kuò)展,極大地?cái)U(kuò)大了系統(tǒng)的總內(nèi)存,有利于存儲(chǔ)更多的緩存數(shù)據(jù)。
[0045]較佳的,所述確定單元具體用于:
[0046]根據(jù)所述地圖瓦片的級(jí)別和行列號(hào)信息計(jì)算哈希Hash值;
[0047]根據(jù)所述Hash值從所述Memcache集群內(nèi)選擇所述地圖瓦片的存儲(chǔ)節(jié)點(diǎn)。
[0048]這樣,根據(jù)計(jì)算的Hash值將地圖瓦片存儲(chǔ)到對(duì)應(yīng)的節(jié)點(diǎn),能夠保證在增加或者刪除節(jié)點(diǎn)時(shí),盡可能小的改變已存在的地圖瓦片緩存與節(jié)點(diǎn)的映射關(guān)系。
[0049]較佳的,所述處理單元具體用于:
[0050]將所述地圖瓦片存入所述存儲(chǔ)節(jié)點(diǎn)的第二區(qū)域;
[0051]按照設(shè)定周期統(tǒng)計(jì)所述地圖瓦片及存儲(chǔ)在所述第二區(qū)域內(nèi)的其他地圖瓦片的被訪問次數(shù),并基于所述被訪問次數(shù)從高到低的順序?qū)λ械貓D瓦片進(jìn)行排列;
[0052]判斷所述地圖瓦片是否位于排序隊(duì)列的前N%,其中,O彡N彡100,若是,則保留所述地圖瓦片的相關(guān)數(shù)據(jù);否則,將所述地圖瓦片的相關(guān)數(shù)據(jù)進(jìn)行清除。
[0053]這樣,為了不過多地占用內(nèi)存容量,對(duì)大比例尺緩存實(shí)行緩存淘汰策略。
【附圖說明】
[0054]圖1為本發(fā)明實(shí)施例中實(shí)現(xiàn)地圖瓦片緩存的流程圖;
[0055]圖2為本發(fā)明實(shí)施例中Memcache分布式地圖瓦片緩存管理系統(tǒng);
[0056]圖3為本發(fā)明實(shí)施例中地圖瓦片緩存裝置。
【具體實(shí)施方式】
[0057]為了解決現(xiàn)有技術(shù)中采用FIFO策略對(duì)內(nèi)存中的地圖瓦片進(jìn)行管理時(shí),瓦片緩存頻繁交換出入的問題,進(jìn)而減輕服務(wù)器內(nèi)存的負(fù)擔(dān)并提高系統(tǒng)整體的服務(wù)性能,本發(fā)明實(shí)施例中,提供了一種地圖瓦片緩存方法及裝置。
[0058]下面結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說明。
[0059]參閱圖1所示,本發(fā)明實(shí)施例中,實(shí)現(xiàn)地圖瓦片緩存的具體流程如下:
[0060]步驟100:接收客戶端發(fā)送的地圖請(qǐng)求指令,并根據(jù)該地圖請(qǐng)求指令確定對(duì)應(yīng)的地圖瓦片。
[0061]考慮到現(xiàn)有技術(shù)中采用服務(wù)器的本機(jī)內(nèi)存進(jìn)行瓦片緩存,其內(nèi)存的大小直接限制了緩存數(shù)據(jù)的大小,無法根據(jù)緩存數(shù)據(jù)的大小進(jìn)行橫向擴(kuò)展,因此,本發(fā)明實(shí)施例中提供了一種管理系統(tǒng),參閱圖2所示,該管理系統(tǒng)凌駕于所有服務(wù)器之上,在多臺(tái)服務(wù)器上部署分布式內(nèi)存對(duì)象緩存系統(tǒng)(Memcache)服務(wù),通過Memcache集群代理服務(wù)(magent)技術(shù)實(shí)現(xiàn)分布式管理,搭建了一套Memcache集群服務(wù),并與瓦片地圖服務(wù)進(jìn)行對(duì)接。
[0062]管理系統(tǒng)在初始配置階段的配置過程如下,將部署有Memcache服務(wù)的至少兩個(gè)節(jié)點(diǎn)連接成Memcache集群,然后根據(jù)預(yù)設(shè)的內(nèi)存分配參數(shù),將Memcache集群內(nèi)的每個(gè)節(jié)點(diǎn)的存儲(chǔ)空間均劃分為第一區(qū)域和第二區(qū)域,其中,第一區(qū)域用于緩存常用并且數(shù)據(jù)較小的小比例尺地圖瓦片,第二區(qū)域用于緩存數(shù)據(jù)較大的大比例尺地圖瓦片。這里所謂的節(jié)點(diǎn)可以理解為服務(wù)器。每個(gè)節(jié)點(diǎn)的存儲(chǔ)空間可以是內(nèi)存空間,也可以是硬盤空間,當(dāng)將內(nèi)存空間作為存儲(chǔ)空間時(shí),能夠更加快速地存儲(chǔ)和讀取緩存數(shù)據(jù),當(dāng)將硬盤空間作為存儲(chǔ)空間時(shí),則能夠存儲(chǔ)更多的緩存數(shù)據(jù)。
[0063]當(dāng)需要對(duì)上述Memcache集群的總內(nèi)存進(jìn)行擴(kuò)展時(shí),管理系統(tǒng)只需根據(jù)接收到的內(nèi)存擴(kuò)展指令,在該內(nèi)存擴(kuò)展指令指示增加的新節(jié)點(diǎn)上部署Memcache服務(wù),然后將部署Memcache服務(wù)后的新節(jié)點(diǎn)加入原Memcache集群,形成新的Memcache集群。如此,即可根據(jù)緩存數(shù)據(jù)的數(shù)量級(jí),方便地對(duì)Memcache集群的總內(nèi)存進(jìn)行擴(kuò)展,并且不會(huì)影響到瓦片地圖服務(wù)。
[0064]步驟110:根據(jù)地圖瓦片的級(jí)別和行列號(hào)信息,確定地圖瓦片的存儲(chǔ)節(jié)點(diǎn)。
[0065]具體的,步驟110中確定地圖瓦片具體的存儲(chǔ)節(jié)點(diǎn)的過程如下:首先根據(jù)該地圖瓦片的級(jí)別和行列號(hào)信息計(jì)算哈希(Hash)值,然后根據(jù)該Hash值從Memcache集群內(nèi)選擇該地圖瓦片的存儲(chǔ)節(jié)點(diǎn)。
[0066]例如,某地圖瓦片的級(jí)別為2,行號(hào)為20,列號(hào)為30時(shí),其內(nèi)部Hash值的計(jì)算結(jié)果為562950456737812,根據(jù)該Hash值,可以通過“一致性哈希算法”計(jì)算節(jié)點(diǎn)位置。
[0067]由于Memcache集群是一個(gè)高性能的分布式的內(nèi)存對(duì)象緩存系統(tǒng),其內(nèi)存內(nèi)維護(hù)了一
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
温宿县| 萝北县| 闽清县| 花莲县| 陇南市| 泊头市| 舒兰市| 措勤县| 高唐县| 黔南| 墨脱县| 天等县| 阿克陶县| 建德市| 宜阳县| 荆门市| 双辽市| 台南县| 博罗县| 宁蒗| 乐安县| 和龙市| 大名县| 霍邱县| 长宁县| 格尔木市| 乌鲁木齐县| 民勤县| 延安市| 闵行区| 托克托县| 津南区| 定州市| 简阳市| 德兴市| 大渡口区| 鄂伦春自治旗| 文登市| 宣汉县| 新绛县| 苏尼特右旗|