Maison >développement back-end >tutoriel php >Explication détaillée de la façon dont PHP publie Weibo sur la base de la file d'attente de messages Redis
Cet article présente principalement la méthode de publication de Weibo en PHP basée sur la file d'attente de messages Redis. Il analyse l'installation, la connexion, la lecture, l'insertion et d'autres compétences opérationnelles associées de la base de données PHP+redis sous forme d'exemples. besoin peut se référer à ce qui suit
phpRedisAdmin:adresse github Interface de gestion graphique
git clone [url]https://github.com/ErikDubbelboer/phpRedisAdmin.git[/url] cd phpRedisAdmin git clone [url]https://github.com/nrk/predis.git[/url] vendor
Installez d'abord le Redis mentionné ci-dessus interface de gestion graphique, qui peut être pratique Gestion des données Redis
Afin de réduire le nombre de concurrence Mysql, stockez d'abord le Weibo de l'utilisateur dans Redis
Supposons que l'utilisateur ait besoin de trois champs lors de la publication, uid (numéro d'identification de l'utilisateur), nom d'utilisateur (nom d'utilisateur), contenu (« commentaire de l'utilisateur »)
Par exemple, l'utilisateur transmet les informations suivantes
//此处需要安装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); ?>
Ici, vous pouvez voir que notre redis a déjà des données
//创建一个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); ?>
Nous pouvons voir que la base de données contient déjà des données
Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il vous sera utile.
Recommandations associées :
PHPFonction date et heure fonction date() explication détaillée_php bases
Résumé des problèmes liés au calcul du temps PHP_compétences PHP
php stream_get_meta_data return value_php basics
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!