php - PHP 中的初学者数据缓存

标签 php caching twitter

我正在使用 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 block ,否则提供缓存的变量?如何在缓存文件和 DOM 之间来回传递缓存变量?哎呀,缓存文件有什么样的扩展名和文件名?

非常感谢您能以任何方式为我指明健康的方向。

最佳答案

作为一般概念,caching并不意味着实现策略。流行的想法是,将信息存储在某个地方,以便比最初从中获取数据的地方提供更有效的访问。

所以在这种情况下,从磁盘中获取数据比重新查询 Twitter 更高效(一般情况下,网络 latency 大于磁盘 IO 延迟)。

此外,从内存中获取数据比从磁盘中获取信息更有效(因为内存延迟小于磁盘 IO 延迟)。

也就是说,如果您愿意,您可以将来自 Twitter 的值存储在内存中,或者如果您需要这些值在关机后仍然存在,则可以存储到磁盘上的文件中。如何操作取决于您(磁盘或内存、扩展、格式等)。这是您的缓存。

您需要注意的是缓存越来越陈旧。这是当您缓存中的信息与原始数据源不同步时。您必须为您的应用程序确定陈旧数据的可接受程度,并根据需要重新查询,替换您的缓存值。

关于php - PHP 中的初学者数据缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279316/

相关文章:

caching - Redis 的优雅失效

java - Oracle Coherence 缓存对象

swift - 使用 Swift 访问 Twitter

python - 如何在 python 中比较两个句子字符串的相似性?

php - 查询 PHP 信号量而不阻塞?

php - 通过特定因素计算文件的流行度

php - static::$model::$table - 如何实现这一点?

javascript - 阻止浏览器缓存文本文件

java - 通过 Twitter 对 Web 应用程序的用户进行身份验证

php - 为什么 15.5 mod 5 = 0?