我对APC有一点奇怪的问题。在我们的代码中,我们必须从json反序列化一百个大数组,这个操作真的很贵。现在我尝试反序列化并将数组存储在APC中,但是apc_fetch()在下一个请求时返回false。
$items = $entity->getItems(); // JSON-String
$cacheKey = __FUNCTION__ . '_itemcache_' . $entity->getId() . '_' . md5($items);
$cacheItems = apc_fetch($cacheKey);
if(false === $cacheItems) {
$cacheItems = json_decode($items, true);
apc_store($cacheKey, $cacheItems, 3600);
}
// ...
我可以在apc.php中看到所有缓存的项目,我也可以使用相同的server-config从其他应用程序中获取它们。可能有什么不对?这个片段来自symfony项目,但我能看到其中没有任何其他apc代码在使用。
有什么想法吗?我已经在这里和谷歌搜索过了,但我没有找到任何帮助。
答案 0 :(得分:0)
您应该查看以下内容:
apc.max_file_size = 512M
和其他几个人。还要注意,APC不能处理单个大变量。对于大数据,最好的办法是使用数据库。