如何缓存twitter api结果?

Vij*_*jay 4 php twitter caching

我想缓存twitter api结果的结果并将其显示给用户..

缓存结果的最佳方法是什么?

我正在考虑根据时间限制将结果写入文件中.是否可以使用或使用任何其他方法?

最重要的是什么是理想的缓存时间?我想显示来自twitter的最新内容,但是twitter api有请求限制..而且我的网站每天都有扎实的访问者.

lon*_*day 18

最简单的方法是使用APC(Alternative PHP Cache),如果安装的话.这具有内置的"生存时间"功能:

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
}
Run Code Online (Sandbox Code Playgroud)

数据超时10分钟是我的选择.这取决于Feed的更新频率......


编辑如果您没有安装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));
}
Run Code Online (Sandbox Code Playgroud)