PHP基于Redis消息队列实现发布微博的方法


Posted in PHP onMay 03, 2017

本文实例讲述了PHP基于Redis消息队列实现发布微博的方法。分享给大家供大家参考,具体如下:

phpRedisAdmin :github地址  图形化管理界面

git clone [url]https://github.com/ErikDubbelboer/phpRedisAdmin.git[/url]
cd phpRedisAdmin
git clone [url]https://github.com/nrk/predis.git[/url] vendor

首先安装上述的Redis图形化管理界面,能够方便的管理Redis数据

PHP基于Redis消息队列实现发布微博的方法

为了降低Mysql的并发数,先把用户的微博存在Redis中

假设用户发布的时候需要三个字段,uid(用户ID号),username(用户姓名),content('用户的评论')

比如用户传递以下信息

//此处需要安装phpredis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// 连接redis
$web_info= array(
'uid' => '123456',
'username' => '123',
'content' =>'123'
);
//将数组转成json来存储
$list = json_encode($web_info);
//lpush向KEY对应的头部添加一个字符串元素
$redis->lpush('weibo_lists',$list);
$redis->close();
///var_dump(json_encode($web_info));
var_dump($list);
?>

PHP基于Redis消息队列实现发布微博的方法

此处可以看到我们的redis已经有数据了

//创建一个PDO数据库链接 data.php
class qq{
 public function post($uid='',$username='',$content=''){
  try{
   $dsn = "mysql:host;dbname=localhost;dbname=test";
   $db = new PDO($dsn,'root','root');
   $db->exec("SET NAMES UTF8");
   $sql ="insert into test(uid,username,content)values('$uid','$username','$content')";
   $db->exec($sql);
  }catch(PDOException $e){
   $e->getMessage();
  }
 }
}
//处理redis数据库的数据 并把数据放到MYSQL数据库中
include "data.php";
$qq = new qq();
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
//返回的列表的大小。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE
if($redis -> lsize('weibo_lists')){
 //从LIST头部删除并返回删除数据
 $info = $redis->rPop('weibo_lists');
 $info = json_decode($info);
 $qq->post($info->uid,$info->username,$info->content);
}
$redis->close();
var_dump($info);
?>

PHP基于Redis消息队列实现发布微博的方法

我们能看到数据库已经有数据了

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php adodb介绍
Mar 19 PHP
PHP三层结构(上) 简单三层结构
Jul 04 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
简单谈谈favicon
Jun 10 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
Aug 03 PHP
Laravel5中Cookie的使用详解
May 03 #PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 #PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 #PHP
php中的异常和错误浅析
May 03 #PHP
利用php-cli和任务计划实现刷新token功能的方法
May 03 #PHP
利用php-cli和任务计划实现订单同步功能的方法
May 03 #PHP
php删除数组指定元素实现代码
May 03 #PHP
You might like
thinkphp的c方法使用示例
2014/02/24 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
php面向对象值单例模式
2016/05/03 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
JavaScript类库D
2010/10/24 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
大学生写自荐信的技巧
2014/01/08 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
导游个人求职信
2014/04/25 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript