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 disk_free_space 返回目录可用空间
May 10 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
第五章 php数组操作
Dec 30 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
关于初学PHP时的知识积累总结
Jun 07 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
php 可变函数使用小结
Jun 12 PHP
PHP7引入的"??"和"?:"的区别讲解
Apr 08 PHP
PHP7 windows支持
Mar 09 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
表单提交验证类
2006/07/14 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Python urlopen 使用小示例
2008/09/06 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
解决django FileFIELD的编码问题
2020/03/30 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
介绍一下Make? 为什么使用make
2016/07/31 面试题
采购员岗位职责
2015/02/03 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
2015年度保密工作总结
2015/04/24 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书