我们希望使用 Foursquare 作为我们应用程序的位置数据库。他们的 API 指出,一个应用程序每小时最多可以向场所/* 端点发出 5,000 个无用户请求。为了帮助减少请求量,他们建议您利用缓存来避免在不同用户请求相同信息时重复调用 Foursquare API。
对于我们的应用程序,我们希望使用场所/搜索端点来获取某个位置周围的签到数据。缓存这些数据以允许对 Foursquare API 的调用最少的最佳方法是什么?
我们目前的想法是逐公里缓存代表地球上一个区域的“盒子”。当用户请求附近的场所时,我们会从他们当前所在盒子的中心点位置向 Foursquare 发出呼叫,并缓存该盒子的结果。现在,当另一个用户出现时,如果他们也在那个盒子里,我们可以返回我们为那个盒子缓存的最接近用户的结果。如果用户靠近框的边缘,我们将返回他们当前所在框的关闭结果,以及相邻框的关闭结果。
这是限制请求的好方法吗?我们担心这种技术可能会占用太多内存。你如何在你的应用程序中处理它?任何见解都会很棒,谢谢!