PHP 高并发 写入redis 缓存 分配导入Mysql

180it 2021-09-09 PM 1780℃ 0条
<?php
    //连接本地的 Redis 服务
   $redis = new Redis();
   $redis->connect('127.0.0.1', 6379);
   echo "Connection to server successfully";
         //查看服务是否运行
   echo "Server is running: " . $redis->ping();
   
   

try {
    $res = $redis->RPUSH('name', $_REQUEST["name"]);  //插入列表
} catch (Exception $e) {
    echo $e->getMessage();
}

?>



<?php
//==========================
// 该页面左右查询redis记录数
//==========================


//连接本地的 Redis 服务
$redis = new Redis();
 $redis->connect('127.0.0.1', 6379);

//查看服务是否运行
//   echo "Server is running: " . $redis->ping();
if($redis){echo "连接成功".'<br/>';
    
$tj = $redis->LLEN('name');
echo '共:'.$tj.'<br/>';
    
}
else

{
    echo "连接失败".'<br/>';
};
   

?>



<?php
//==========================
// 该页面左右检测redis记录满足阈值则批量导入数据库
//==========================


    //连接本地的 Redis 服务
   $redis = new Redis();
   $redis->connect('127.0.0.1', 6379);

//查看服务是否运行
//   echo "Server is running: " . $redis->ping();
   if($redis){echo "连接成功".'<br/>';}
   else{echo "连接失败".'<br/>';};
   
   
$tj = $redis->LLEN('name');
echo '共:'.$tj.'<br/>';

if ($tj>10) // 满足数量开始导入数据库
{
//===============================
for ($i=1; $i<=10; $i++)
{


    try{
        $value = $redis->LPOP('name');
        if(!$value){
            echo "等待<br/>";
        }else{
            //echo $value;
           //echo explode(",", $value)[0].'<br/>';
           //echo explode(",", $value)[1].'<br/>';
           //echo explode(",", $value)[2].'<br/>';
           //echo explode(",", $value)[3].'<br/>';
          // echo explode("----", $value)[4].'<br/>';
          // echo explode("----", $value)[5].'<br/>';
           //*****************************

  $sql = sprintf("INSERT INTO clicklog (ip,ip2,classid,url,showpage,ua,time) VALUES ");
  $itemStr = '( ';
  $itemStr .= sprintf("%s, %s, %d, %s, %s, %s, %s", "'".explode("----", $value)[0]."'","'".explode("----", $value)[1]."'",(int)explode("----", $value)[2] ,"'".explode("----", $value)[3]."'" ,"'".explode("----", $value)[4]."'" ,"'".explode("----", $value)[5]."'","'".explode("----", $value)[6]."'");
  $itemStr .= '),';
  $sql .= $itemStr;
  
  
   // 去除最后一个逗号,并且加上结束分号
$sql = rtrim($sql, ',');
$sql .= ';';

echo $sql;

$mypdo = new DBPDO;         
$mypdo->exec($sql);

if($mypdo){
    echo "执行成功<br/>";
}else{
    echo "执行失败<br/>".$mypdo;
}

$mypdo=null;


           //*****************************
         
        }
    }catch(Exception $e){
        echo $e->getMessage();
    }


}
//===============================
}

else{
echo '等待...<br/>';
}


?>
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

PHP 高并发 写入redis 缓存 分配导入Mysql