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 相关文章推荐
推荐文章系统(一)
Oct 09 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
php使用json_encode对变量json编码
Apr 07 PHP
php除数取整示例
Apr 24 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
php模拟post提交数据的方法
Feb 12 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 PHP
PHP实现简单的计算器
Aug 28 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生成条形图的方法
2014/12/10 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
python中__call__方法示例分析
2014/10/11 Python
详解Python用户登录接口的方法
2019/04/17 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
pandas分组聚合详解
2020/04/10 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
2020/07/03 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
读书活动总结
2014/04/28 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
简易离婚协议书范本
2014/10/24 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫
python双向链表实例详解
2022/05/25 Python