4
我想缓存twitter API结果并将其显示给用户。如何缓存twitter api结果?
什么是缓存结果的最佳方法?
我正在考虑将结果写入基于时间限制的文件中。是好的还是应该使用其他方法?
而最重要的是什么才是理想的缓存时间?我想展示来自Twitter的最新内容,但Twitter的API有请求的限制。 而我的网站有固定的访问者/天..
我想缓存twitter API结果并将其显示给用户。如何缓存twitter api结果?
什么是缓存结果的最佳方法?
我正在考虑将结果写入基于时间限制的文件中。是好的还是应该使用其他方法?
而最重要的是什么才是理想的缓存时间?我想展示来自Twitter的最新内容,但Twitter的API有请求的限制。 而我的网站有固定的访问者/天..
最干净的方式来做到这一点将是使用APC(替代PHP缓存),如果它安装。这有一个内置的“生存时间”功能:
if (apc_exists('twitter_result')) {
$twitter_result = apc_fetch('twitter_result');
} else {
$twitter_result = file_get_contents('http://twitter.com/...'); // or whatever your API call is
apc_store('twitter_result', $twitter_result, 10 * 60); // store for 10 mins
}
10分钟的数据超时将是我的选择。这将取决于饲料是如何经常更新的变化...
编辑如果您尚未安装APC,你可以做到这一点使用一个非常简单的文件:
if (file_exists('twitter_result.data')) {
$data = unserialize(file_get_contents('twitter_result.data'));
if ($data['timestamp'] > time() - 10 * 60) {
$twitter_result = $data['twitter_result'];
}
}
if (!$twitter_result) { // cache doesn't exist or is older than 10 mins
$twitter_result = file_get_contents('http://twitter.com/...'); // or whatever your API call is
$data = array ('twitter_result' => $twitter_result, 'timestamp' => time());
file_put_contents('twitter_result.data', serialize($data));
}
刚使用了编辑的变体,它的效果非常好! – Coop 2013-08-30 14:21:07
这是唯一的一个页面的解决方案,哈哈 – Jasper 2013-10-09 20:54:04