Comment php+redis+mysq gère-t-il la concurrence élevée (exemple de code)

不言
Libérer: 2023-04-03 16:26:01
original
1983 Les gens l'ont consulté

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
Copier après la connexion

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();
}
Copier après la connexion

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);
}
Copier après la connexion

3. . Exécutez le fichier de script redis.php

nohup php redis.php &
Copier après la connexion

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 :

Quelles sont les opérations des fonctions de tableau PHP ? Application de la fonction de tableau php (avec code)

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!