尽管APC-Cache中已知密钥,但apc_fetch()返回FALSE

时间:2012-10-16 12:12:48

标签: php caching symfony apc

我对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代码在使用。

有什么想法吗?我已经在这里和谷歌搜索过了,但我没有找到任何帮助。

1 个答案:

答案 0 :(得分:0)

您应该查看以下内容:

apc.max_file_size = 512M

和其他几个人。还要注意,APC不能处理单个大变量。对于大数据,最好的办法是使用数据库。