connect($redisconfig["host"], $redisconfig["port"]); if ($redisconfig['redis_pwd']) { $redis->auth($redisconfig['redis_pwd']); } if($redisconfig['redis_selectdb'] > 0){ $redis->select($redisconfig['redis_selectdb']); } if(is_array($live_id)) { $redisLiveInfo = []; foreach($live_id as $k => $v) { $getredisLiveInfo = $redis->get('live_'.$v); if(!$getredisLiveInfo) { // redis 中数据丢失 (每天凌晨四点更新数据到数据库做备份用) $where = []; $where["a.id"] = $v; if($all != 1) { $type_id > 0 && $where["live_type"] = $type_id; $is_recommend == 1 && $where["is_recommend"] = 1; } $getredisLiveInfo = $this->alias("a") ->field("a.*,b.id as live_type,b.name as live_type_name,u.nickname,u.avatar,at.name as anchor_type_name") ->join("hx_live_type b","a.live_type = b.id","left") ->join("hx_user u","a.user_id = u.id","left") ->join("hx_user_anchor an","a.user_id = an.user_id","left") ->join("hx_user_anchor_type at","an.type_id = an.type_id") ->where($where)->find(); $getredisLiveInfo && $redis->set('live_'.$live_id,json_encode($getredisLiveInfo)); // $redisLiveInfo[] = $getredisLiveInfo; $foreachData = $getredisLiveInfo; } else { $foreachData = json_decode($getredisLiveInfo,true); } if(!$foreachData) { return []; } if(($is_recommend == 1 && $foreachData["is_recommend"] == 1) || ($type_id == $foreachData["live_type"]) || ($all == 1)) { $redisLiveInfo[] = [ "id" => $foreachData["id"], "live_id" => $foreachData["live_id"], "live_notice" => $foreachData["live_notice"], "avatar" => $foreachData["avatar"], "live_hot" => $foreachData["live_hot"], "live_type_name" => $foreachData["live_type_name"], ]; } } } else { $data = $redis->get('live_'.$live_id); if(!$data) { // redis 中数据丢失 (每天凌晨四点更新数据到数据库做备份用) $data = $this->where(["live_id"=>$live_id])->find(); $redis->set('live_'.$live_id,json_encode($data)); } else { $data = json_decode($data,true); } if(($is_recommend == 1 && $data["is_recommend"] == 1) || ($type_id == $data["live_type"]) || ($all == 1)) { $redisLiveInfo = [ "id" => $data["id"], "live_id" => $data["live_id"], "live_notice" => $data["live_notice"], "avatar" => $data["avatar"], "live_hot" => $data["live_hot"], "live_type_name" => $data["live_type_name"], ]; } } return $redisLiveInfo; } }