Le contenu de cet article explique comment php+redis+mysq gère la concurrence élevée (exemple de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
1. Environnement expérimental
ubuntu, php, apache ou nginx, mysql
2 Exigences
Il existe désormais une interface qui peut. apparaît Lorsque le niveau de concurrence est relativement important, cette interface est écrite en PHP. Sa fonction est de recevoir le champ de nom dans la requête GET de l'utilisateur, puis de stocker ce champ dans mysql. Maintenant, placez d'abord les données dans la file d'attente redis. puis laissez Redis transférer régulièrement ces données vers MySQL.
2. Étapes de mise en œuvre
1. Créez un nouveau test de base de données et un nouveau test de table de données. Les instructions de création de table sont les suivantes
CREATE TABLE `test` ( `name` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf-8
1. dans /var/www/test index.php, le contenu est le suivant, et configurez l'hôte virtuel pour le rendre accessible.
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); try { $res = $redis->LPUSH('name', $_REQUEST["name"]); } catch (Exception $e) { echo $e->getMessage(); }
2. Créez un nouveau fichier redis.php dans le même répertoire, et veillez à modifier le mot de passe de la base de données et les autres configurations. Le contenu est le suivant
<?php $redis = new Redis(); $redis->pconnect('127.0.0.1',6379); $mysql=mysqli_connect("localhost","root","bnm"); mysqli_select_db($mysql,"test") or die("不能选择数据库"); if(!$mysql){ die("连接失败"); } while (true){ try{ $value = $redis->LPOP('name'); if(!$value){ echo "等待"; }else{ $sql="insert into test(name) values ('".$value."')"; $result=mysqli_query($mysql,$sql); if($result&&mysqli_affected_rows($mysql)>0){ echo "插入成功"; }else{ echo "插入失败:".mysqli_error($mysql); } } }catch(Exception $e){ echo $e->getMessage(); } sleep(1); }
3. . Exécutez le fichier de script redis.php
nohup php redis.php &
4. Visitez le fichier de script index.php, tel que : http://192.168.116.128/?name=33, puis vérifiez si les données ont été entré dans MySQL.
Articles connexes recommandés :
framework thinkphp5 et Android implémentent le code de génération de code QR
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!