GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Comment configurer Redis comme cache pour MySQL avec PHP sur Ubuntu 20.04

Redis est un magasin de structure de données open source et en mémoire qui peut être utilisé pour la mise en cache, l'analyse en temps réel, la recherche et l'apprentissage automatique. L'intégration de Redis à PHP et MySQL améliorera les performances de votre application car Redis stocke les données dans la RAM.

Vous pouvez l'utiliser avec des bases de données comme MySQL ou MariaDB. Redis fournit un mécanisme pour mettre en cache vos requêtes. Par exemple, lorsqu'un utilisateur demande votre page d'application pour la première fois, une requête MySQL est effectuée sur le serveur et Redis met cette requête en cache dans la RAM. Lorsqu'un autre utilisateur demande la même page, vous n'avez pas besoin d'interroger à nouveau la base de données.

Prérequis

  • Un VPS Ubuntu 20.04 (nous utiliserons notre plan SSD 2 VPS)
  • Accès au compte utilisateur root (ou accès à un compte administrateur avec privilèges root)

Étape 1 :Connectez-vous au serveur et mettez à jour les packages du système d'exploitation du serveur

Tout d'abord, connectez-vous à votre serveur Ubuntu 20.04 via SSH en tant qu'utilisateur root :

ssh root@IP_Address -p Port_number

Vous devrez remplacer "IP_Address" et "Port_number" par l'adresse IP et le numéro de port SSH respectifs de votre serveur. De plus, remplacez "root" par le nom d'utilisateur du compte administrateur si nécessaire.

Avant de commencer, vous devez vous assurer que tous les packages du système d'exploitation Ubuntu installés sur le serveur sont à jour. Vous pouvez le faire en exécutant les commandes suivantes :

apt-get update -yapt-get upgrade -y

Étape 2 :Installer le serveur LAMP

Tout d'abord, vous devrez installer le serveur LAMP sur votre système. Vous pouvez l'installer avec la commande suivante :

apt-get install apache2 php libapache2-mod-php php-pdo php-json php-cli mysql-server -y

Une fois l'installation terminée, vous pouvez passer à l'étape suivante.

Étape 3 :Installer et configurer Redis

Par défaut, la dernière version de Redis n'est pas incluse dans le référentiel par défaut d'Ubuntu. Vous devrez donc ajouter le référentiel Redis à votre système.

Tout d'abord, installez les packages requis avec la commande suivante :

apt-get install software-properties-common gnupg2 -y

Ensuite, ajoutez le référentiel Redis avec la commande suivante :

add-apt-repository ppa:chris-lea/redis-server

Une fois le dépôt ajouté, installez le serveur Redis avec la commande suivante :

apt-get install redis-server -y

Ensuite, installez les extensions Redis de PHP et MySQL avec la commande suivante :

apt-get install php-redis php-mysql -y

Une fois les deux packages installés, démarrez le service Redis et activez-le pour qu'il démarre au redémarrage du système :

systemctl start redis-serversystemctl enable redis-server

Ensuite, redémarrez le service Apache pour appliquer les modifications de configuration :

systemctl redémarre apache2

Étape 4 :Créer une base de données MySQL

Ensuite, vous devrez créer une base de données, un utilisateur et une table pour tester la mise en cache Redis.

Tout d'abord, connectez-vous à MySQL avec la commande suivante :

mysql

Ensuite, créez une base de données et un utilisateur avec la commande suivante :

mysql> CRÉER UNE BASE DE DONNÉES testdb; mysql> CRÉER UN UTILISATEUR 'testuser'@'localhost' IDENTIFIÉ AVEC mysql_native_password PAR 'password';

Ensuite, accordez tous les privilèges à la base de données testdb avec la commande suivante :

mysql> ACCORDER TOUS LES PRIVILÈGES SUR testdb.* À 'testuser'@'localhost' ;

Ensuite, videz les privilèges avec la commande suivante :

mysql> PRIVILÈGES FLUSH ;

Ensuite, changez la base de données en testdb et créez une table nommée student avec la commande suivante :

mysql> use testdb;mysql> CREATE TABLE student ( student_id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50) );

Ensuite, insérez des données dans le tableau avec la commande suivante :

mysql> INSERT INTO étudiant (prénom, nom) VALUES ('John', 'Thompson');mysql> INSERT INTO étudiant (prénom, nom) VALUES ('Greg', 'Smith');mysql> INSERT INTO étudiant (first_name, last_name) VALUES ('Ray', 'Brown');

