看到同事在项目中的代码,一段写入数据库的代码前增加了如下一段:
//redis setnx 并发处理
$redis = new redisConnect();
$r_key = $usr_id."_".$order_id;
$canInsert = $redis->setnx($r_key,1);
$redis->expire($r_key,10);
if (!$canInsert)
{
$redis->close();
http_response_code(400);
exit;
}
$master_db = new EseeApiDbConnection($type=true);
$master_db->autocommit(false);
后面是写入数据库的操作。redis后面并没有写入其他数据,这样的代码真有缓解高并发的作用吗