laravel 中实现redis分布式锁的使用--可用于防止表单重复提交

Posted oujianjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ‘请不要频繁重复提交表单‘;

以上是关于laravel 中实现redis分布式锁的使用--可用于防止表单重复提交的主要内容,如果未能解决你的问题,请参考以下文章

Redis分布式锁的正确实现方式

如何在springcloud分布式系统中实现分布式锁?

使用Redis的分布式Java锁

利用springcloud+Redis在分布式系统中实现分布式锁

如何在springcloud分布式系统中实现分布式锁?

如何使用 Laravel 在网站中实现 OCR