PHP APC无法使用密钥中的某些字符?

时间:2012-12-05 10:24:03

标签: php caching apc zend-server-ce

我有一些zend server CE(php5.3)的测试分期,一个在Mac 10.8.2上,一个在Linux EC2实例上,都使用安装附带的默认APC实现(zend数据缓存)。 / p>

在两台机器上,我打电话:

apc_store("Installation:1234:lastActivity", "x", 120);

然后我为那把钥匙打电话给apc_fetch 在Mac上,apc_fetch有效 在Linux上,apc_fetch返回FALSE并失败。

现在对于Linux机器上的奇怪内容,我做了一些测试:
1.如果我删除键中的最后一个字符(y),则apc_fetch可以正常工作 2.如果我将冒号(:)更改为斜杠(/),则apc_fetch有效。

任何想法是怎么回事? 感谢...

1 个答案:

答案 0 :(得分:1)

Zend Server实际上并没有使用APC,而是使用它自己的实现 - “Zend Data Cache”。他们之间似乎有一些微妙的差异。

ZDC的一个特点是'名称空间',你在键上加上'{name} ::',然后就可以删除所有以该前缀开头的键。

当字符串中有两个(非连续)冒号时,可能存在错误。与此同时,只需调整键的结构就可以轻松解决问题。