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分布式锁的使用--可用于防止表单重复提交的主要内容,如果未能解决你的问题,请参考以下文章