apipost为啥能影响我这块代码的执行顺序?
先上代码:
$redis = Redis::connection();
$redisKey = 'hello';
$getRes = $redis->get($redisKey);
$setRes = $redis->set($redisKey, 1, 'EX', 59, 'NX');
dd($getRes, $setRes);
这个段代码,通过浏览器访问、postman、apifox、apipost5.x,请求结果:
是正常的。
但是如果用apipost6.1.0请求(这个版本的apipost解析laravel的dd/dump打印的值,解析非常慢),请求结果:
竟然在get中拿到了下一步存储的值,并且set返回null(实际在redis中设置成功了)。
如果1:把$redisKey改成 $redisKey = ‘hello’ . mt_rand(0,999); 执行结果就正常了,蒙圈1ing..
如果2:在get和set中间增加一行 dump(123);,执行结果也是正常了,蒙圈2ing..
为啥一个请求工具还能影响代码的执行结果???请大佬指点
补充:
$redis = Redis::connection();
$redisKey = 'hello467';
$getRes = $redis->get($redisKey);
$redis1 = Redis::connection();
$setRes = $redis1->set($redisKey, 1, 'EX', 59, 'NX');
info('get:' . ($getRes ? "有值":"没值") . '====set:' . ($setRes === null ? '失败了' : '成功了'));
sleep(5);
dd($getRes, $setRes);
日志:
[2022-04-27 15:11:23] local.INFO: get:没值====set:成功了
[2022-04-27 15:11:30] local.INFO: get:有值====set:失败了
为啥执行了两次(确定程序只运行了一次)。打印结果也是错误的。
跟laravel版本没啥关系,6、7、9都试了
推荐文章: