apc_add()与apc_store()

时间:2011-04-05 09:41:32

标签: php apc

我知道如果密钥已经存在,apc_store()会覆盖密钥,所以我知道差异,我的问题是:什么是更好的方法/最佳实践?

4 个答案:

答案 0 :(得分:40)

这两个函数之间的唯一区别是apc_add()不会覆盖现有条目。 另一方面,apc_store()将覆盖现有条目。

那么,您应该在apc_add()apc_store()之间使用哪一个? 嗯,这完全取决于你的需求:你想要覆盖现有的条目吗?

答案 1 :(得分:2)

除了@Pascal MARTIN所写的内容之外,它们之间存在重大的实际差异。

在严重并发的环境中,例如当apc用于apache中的用户对象时,使用apc_store可能会导致apc time bomb(该链接来自2007但仍然相关!),而apc_add可以缓解此问题。

另请参阅:https://serverfault.com/questions/342295/apc-keeps-crashing

答案 2 :(得分:1)

真的取决于您需要应用的逻辑:您是否需要覆盖密钥?这完全取决于你。

答案 3 :(得分:1)

如果您想在并发环境中实现原子计数器,则需要apc_add()。这是主要的用例IMO。