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 13 PHP
php 抽象类的简单应用
Sep 06 PHP
php数组去重的函数代码
Feb 03 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
Yii中使用PHPExcel导出Excel的方法
Dec 26 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
PHP中的一些常用函数收集
May 26 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
php+laravel依赖注入知识点总结
Nov 04 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 addslashes 函数详细分析说明
2009/06/23 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
Javascript & DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
ktv收银员岗位职责
2013/12/16 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
机关保密承诺书
2014/06/03 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Python数据分析之pandas读取数据
2021/06/02 Python