如何使用PHP缓存RESTAPI中的动态数据?

如何使用PHP缓存RESTAPI中的动态数据?,php,api,caching,rest,directed-graph,Php,Api,Caching,Rest,Directed Graph,更新:我决定采纳下面的建议,在我的应用程序中实现Memcached层。现在我有另一个想法。对检查Memcached并在Memcached过期时更新的轮询(比如每五分钟或十分钟)执行AJAX请求是否可能/是一个好主意?这样,最终用户永远不会经历延迟,因为它是在后台无声地执行的 我正在使用Directed Edge的REST API在我的web应用程序上进行推荐。我遇到的问题是,我在整个网站的多个位置查询了大量的推荐,而且延迟很长,使得每个查询的页面加载时间大约为2-5秒。看起来很糟糕 我没有使用

更新:我决定采纳下面的建议,在我的应用程序中实现Memcached层。现在我有另一个想法。对检查Memcached并在Memcached过期时更新的轮询(比如每五分钟或十分钟)执行AJAX请求是否可能/是一个好主意?这样,最终用户永远不会经历延迟,因为它是在后台无声地执行的


我正在使用Directed Edge的REST API在我的web应用程序上进行推荐。我遇到的问题是,我在整个网站的多个位置查询了大量的推荐,而且延迟很长,使得每个查询的页面加载时间大约为2-5秒。看起来很糟糕

我没有使用Directed Edge的PHP绑定,而是使用我自己编写的一些PHP绑定我正在使用cURL连接到他们的API

如何缓存接收到的数据?我愿意使用任何数量的方法,只要它们易于实现且相当灵活

下面是一个获取建议的客户端代码示例

$de = new DirectedEdgeRest();
$item = "user".$uid;
$limit = 100;
$tags = "goal";
$recommendedGoals = $de->getRecommended($item, $tags, $limit);

您可以使用“序列化”和“文件放置”内容缓存到文件:

file_put_contents("my_cache", serialize($myObject));

您也可以缓存到memcached或数据库。

好吧,我希望添加memcached层,但还没有。你介意给我一个高层次的概述,具体是如何工作的,用一些类似于
foo-bar
的代码吗?只是好奇使用memcached到底有多困难。memcached非常简单,您只需要一个支持它的服务器。当你想存储一些东西时,你只需调用memcache_set(“key”,“value”),当你想检索它时,你只需调用memcache_get(“key”),哇,太棒了。您是否有自己使用的特定密钥命名约定?像UUID或UID前缀之类的东西?对于对象,我通常只使用“类\名称\数据库\ id”。所以ID为4325的照片应该是“photo_4325”。对于更复杂的事情,我只需要使用特定的名称并附加对象的ID。我将不得不对此做一些更深入的挖掘,但我现在已经停止安装libmemcached。乍一看,这似乎比我最初想象的要容易得多。