为什么我打印不出来$res
并且$redis2->hSet($key,'score',$score);这个score的hash值也没有,应该哪里有一点小错误
<?php
//内容页的pv+1分,浏览时间超过5s+5分,不超过5s减1分,生成内容页的质量分
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
//内容页pv
$channelPVArticle='pv:article';
//内容页浏览时间超过5s
$channelGT5='gt5:article';
$redis->setOption(Redis::OPT_READ_TIMEOUT,-1);
$redis->subscribe([$channelPVArticle,$channelGT5],
function(Redis $instance,$channel,$message){
//计算质量分 gt5 * 6
//hash值保存
$redis2=new Redis();
$redis2->connect('127.0.0.1',6379);
if('gt5:article'==$channel){
echo "{$channel}\n";
$key="realtimescore:".intval($message);
$res = $redis2->hIncrBy($key,'gt5',1);
echo "{$res}\n";
if(!$res){
$score=$res*6;
echo "{$score}\n";
$redis2->hSet($key,'score',$score);
}else{
//报警
}
}
});
正在回答
您好,if判断$res的条件错误导致没有执行if区间,所以没有输出值。修改如下:
if($res){
$score=$res*6;
echo "{$score}\n";
$redis2->hSet($key,'score',$score);
}else{
//报警
}祝学习愉快!
- 参与学习 人
- 解答问题 721 个
掌握开发中必备技能解锁缓存、支付,邮件和短信发送等高端接口运用,直击工作重难点,通过开发简书项目熟练掌握Laravel5的开发技术。完成以上三个阶段的学习,成为满足企业需求的开发工程师。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星