我非常喜欢PHP的APC缓存模块的易用性和功能。在我正在研究的网站中,我一直在使用它来缓存来自远程服务器的json响应(用于库存等)。但是,我现在正在做一些不同的请求(数千个),我想缓存这些请求,并且我担心为此目的而浪费内存。
我知道我可以编写一些MYSQL处理程序来将结果存储在数据库中,但这似乎是我的时间投入相当大,特别是如果一种方法可以避免它已经退出
答案 0 :(得分:2)
我讨厌成为理智的声音,但是有些事情出了什么问题(好吧,我意识到它已经过度简化了,如果文件在读取时仍然被写入,应该进行检查):
function get_json($id) {
$fn = './json-cache/' . $id . '.json';
if(file_exists($fn)) {
return file_get_contents($fn);
}
$json = do_something_to_get_json();
file_put_contents($fn, $json, LOCK_EX);
return $json;
}
答案 1 :(得分:1)
这完全取决于您需要缓存多少请求以及缓存它们的原因。如果它只是少数,通过像Memcached这样的内存缓存它们将非常简单(和临时)。此外,您可以设置memcached使用的RAM量,以便不会运行该内存盒。
如果你只是缓存速度,那么将它们从驱动器中拉回来并不比重新轮询web服务快得多。
如果你正在缓存持久性(在你正在轮询的web服务发生故障的情况下),你最好使用像MySQL甚至MongoDB这样的东西。特别是使用Mongo会很好,因为你不需要一个模式,只能将JSON对象塞进一个集合中,然后将它们拉回来。
答案 2 :(得分:0)
回答我自己的问题,Pear:Cache-Lite可以解决问题。