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学习 计数器实例代码
Jun 15 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
浅谈php的TS和NTS的区别
Mar 13 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/11/18 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
2013/09/25 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
使用python 获取进程pid号的方法
2014/03/10 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
J2EE面试题大全
2016/08/06 面试题
审计专业自荐信范文
2014/04/21 职场文书
小学生植树节活动总结
2014/07/04 职场文书
义卖募捐活动总结
2015/05/09 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
学术会议开幕词
2016/03/03 职场文书
Python 文字识别
2022/05/11 Python