我是靠谱客的博主 危机红酒,最近开发中收集的这篇文章主要介绍redis防止php脚本重复执行,PHP如何基于redis的分布式锁防止高并发重复请求,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

connect("127.0.0.1",6379);

//高并发时防止重复请求

//渠道系统传递过来的key

$lockKey='lock:18806767777&37781991111629092&taoshihan';

$resultKey='res:18806767777&37781991111629092&taoshihan';

//如果已经查询过值,可以直接返回

$info=$redis->get($resultKey);

if($info){

exit($info);

}

//如果没有值的,获取锁

$lock=$redis->set($lockKey, 1, ['nx', 'ex'=>10]);

if($lock){

//请求外部系统获取结果,比如响应结果比较慢

sleep(8);

$info='{"name":"taoshihan"}';

$ret=$redis->set($resultKey,$info);

if($ret){

//删除锁

$redis->del($lockKey);

exit($info);

}

}

echo "请稍后重试!";

推荐学习:PHP教程

最后

以上就是危机红酒为你收集整理的redis防止php脚本重复执行,PHP如何基于redis的分布式锁防止高并发重复请求的全部内容,希望文章能够帮你解决redis防止php脚本重复执行,PHP如何基于redis的分布式锁防止高并发重复请求所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部