4

我们希望使用 Foursquare 作为我们应用程序的位置数据库。他们的 API 指出,一个应用程序每小时最多可以向场所/* 端点发出 5,000 个无用户请求。为了帮助减少请求量,他们建议您利用缓存来避免在不同用户请求相同信息时重复调用 Foursquare API。

对于我们的应用程序,我们希望使用场所/搜索端点来获取某个位置周围的签到数据。缓存这些数据以允许对 Foursquare API 的调用最少的最佳方法是什么?

我们目前的想法是逐公里缓存代表地球上一个区域的“盒子”。当用户请求附近的场所时,我们会从他们当前所在盒子的中心点位置向 Foursquare 发出呼叫,并缓存该盒子的结果。现在,当另一个用户出现时,如果他们也在那个盒子里,我们可以返回我们为那个盒子缓存的最接近用户的结果。如果用户靠近框的边缘,我们将返回他们当前所在框的关闭结果,以及相邻框的关闭结果。

这是限制请求的好方法吗?我们担心这种技术可能会占用太多内存。你如何在你的应用程序中处理它?任何见解都会很棒,谢谢!

4

1 回答 1

2

这听起来像是缓存场地搜索的好策略。但是,为了明确 Foursquare政策,他们声明“请求增加的应用程序通常需要服务器端缓存场地细节。” 在授予速率限制增加之前,我们不会明确要求缓存搜索结果,仅调用场所详细信息

于 2013-10-16T15:01:11.563 回答