0

我在 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 中看到所有缓存的项目,我还可以从具有相同服务器配置的其他应用程序中获取它们。有什么问题?这个片段取自一个 symfony 项目,但我可以看到没有任何其他 apc 代码在使用中。

有任何想法吗?我已经在这里和谷歌上搜索过,但没有发现任何帮助。

4

1 回答 1

0

您应该检查以下参数:

apc.max_file_size = 512M

和其他几个。另请注意,APC 并非用于处理单个大变量。对于大数据,最好的选择是使用数据库。

于 2012-10-16T15:05:09.063 回答