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 相关文章推荐
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
php 格式化数字的时候注意数字的范围
Apr 13 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
php实现可逆加密的方法
Aug 11 PHP
php实现表单多按钮提交action的处理方法
Oct 24 PHP
Yii实现显示静态页的方法
Apr 25 PHP
Yii 2.0自带的验证码使用经验分享
Jun 19 PHP
PHP 模拟登陆功能实例详解
Sep 10 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
php微信支付接口开发程序
2016/08/02 PHP
2010年最佳jQuery插件整理
2010/12/06 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
vue树形结构获取键值的方法示例
2018/06/21 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
python 提取文件的小程序
2009/07/29 Python
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python字典遍历操作实例小结
2019/03/05 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
群众路线教育党课主持词
2014/04/01 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
校长一岗双责责任书
2015/05/09 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
Golang入门之计时器
2022/05/04 Golang