当我开始使用APC时,我期望有一种方法可以为缓存项制作类别,而不仅仅是键/值对。因为我只想为一个应用程序或我的应用程序的一部分清除缓存。当我发现它只是键/值对时,一个新的问题在我的脑海中冒泡:是否有任何方法来过滤键在APC缓存通过REGEX而不是精确的键匹配?
APC实际上有过滤器(在配置中)来过滤掉那些不应该被缓存的文件。不幸的是,这不是你想要的,目前没有APC函数来检索基于正则表达式的键列表。
无论如何,
- 在APC 中存储一个包含键列表的数组
- 在include文件中维护这样的数组(取决于列表的动态程度)
在APC中,假设你有一个键列表
'x-orange' : value, 'x-apple' : value, 'x-banana' : value,
'x-Life of Pi' : value, 'x-The Hobbit' : value,...
例如,在include文件或APC变量
中的类别数组$cats = array('Fruits' => array('orange','apple','banana'),
'Movies' => array('Life of Pi', 'The Hobbit'), ...
然后可以按类别检索APC数据
$mycat = ...; // eg Movies
foreach ($cats[$mycat] as $key) {
echo "$key : " . apc_fetch('x-' . $key);
}