2013-10-16 82 views
4

我們正在尋找使用Foursquare作爲我們應用程序的位置數據庫。他們的API指出,應用程序每小時可以向場所/ *終端創建5,000個無用戶請求。爲了幫助減少請求數量,他們建議您使用緩存,以避免在不同用戶請求相同信息時重複調用Foursquare API。Foursquare場地/搜索緩存的最佳策略

對於我們的應用程序,我們正在尋找使用場地/搜索端點來獲取位置周圍的簽入數據。緩存這些數據以實現對Foursquare API調用的最少數量的最佳方式是什麼?

我們目前的想法是緩存代表地球上一個區域的公里乘「公里」盒子「。當用戶請求附近的場地時,我們會從他們當前所在的方塊的中心點位置打電話給Foursquare,並緩存該框的結果。現在,當另一個用戶出現時,如果他們也在那個盒子中,我們可以返回我們爲該盒子緩存的最接近用戶的結果。如果用戶靠近盒子的邊緣,我們將返回當前盒子中的近似結果,以及相鄰盒子中的近似結果。

這是一個很好的方法去限制請求的東西嗎?我們擔心這種技術可能會使用太多的內存。你如何在你的應用程序中執行它?任何見解都會很棒,謝謝!

+0

你接近工作了嗎?我正在考慮存儲原始請求的緯度/經度。如果新的請求位於lat/lng組合附近(如20米),則使用緩存的結果。 – jerik

回答

2

這聽起來像是緩存場地搜索的好策略。但是,要在Foursquare policies上超級清晰,他們聲明:「請求增加的應用通常需要」場地的服務器端緩存詳情「。在允許速率限制增加之前,我們不會對搜索結果進行明確的緩存,只會調用venue details