后端开发|php教程
redis,php,发布
后端开发-php教程具体如下:
易语言十六进制计算器源码,vscode能编写c语言吗,ubuntu 流控,tomcat服务强力删除,网络爬虫法,php 群发图文消息,辽阳搜索引擎seo推广,留学网站源码lzw
在一些用户发布内容应用中,可能出现1秒上万个用户同时发布消息的情况,此时使用mysql可能会出现” too many connections”错误,当然把Mysql的max_connections参数设置为更大数,不过这是一个治标不治本的方法。而使用redis的消息队列,把用户发布的消息暂时存储在消息队列中,然后使用多个cron程序把消息队列中的数据插入到Mysql。这样就有效的降低了Mysql的高并发。具体实现原理如下:
1元云购最新版源码,vscode写一个vue,ubuntu vim查询,高并发tomcat挂,vivo商店 爬虫,php mvc关系,巫溪seo推广费用是多少lzw
现有微博发布接口:
类似值得买源码,vscode支持中文注释,ubuntu 查询包,tomcat电脑要求,sqlite3读写频率,爬虫的道德规范有哪些, php面试题,南山seo优化流程,北京云主机网站源码,点击下载网页源码,html5产品展示模板lzw
$weibo = new Weibo();$uid = $weibo->get_uid();$content =$weibo->get_content;$time = time();$webi->post($uid,$content,$time);
此方法直接把微博内容写入Mysql。具体过程省略。
把消息写入到redis:
$redis = new Redis(localhost,6379);$redis->connect();$webiInfo = array(uid=>get_uid(),content=>get_content(), ime=>time());$redis->lpush(weibo_list,json_encode($weiboInfo));$redis->close();
从redis中取出数据:
while(true){ if($redis->lsize(weibo_list) > 0){$info = $redis->rpop(weibo_list);$info = json_decode($info); }else{sleep(1); }}$weibo->post($info->uid,$info->content,$info->time);//插入数据的时候可以用一次性插入多条数据的方法,避免循环插入,不停的循环插入可能会导致死锁问题。
提示:可以运行多个cron程序同时把消息队列的数据插入到Mysql中,当一台Redis服务器不能应付大量并发时,使用一致性Hash算法,把并发分发到不同的Redis服务器。
相关推荐:
php+redis消息队列实现抢购步骤详解(附代码)
PHP如何使用redis消息队列发布微博
Redis消息通知系统的实现