【发布时间】:2011-10-26 05:35:57
【问题描述】:
我正在考虑尝试从 JSON 文件中缓存 PHP 中的变量。有没有人知道一个好的教程或可以提供一个例子?
【问题讨论】:
-
持久缓存(在页面加载之间保存),还是仅在页面加载期间?
-
对远程服务器的多个 JSON 数据请求。
我正在考虑尝试从 JSON 文件中缓存 PHP 中的变量。有没有人知道一个好的教程或可以提供一个例子?
【问题讨论】:
将变量保存到文件缓存:
file_put_contents('cache.txt', json_encode($variable));
将缓存读入变量:
$variable = json_decode(file_get_contents('cache.txt'));
【讨论】:
time()(当前时间)和filemtime('cache.txt')(文件的修改时间)来进行过期。
Memcached 是您的最佳选择。它将任何可序列化的数据保存在非常快的缓存中。您可以在以下位置找到教程:
http://php.net/manual/en/memcache.examples-overview.php
它速度极快,并且具有许多其他功能,使其比仅将 txt 文件保存到服务器更好。
$memcache->set('key', $jsonstring, false, 10)
和
$get_result = $memcache->get('key');
【讨论】:
一个简单的方法是:
function getMyJson()
{
$data = apc_fetch('my_json', $wasCached);
if ($wasCached) {
return $data;
}
$data = json_decode(file_get_contents('/path/to/data.json'));
apc_store('my_json', $data);
return $data;
}
这使用 APC 的缓存,但您可以使用 memcached、redis 等类似的方式工作。
【讨论】: