我知道如果密钥已经存在,apc_store()会覆盖密钥,所以我知道差异,我的问题是:什么是更好的方法/最佳实践?
答案 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。