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的面向对象编程
Oct 09 PHP
PHP循环获取GET和POST值的代码
Apr 09 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
php中explode与split的区别介绍
Oct 03 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
php格式文件打开的四种方法
Feb 24 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 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将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
PHP中session变量的销毁
2014/02/27 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
原生JS实现天气预报
2020/06/16 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
c++生成dll使用python调用dll的方法
2014/01/20 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
python PyTorch预训练示例
2018/02/11 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Python3.5运算符操作实例详解
2019/04/25 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
商务助理岗位职责
2013/11/13 职场文书
社区服务活动总结
2014/05/07 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
生产实习心得体会范文
2016/01/22 职场文书
SQL基础的查询语句
2021/11/11 MySQL
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL