PHP APC 不适用于密钥中的某些字符



我有几个zend server CE(php5.3)的测试版本,一个在Mac 10.8.2上,一个在Linux EC2实例上,两者都使用安装附带的默认APC实现(zend数据缓存)。

在两台机器上,我调用:

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

然后我打电话给apc_fetch要那个钥匙。
在Mac上,apc_fetch工作。
在 Linux 上,apc_fetch返回 FALSE 并失败。

现在对于Linux盒子上的奇怪东西,我做了一些测试:
1.如果我删除键(y)中的最后一个字符,apc_fetch工作。
2.如果我更改冒号(:)斜杠 (/),apc_fetch有效。

知道发生了什么吗?谢谢。。。

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

ZDC 拥有的一件事是"命名空间",您可以在其中为键添加"{name}::",然后您可以删除以该前缀开头的所有键。

当字符串中有两个(非连续的)冒号时,可能存在错误。同时,只需调整密钥的结构以避免问题就很容易了。

最新更新