设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
PHP使用redis消息队列发布微博的方法示例 ...
返回列表
查看:
2165
|
回复:
0
PHP使用redis消息队列发布微博的方法示例
[复制链接]
新格网络
当前离线
积分
7789
2617
主题
2617
帖子
7789
积分
论坛元老
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
积分
7789
发消息
电梯直达
楼主
发表于 2018-2-14 05:25:05
|
只看该作者
|
倒序浏览
|
阅读模式
本文实例讲述了PHP使用redis消息队列发布微博的方法。分享给大家供大家参考,具体如下:
在一些用户发布内容应用中,可能出现1秒上万个用户同时发布消息的情况,此时使用mysql可能会出现" too many connections"错误,当然把Mysql的max_connections参数设置为更大数,不过这是一个治标不治本的方法。而使用redis的消息队列,把用户发布的消息暂时存储在消息队列中,然后使用多个cron程序把消息队列中的数据插入到Mysql。这样就有效的降低了Mysql的高并发。具体实现原理如下:
现有微博发布接口:
$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(),'time'=>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相关内容感兴趣的读者可查看本站专题:《
php+redis数据库程序设计技巧总结
》、《
php面向对象程序设计入门教程
》、《
PHP基本语法入门教程
》、《
PHP网络编程技巧总结
》、《
PHP数组(Array)操作技巧大全
》、《
php字符串(string)用法总结
》、《
php+mysql数据库操作入门教程
》及《
php常见数据库操作技巧汇总
》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
redis 队列操作的例子(php)
php操作redis中的hash和zset类型数据的方法和代码例子
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
PHP实现操作redis的封装类完整实例
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
ThinkPHP自定义Redis处理SESSION的实现方法
php 使用redis锁限制并发访问类示例
PHP实现Session入库/存入redis的方法
PHP实现电商订单自动确认收货redis队列
PHP实现的redis主从数据库状态检测功能示例
PHP实现的Redis多库选择功能单例类
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端