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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
PHP 日志缩略名的创建函数代码
May 26 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
PHP Error与Logging函数的深入理解
Jun 03 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
php如何比较两个浮点数是否相等详解
Feb 12 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 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 过滤危险html代码
2009/06/29 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
js点击选择文本的方法
2015/02/09 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Django卸载之后重新安装的方法
2017/03/15 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
pycharm安装和首次使用教程
2018/08/27 Python
python hook监听事件详解
2018/10/25 Python
python 中如何获取列表的索引
2019/07/02 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Python urllib3软件包的使用说明
2020/11/18 Python
Python解析微信dat文件的方法
2020/11/30 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
库房保管员岗位职责
2014/04/07 职场文书
创业女性典型材料
2014/05/02 职场文书
开学典礼策划方案
2014/05/28 职场文书
初中学校对照检查材料
2014/08/19 职场文书
百家讲坛观后感
2015/06/12 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
python字符串的多行输出的实例详解
2021/06/08 Python
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android