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 相关文章推荐
网页游戏开发入门教程三(简单程序应用)
Nov 02 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
Nov 22 PHP
php计算一个文件大小的方法
Mar 30 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
在laravel框架中使用model层的方法
Oct 08 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
python数据化运营的重要意义
2019/11/25 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
求职简历的自我评价
2014/01/31 职场文书
业绩考核岗位职责
2014/02/01 职场文书
司法建议书范文
2014/05/13 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
博士给导师的自荐信
2015/03/06 职场文书
APP界面设计技巧和注意事项
2022/04/29 杂记