如果你可以使用set,那么在PHP memcache中替换函数有什么意义呢?即使有变量,set也会自动替换它,对吧?
你能给我一个例子,哪个更好用而不是set?
谢谢.
如果您查看此处的评论,请继续 ZoFreX 的回答:http ://www.php.net/manual/en/memcache.set.php
您将看到以下内容:
对同一个键多次使用 set 似乎有意想不到的结果 - 它不会表现为“替换”,而是似乎为同一个键“设置”了多个值。“get”可以返回任何值。
这是在多服务器设置上测试的 - 如果您只有一台服务器,行为可能会有所不同。
所以真的replace()会首先查找现有的密钥,然后替换它(如果它存在),而set()只会添加密钥。我想最好首先使用replace(),FALSE如果找不到密钥,它会返回,在这种情况下,您会使用add()而不是set()因为您确定密钥不存在。这可确保您不会发生任何意外事故。所以你的代码可能是这样的:
$replace = Memcached::replace($key, $var);
if ( ! $replace)
{
$set = Memcached::add($key, $var);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2933 次 |
| 最近记录: |