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

Explication détaillée de la façon dont PHP publie Weibo sur la base de la file d'attente de messages Redis

墨辰丷
墨辰丷original
2018-05-23 10:57:591627parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn