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&&mysql)四
Oct 09 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
php array_values 返回数组的值实例详解
Nov 17 PHP
php+ajax简单实现全选删除的方法
Dec 06 PHP
phpcms的分类名称和类别名称的调用
Jan 05 PHP
PHP解决中文乱码
Apr 28 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 PHP
Yii 框架入口脚本示例分析
May 19 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相当简单的分页类
2008/10/02 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
javascript时间差插件分享
2016/07/18 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python3编写C/S网络程序实例教程
2014/08/25 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
新闻工作者先进事迹
2014/05/26 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
门市房租房协议书
2014/12/04 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
python中的装饰器该如何使用
2021/06/18 Python
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
MySQL中连接查询和子查询的问题
2021/09/04 MySQL