• PHP下使用Redis消息队列发布微博(复制)


      phpRedisAdmin :github地址  图形化管理界面

    git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
    cd phpRedisAdmin
    git clone https://github.com/nrk/predis.git vendor

    首先安装上述的Redis图形化管理界面,能够方便的管理Redis数据

    为了降低Mysql的并发数,先把用户的微博存在Redis中

    假设用户发布的时候需要三个字段,uid(用户ID号),username(用户姓名),content('用户的评论')

    比如用户传递以下信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    //此处需要安装phpredis
    $redis new Redis();
    $redis->connect('127.0.0.1', 6379);
            //    连接redis
    $web_infoarray(
    '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已经有数据了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    //创建一个PDO数据库链接  data.php
    <?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();
    }
     
                 
        }
      
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    //处理redis数据库的数据 并把数据放到MYSQL数据库中
    <?php
    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);
     
     
     
    ?>

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

  • 相关阅读:
    吴恩达读书笔记【5】-流水线与端到端
    标准与扩展ACL 、 命名ACL
    VLAN间通讯 、 动态路由RIP
    HSRP热备份路由协议 、 STP生成树协议
    VLAN广播域划分
    应用层
    包格式及IP地址 、 网络层协议及设备
    传输层 、 应用层
    数据链路层解析 、 交换机基本配置
    网络基础3
  • 原文地址:https://www.cnblogs.com/agang-php/p/5358186.html
Copyright © 2020-2023  润新知