laravel 中實現redis分布式鎖的使用--可用於防止表單重復提交


管理跨進程的鎖:

以下只是個人理解,如果有疑問請參考官方文檔  https://xueyuanjun.com/post/19506.html#bkmrk-%E5%8E%9F%E5%AD%90%E9%94%81

$key = 'test:'.$uid;
// 在控制器中,給這個key上鎖10秒鍾,如果不主動釋放,10秒鍾后服務器會自動釋放
$lock = Cache::lock($key, 10);
$result = $lock->get();
if ($result) {
// 模擬各種復雜計算,然后代碼沒執行完,下一個請求又過來了
sleep(2);
echo '執行了一次表單提交!';
// 主動釋放鎖
Cache::lock($key)->forceRelease();
}
echo '請不要頻繁重復提交表單';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM