redis链接失败,发送短信验证码仍然是可以的,只报出一个异常connect refused

来源:7-19 个人中心数据修改以及预留的作业

架构师是怎样炼成de

2020-04-22

redis链接失败,发送短信验证码仍然是可以的,只报出一个异常connect refused

{
“status”: 0,
“message”: “Connection refused”,
“result”: []
}
产生的原因是我本地的redis关掉了,但是其他服务均正常,这里发送验证码等均正常,这种情况不合理,
因为无法缓存验证码,却发送成功了

写回答

1回答

天经地义

2020-04-22

public static function sendCode(string $phoneNumber, int $len, string $type = 'ali'): bool
{
    // 生成短信验证码
    $code = Num::getCode($len);

    // 工厂模式2
    $classStats = ClassArr::smsClassStat();
    $class = ClassArr::initClass($type, $classStats);
    $sms = $class::sendCode($phoneNumber, $code);

    if ($sms) {
        // 将验证码记录到redis,并设置失效时间
        // 检查php环境是否有redis拓展
        // redis服务
        cache(config('redis.code_pre') . $phoneNumber, $code, config('redis.expire'));
    }
    return true;
}

教程中是先发送成功才写redis,你可以改变一下逻辑,redis写入成功再发送,示例如下:

if (cache(config('redis.code_pre') . $phoneNumber, $code, config('redis.expire'))) {
    $classStats = ClassArr::smsClassStat();
    $class = ClassArr::initClass($type, $classStats);
    $sms = $class::sendCode($phoneNumber, $code);
}
0
0

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1463 学习 · 1332 问题

查看课程