我正在使用simpleXML来浏览Twitter XML文件的XML结果,但我完全迷失了使用PHP缓存结果。 This article似乎有所帮助,但我也遇到了memcache(并且memcached。来吧,名字。),我也不知道该怎么做。
我正在使用它:
$sxml = simplexml_load_file(
'http://api.twitter.com/1/qworky/lists/qworkyteam/statuses.xml');
foreach($sxml->status as $status){
$name = $status->user->name;
$image = $status->user->profile_image_url;
$update = $status->text;
$url = "http://twitter.com/" . $status->user->screen_name;
}
简单地将Twitter列表的XML数据存储到可用变量中。但是正确的做法是什么?如果缓存文件超过十分钟,则创建缓存文件并仅运行此PHP块,否则提供缓存变量?如何在缓存文件和DOM之间来回传递缓存变量?哎呀,缓存文件有哪种扩展名和文件名?
非常感谢,无论如何,你可以在这里向我指出一个健康的方向。
答案 0 :(得分:10)
约书亚看看this article关于简单的PHP缓存,你可以完全按照你所描述的那样相对容易地做(并且可能是最合理的方式)。
答案 1 :(得分:5)
作为一般概念,caching并不意味着实施战略。流行的想法是,您将信息存储在某个地方,为您提供比从最初获取数据更有效的访问权限。
因此,在这种情况下,从磁盘获取数据比重新查询Twitter更有效(通常,网络latency大于磁盘IO延迟)。
此外,从内存中获取数据比从磁盘获取信息更有效(因为内存延迟小于磁盘IO延迟)。
话虽如此,如果您需要,您可以将Twitter中的值存储在内存中,或者存储在磁盘上的文件中,如果您需要值继续超出说明,关闭。你是怎么做的取决于你(磁盘或内存,扩展,格式等)。这是你的缓存。
你需要注意的是缓存越来越陈旧。这是当您在缓存中的信息与原始数据源不同步时。您必须为应用程序确定可接受的陈旧数据的可用性,并在适当时重新查询,以替换缓存值。