• 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);
     
     
     
    ?>

    我们能看到数据库已经有数据了

  • 相关阅读:
    微信第三方平台开发之代小程序实现业务
    解决Chrome网页编码显示乱码的问题
    .Net Core 使用 System.Drawing.Common 在CentOS下报错
    CentOS安装nmap端口查看工具
    解决Nginx反向代理不会自动对特殊字符进行编码的问题 如gitblit中的~波浪线
    Centos7最小安装化后安装图形界面
    手把手教您在 Windows Server 2019 上使用 Docker
    windows10下安装docker报错:error during connect
    git删除远程分支
    linux下shell显示git当前分支
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5529117.html
Copyright © 2020-2023  润新知