PHP 使用redis防止大并发下二次写入(redis 锁)

Posted weihua2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 使用redis防止大并发下二次写入(redis 锁)相关的知识,希望对你有一定的参考价值。

//避免频繁请求 (Thinkphp)
        $sessID = ‘register‘ . $data[‘mobile_code_id‘] . $data[‘mobile‘] . $data[‘password‘];
        if(!(new \think\session\driver\Redis())->lock($sessID,3))
            throw new \Exception(‘频繁请求‘);
        
//自己定义
$lock_key = ‘LOCK_PREFIX‘ . $redis_key;
        $is_lock = $redis->setnx($lock_key, 1); // 加锁
        if($is_lock == true) // 获取锁权限
            // 设置过期时间,防止死任务的出现
            $redis->expire($lock_key, 5);
        else
            return true; // 获取不到锁权限,直接返回
        

 

以上是关于PHP 使用redis防止大并发下二次写入(redis 锁)的主要内容,如果未能解决你的问题,请参考以下文章

java大并发下Timeout waiting for connection from pool 解决方案

聚集索引和取消外键,外键影响在大并发下的性能.删除外键

PHP实现Redis单据锁,防止并发重复写入

PHP实现Redis单据锁,防止并发重复写入

php结合redis实现高并发下的抢购秒杀功能

php结合redis实现高并发下的抢购秒杀功能