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字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
laravel安装zend opcache加速器教程
Mar 02 PHP
smarty中常用方法实例总结
Aug 07 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
thinkphp分页集成实例
Jul 24 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 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 xml-rpc远程调用
2008/12/19 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php的hash算法介绍
2014/02/13 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
jQuery实现评论模块
2020/08/19 jQuery
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Python实现自动上京东抢手机
2018/02/06 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
王老吉广告词
2014/03/20 职场文书
超市工作总结范文2014
2014/12/19 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
民间借贷被告代理词
2015/05/23 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
MySQL约束超详解
2021/09/04 MySQL
python 单机五子棋对战游戏
2022/04/28 Python