Vous pouvez maintenant vérifier toutes les données avec la commande suivante :

mysql> SELECT student_id, first_name, last_name from student ;

Vous devriez obtenir le résultat suivant :

+------------+------------+-----------+| étudiant_id | prénom | nom_famille |+------------+------------+-----------+| 1 | Jean | Thompson || 2 | Grég | Forgeron || 3 | rayon | Marron |+------------+------------+-----------+3 rangs en série (0.00 sec) 

Maintenant, quittez MySQL avec la commande suivante :

mysql> QUITTER ;

Étape 5 :Créer une application PHP pour récupérer des données depuis MySQL

Ensuite, vous devrez créer une application PHP et l'héberger avec un serveur Web Apache. Cette application se connectera à la base de données MySQL et interrogera la table des étudiants que nous avons créée précédemment.

Commencez par créer une application PHP dans le répertoire racine Web d'Apache :

nano /var/www/html/student.php

Ajoutez les codes suivants :

  Utiliser Redis Server avec PHP et MySQL   

Registre des étudiants

connect('127.0.0.1', 6379); $sql ='select student_id, first_name, last_name from student '; $cache_key =md5($sql); if ($redis->exists($cache_key)) { $data_source ="Données du serveur Redis" ; $data =unserialize($redis->get($cache_key)); } else { $data_source ='Données de la base de données MySQL' ; $db_name ='testdb'; $db_user ='testuser' ; $db_password ='mot de passe' ; $db_host ='localhost'; $pdo =new PDO('mysql:host=' . $db_host . '; dbname=' . $db_name, $db_user, $db_password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt =$pdo->prepare($sql); $stmt->execute(); $données =[] ; tandis que ($row =$stmt->fetch(PDO::FETCH_ASSOC)) { $data[] =$row; } $redis->set($cache_key, serialize($data)); $redis->expire($cache_key, 10); } echo "" ; echo "" ; foreach ($data as $record) { echo ''; echo '' ; echo '' ; echo '' ; echo ''; } } catch (PDOException $e) { echo 'Erreur de base de données. ' . $e->getMessage(); } ?>

$data_source

Identifiant de l'étudiantPrénomNom
' . $record['student_id'] . '' . $enregistrement['first_name'] . '' . $enregistrement['nom_de_famille'] . '

Enregistrez et fermez le fichier lorsque vous avez terminé.

L'application ci-dessus se connectera à la base de données MySQL et mettra les données en cache dans Redis.

Étape 6 :Tester la mise en cache Redis

Ensuite, vous devrez tester si la mise en cache Redis fonctionne ou non. Ouvrez votre navigateur Web et accédez à votre application à l'aide de l'URL

http://your-server-ip/student.php . Lorsque vous accédez à l'application pour la première fois, elle doit être extraite de la base de données MySQL. Lorsque vous accédez à nouveau à l'application, elle devrait s'ouvrir plus rapidement car vous obtiendrez des données du cache Redis.

Bien sûr, vous n'avez pas besoin d'installer la configuration de Redis avec MySQL si vous utilisez l'un de nos hébergements Redis gérés, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de l'installer et de le configurer pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.

PS . Si vous avez aimé cet article sur Comment configurer Redis comme cache pour MySQL avec PHP sur Ubuntu 20.04 , partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.


Panels
  1. Comment installer Phorum avec Nginx sur Ubuntu 18.04 LTS

  2. Comment configurer WireGuard VPN sur Ubuntu 20.04

  3. Comment installer Lighttpd avec PHP5 et MySQL sur Ubuntu 11.04

  4. Comment configurer Opencart avec LAMP (PHP, Apache, Mariadb) sur Ubuntu 20.04

  5. Comment configurer un pare-feu avec UFW dans Ubuntu \ Debian

Comment installer Drupal 8 avec Apache, MySQL et SSL sur Ubuntu 15.10

Comment installer Nginx avec PHP et MySQL (pile LEMP) sur Ubuntu 18.04

Comment configurer le cluster RabbitMQ sur Ubuntu 20.04

Comment installer LAMP sur Ubuntu 15.04

Comment installer la pile Apache, MySQL, PHP (LAMP) sur Ubuntu 16.04

Comment configurer Tomcat avec Nginx en tant que proxy inverse sur Ubuntu 18.04