使用redis中setnx防止并发二次写入

全屏阅读
  • 基本信息
/**
     * 使用redis中setnx防止并发二次写入
     * @return bool
     */
    public function lock()
    {
        $uid = '110';

        $lock_key = 'lock_' . $uid;
        $is_lock  = Redis::setnx($lock_key, 1); // 加锁
        if ($is_lock) { // 获取锁权限
            // 程序逻辑处理:
            DB::table('test')->insert(['user_name' => '1234']);
            // 释放锁
            Redis::del($lock_key);
        } else {
            // 防止死锁
            if (Redis::ttl($lock_key) == -1) {
                Redis::expire($lock_key, 5);
            }
            return true; // 获取不到锁权限,直接返回
        }

    }

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!