hi,欢迎访问本站! 后台设置
当前位置: 首页Laravel正文

在 Laravel 中处理高并发场景下防止重复获取同一条数据的问题

唐长老网络 Laravel 125阅读

在 Laravel 中处理高并发场景下防止重复获取同一条数据的问题

数据库事务 + 悲观锁 (Pessimistic Locking)

通过数据库的行级锁(如 SELECT FOR UPDATE)锁定目标数据,确保同一时间只有一个请求能操作该数据。

DB::transaction(function () {
    // 锁定目标数据行(假设是 orders 表)
    $order = Order::where('status', 'pending')
                ->lockForUpdate() // 行级排他锁
                ->first();

    if ($order) {
        // 处理业务逻辑...
        $order->update(['status' => 'processed']);
    }
});

优点: 强一致性保证。

缺点: 高并发下可能引发性能瓶颈(锁竞争)。


标签:
声明:无特别说明,转载请标明本文来源!