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实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
理解PHP中的stdClass类
Apr 18 PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
php实现的xml操作类
Jan 15 PHP
smarty循环嵌套用法示例分析
Jul 19 PHP
Thinkphp实现站点静态化的方法详解
Mar 21 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
js中有关IE版本检测
2012/01/04 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
学生励志演讲稿
2014/01/06 职场文书
2014年元旦活动方案
2014/02/15 职场文书
二年级学生评语大全
2014/04/23 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
大学生党课心得体会
2016/01/07 职场文书
总结Python常用的魔法方法
2021/05/25 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python