模拟新浪微博队列
假设我们已有一个微博发送接口
$uid=get_uid(); $content=get_content(); $timeline = time(); $weibo = new weibo();
$weibo->post($uid,$content,$timeline);
为了降低MySQL的并发数 我们先将微博写入 redis
$redis =new redis('127.0.1',6379); $redis->connent(); $weibo_info=array( 'uid'=>get_uid(), 'content' => getcontent(), 'timeline' =>time(), ); $redis->lPush('weibo_list',json_encode($weibo_info)); $redis->close();
然后用队列将MySQL 插入到MySQL
$redis =new redis('127.0.1',6379); $redis->connent();$weibo = new weibo();while(true){ if($redis->lSize('weibo_list')>0){// 输出名称为key的list左(头)起/右(尾)起的第一个元素,删除该元素
$info = $redis->rPop('weibo_list');$info =json_decode($info);$weibo->post($info->id,$info->content,$info->timelie);}else{sleep(1); //如果没有队列任务,休眠1S 让出CPU}}网上很多文章来的太“委婉”,redis开门见山,希望能够认识redis到底用来做什么后再深入学习了解。