$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索引进行限制重复值
7 回答5.6k 阅读
6 回答7.1k 阅读✓ 已解决
8 回答6.5k 阅读
2 回答2.5k 阅读✓ 已解决
4 回答697 阅读✓ 已解决
2 回答3.4k 阅读
4 回答2.5k 阅读
有人知道怎么解决吗?在线等!目前有以下异常数据