$redis = RedisCli(); $origicount = $redis->scard('original');// 查看数据是否为空 if(!$origicount){ $recommend = M('video')->field('videoId')->where("is_original = 1 and status = 2 and look_type = 1")->order('videoId asc')->select(); foreach ($recommend as $v){ $redis->sadd('original',$v['videoId']); //添加集合 } } $srand = $redis->srandmember('original',20); //随机获取20个id $where['videoId'] = array('in',$srand); $list=M('video')->field('videoId,memberId,video_title,video_img,video_pathwater,price')->where($where)->select(); foreach ($srand as $vv){ $redis->srem('original',$vv);//删除redis集合 } if($origicount < 40){ //如果少于40 就应该升序查询数据库了 $desc = M('video')->field('videoId')->where("is_original = 1 and status = 2 and look_type = 1")->order('videoId desc')->select(); foreach ($desc as $de){ $redis->sadd('original',$de['videoId']); } }