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实现MySQL更新记录的代码
Jun 07 PHP
认识并使用PHP超级全局变量
Jan 26 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
怎样搭建PHP开发环境
Jul 28 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
PHP简单获取多个checkbox值的方法
Jun 13 PHP
Laravel5权限管理方法详解
Jul 26 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
php解决安全问题的方法实例
Sep 19 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 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
PHP 学习路线与时间表
2010/02/21 PHP
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
Python json模块使用实例
2015/04/11 Python
python模拟事件触发机制详解
2018/01/19 Python
Python编程argparse入门浅析
2018/02/07 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
中层干部岗位职责
2013/12/18 职场文书
保密协议书范本
2014/04/22 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
检讨书范文300字
2015/01/28 职场文书
辛亥革命观后感
2015/06/02 职场文书
美丽的大脚观后感
2015/06/03 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL
SQL中的连接查询详解
2022/06/21 SQL Server