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 '请不要频繁重复提交表单';