php语言

用PHP基于Redis消息队列实现发布微博的方法

时间:2023-03-02 17:52:29 php语言 我要投稿
  • 相关推荐

用PHP基于Redis消息队列实现发布微博的方法

  PHP基于Redis消息队列实现发布微博的方法,结合实例形式分析了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数据

  为了降低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);

  ?>

  此处可以看到我们的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实现多线程的方法03-29

php页面缓存实现方法11-27

PHP实现获取域名的方法小结06-08

php银联网页支付实现方法11-17

PHP基于CURL进行POST数据上传的方法03-30

PHP中读取大文件实现方法详解11-30

PHP中使用cURL实现Get和Post请求的方法12-03

PHP 数组和字符串互相转换实现方法12-02

PHP中实现页面跳转12-06

PHP页面跳转实现技巧12-06