$m = new Memcached();
$res = $m->get('key');
if(empty($res)) {
$ret = $m->set('key');
$ret && $this->insert($data);
}
以上代码,为什么会重复insert数据??正确的写法是怎么样的呢?
$m = new Memcached();
$res = $m->get('key');
if(empty($res)) {
$ret = $m->set('key');
$ret && $this->insert($data);
}
以上代码,为什么会重复insert数据??正确的写法是怎么样的呢?
如果并发多的情况下,可以考虑使用锁,而且你的逻辑里面 $ret && $this->insert($data); 没做严谨的判断,也即并发的时候,只要 $ret实现了,也就会造成 $this->insert的重复插入,并同时在结合数据库的unique索引进行限制重复值
4 回答1.2k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答824 阅读✓ 已解决
1 回答906 阅读✓ 已解决
2 回答704 阅读✓ 已解决
有人知道怎么解决吗?在线等!目前有以下异常数据