要素服務在訪問要素源中的資料之前,除了需要必須建立乙個到要素源的fdo連線,還經常需要描述要素源的模式和空間上下文(
spatail context
),獲取要素類及其屬性的定義資訊,這些操作都會花掉一定的時間,特別是描述要素源的模式,所以mapguide伺服器將這些資訊快取下來以提高mapguide伺服器的效能。
當要素服務需要某個要素源的模式、要素類定義、屬性定義、空間上下文時,首先會在要素服務快取中查詢此專案,如果找到了就直接使用此快取專案,否則執行fdo命令得到此專案,然後將其儲存至要素服務快取中。在將其儲存到要素服務快取中時,如果快取中的專案數小於可以快取的最大專案數,則直接將其放入專案中,否則刪除掉快取中最後被使用的專案,然後將新的專案加入快取。當某個快取項的空閒時間(即當前時間和連線最後使用時間的時間差)超過設定的值時,會將其從快取中刪除。
通過修改mapguide
伺服器配置檔案serverconfig.ini
可以配置要素服務快取中可以快取的最大專案數、緩衝項的超時時間、超時檢測時間間隔,這些引數的具體含義請參考表1-
1,如下的引數值設定可以快取的最大專案數為100
,緩衝專案的超時時間為60
個小時(86400
秒),超時檢測時間間隔為1
小時(28800
秒)。
[featureserviceproperties]
cachesize = 100
cachetimelimit = 86400
cachetimerinterval = 3600
任何快取技術都必須解決資料更新的問題,如果被快取的資料發生了變化,如何通知並更新快取中對應的專案。目前,mapguide
並沒有為此提供任何解決方案,因為mapguide
並沒有提供任何方法修改要素源的模式、要素類定義、屬性定義和空間上下文。所以,除非使用者使用外部應用程式修改了要素源的這些資訊,否則不會產生任何問題。
屬性名稱
描述
cachesize
用於指定要素快取中可以快取的最大專案數,它可以為大於0小於等於5000的任何整數。
cachetimelimit
用於指定單位為秒的緩衝專案超時時間。
cachetimerinterval
用於指定單位為秒的檢測緩衝專案是否超時的時間間隔。
表1-1 要素服務的配置資訊
arcgis api for js 之發布要素服務
如果我們要在網頁端實現要素的增刪改查操作,需要使用到要素服務 featureservice 本篇文章將介紹如何發布要素服務。在發布之前,我們先了解下要素服務 要素服務可用來通過 internet 提供要素,並提供顯示要素時所要使用的符號系統。之後,客戶端可執行查詢操作以獲取要素,並執行相應的編輯操作...
多層快取 要素快取
多層快取概念在很多地方都用到過 1 把內容根據讀取頻率,分不同的等級 不同的層次進行儲存,頻率越高離查詢越近。2 還一種多層是快取索引的做法,類似b樹查詢,這樣能提高檢索效率。3 從架構上來說瀏覽器快取 cdn快取 反向 快取 服務端快取 也是多層快取。要素快取 要素快取是資料的本地副本,用於提高 ...
認識快取之伺服器快取(Nginx)
不管是前面介紹的apache快取還是現在要介紹的nginx快取,其實他們都借鑑了squid。隨著web伺服器的發展,web伺服器的快取功能已經越來越強大,通過配置使用web伺服器的快取功能,我們在很多時候已經沒有必要去實用squid了。下面是nginx的proxy cache模組的介紹。二 ngin...