GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

So richten Sie Redis als Cache für MySQL mit PHP unter Ubuntu 20.04 ein

Redis ist ein Open-Source- und In-Memory-Datenstrukturspeicher, der für Caching, Echtzeitanalysen, Suchen und maschinelles Lernen verwendet werden kann. Die Integration von Redis mit PHP und MySQL verbessert die Leistung Ihrer Anwendung, da Redis Daten im RAM speichert.

Sie können es mit Datenbanken wie MySQL oder MariaDB verwenden. Redis bietet einen Mechanismus zum Zwischenspeichern Ihrer Abfragen. Wenn beispielsweise ein Benutzer Ihre Anwendungsseite zum ersten Mal anfordert, wird eine MySQL-Abfrage auf dem Server ausgeführt und Redis speichert diese Abfrage im RAM. Wenn ein anderer Benutzer dieselbe Seite anfordert, müssen Sie die Datenbank nicht erneut abfragen.

Voraussetzungen

  • Ein Ubuntu 20.04 VPS (wir verwenden unseren SSD 2 VPS-Plan)
  • Zugriff auf das Root-Benutzerkonto (oder Zugriff auf ein Administratorkonto mit Root-Rechten)

Schritt 1:Melden Sie sich beim Server an und aktualisieren Sie die Server-OS-Pakete

Melden Sie sich zunächst über SSH als Root-Benutzer bei Ihrem Ubuntu 20.04-Server an:

ssh root@IP_Address -p Port_number

Sie müssen „IP_Address“ und „Port_number“ durch die jeweilige IP-Adresse und SSH-Portnummer Ihres Servers ersetzen. Ersetzen Sie außerdem „root“ gegebenenfalls durch den Benutzernamen des Administratorkontos.

Bevor Sie beginnen, müssen Sie sicherstellen, dass alle auf dem Server installierten Ubuntu-Betriebssystempakete auf dem neuesten Stand sind. Sie können dies tun, indem Sie die folgenden Befehle ausführen:

apt-get update -y
apt-get upgrade -y

Schritt 2:LAMP-Server installieren

Zuerst müssen Sie den LAMP-Server in Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:

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

Sobald die Installation abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.

Schritt 3:Redis installieren und konfigurieren

Standardmäßig ist die neueste Version von Redis nicht im Ubuntu-Standard-Repository enthalten. Sie müssen also das Redis-Repository zu Ihrem System hinzufügen.

Installieren Sie zuerst die erforderlichen Pakete mit dem folgenden Befehl:

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

Fügen Sie als Nächstes das Redis-Repository mit dem folgenden Befehl hinzu:

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

Nachdem das Repository hinzugefügt wurde, installieren Sie den Redis-Server mit dem folgenden Befehl:

apt-get install redis-server -y

Als nächstes installieren Sie die Redis-Erweiterungen von PHP und MySQL mit dem folgenden Befehl:

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

Sobald beide Pakete installiert sind, starten Sie den Redis-Dienst und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:

systemctl start redis-server
systemctl enable redis-server

Starten Sie als Nächstes den Apache-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart apache2

Schritt 4:Erstellen Sie eine MySQL-Datenbank

Als nächstes müssen Sie eine Datenbank, einen Benutzer und eine Tabelle erstellen, um das Redis-Caching zu testen.

Stellen Sie zunächst mit dem folgenden Befehl eine Verbindung zu MySQL her:

mysql

Erstellen Sie als Nächstes eine Datenbank und einen Benutzer mit dem folgenden Befehl:

mysql> CREATE DATABASE testdb;
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Als nächstes erteilen Sie der testdb-Datenbank alle Berechtigungen mit dem folgenden Befehl:

mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';

Löschen Sie als Nächstes die Berechtigungen mit dem folgenden Befehl:

mysql> FLUSH PRIVILEGES;

Ändern Sie als Nächstes die Datenbank in testdb und erstellen Sie mit dem folgenden Befehl eine Tabelle namens student:

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

Als nächstes fügen Sie mit dem folgenden Befehl einige Daten in die Tabelle ein:

mysql> INSERT INTO student (first_name, last_name) VALUES ('John', 'Thompson');
mysql> INSERT INTO student (first_name, last_name) VALUES ('Greg', 'Smith');
mysql> INSERT INTO student (first_name, last_name) VALUES ('Ray', 'Brown');

Sie können nun alle Daten mit folgendem Befehl überprüfen:

mysql> SELECT student_id, first_name, last_name from student;

Sie sollten die folgende Ausgabe erhalten:

+------------+------------+-----------+
| student_id | first_name | last_name |
+------------+------------+-----------+
|          1 | John     | Thompson    |
|          2 | Greg    | Smith      |
|          3 | Ray     | Brown    |
+------------+------------+-----------+
3 rows in set (0.00 sec)

Verlassen Sie nun MySQL mit dem folgenden Befehl:

mysql> EXIT;

Schritt 5:Erstellen Sie eine PHP-Anwendung zum Abrufen von Daten aus MySQL

Als Nächstes müssen Sie eine PHP-Anwendung erstellen und auf einem Apache-Webserver hosten. Diese Anwendung verbindet sich mit der MySQL-Datenbank und fragt die Schülertabelle ab, die wir zuvor erstellt haben.

Erstellen Sie zunächst eine PHP-Anwendung im Apache-Web-Root-Verzeichnis:

nano /var/www/html/student.php

Fügen Sie die folgenden Codes hinzu:

<html>
  <head>
    <title>Using Redis Server with PHP and MySQL</title>
  </head> 
  <body>

    <h1 align = 'center'>Students' Register</h1>

    <table align = 'center' border = '2'>        

    <?php 
        try {

            $data_source = '';

            $redis = new Redis(); 
            $redis->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 = "Data from Redis Server";
                $data = unserialize($redis->get($cache_key));

            } else {

                $data_source = 'Data from MySQL Database';

                $db_name     = 'testdb';
                $db_user     = 'testuser';
                $db_password = 'password';
                $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();
                $data = []; 

                while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {          
                   $data[] = $row;  
                }  

                $redis->set($cache_key, serialize($data)); 
                $redis->expire($cache_key, 10);        
           }

           echo "<tr><td colspan = '3' align = 'center'><h2>$data_source</h2></td></tr>";
           echo "<tr><th>Student Id</th><th>First Name</th><th>Last Name</th></tr>";

           foreach ($data as $record) {
              echo '<tr>';
              echo '<td>' . $record['student_id'] . '</td>';
              echo '<td>' . $record['first_name'] . '</td>';
              echo '<td>' . $record['last_name']  . '</td>';                     
              echo '</tr>'; 
           }              


        } catch (PDOException $e) {
            echo 'Database error. ' . $e->getMessage();
        }
   ?>

    </table>
  </body>
</html>

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Die obige Anwendung stellt eine Verbindung zur MySQL-Datenbank her und speichert die Daten in Redis.

Schritt 6:Redis-Caching testen

Als nächstes müssen Sie testen, ob das Redis-Caching funktioniert oder nicht. Öffnen Sie Ihren Webbrowser und greifen Sie über die URL auf Ihre Anwendung zu

http://your-server-ip/student.php . Wenn Sie zum ersten Mal auf die Anwendung zugreifen, sollte sie aus der MySQL-Datenbank abrufen. Wenn Sie erneut auf die Anwendung zugreifen, sollte sie schneller geöffnet werden, da Sie Daten aus dem Redis-Cache abrufen.

Natürlich müssen Sie Setup Redis mit MySQL nicht installieren, wenn Sie eines unserer Managed Redis Hostings verwenden. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, dies für Sie zu installieren und zu konfigurieren. Sie sind 24×7 erreichbar und kümmern sich umgehend um Ihr Anliegen.

PS . Wenn Ihnen dieser Beitrag zu Einrichten von Redis als Cache für MySQL mit PHP unter Ubuntu 20.04 gefallen hat , bitte teilen Sie es mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.


Panels
  1. So installieren Sie Phorum mit Nginx auf Ubuntu 18.04 LTS

  2. So richten Sie WireGuard VPN unter Ubuntu 20.04 ein

  3. So installieren Sie Lighttpd mit PHP5 und MySQL unter Ubuntu 11.04

  4. So richten Sie eine Firewall mit UFW in Ubuntu \ Debian ein

  5. So richten Sie Apache mit HTTP/2 unter Ubuntu 16.04 ein

So installieren Sie Drupal 8 mit Apache, MySQL und SSL unter Ubuntu 15.10

So installieren Sie Nginx mit PHP und MySQL (LEMP Stack) unter Ubuntu 18.04

So richten Sie den RabbitMQ-Cluster unter Ubuntu 20.04 ein

So installieren Sie LAMP unter Ubuntu 15.04

So installieren Sie den Stapel Apache, MySQL, PHP (LAMP) unter Ubuntu 16.04

So richten Sie Tomcat mit Nginx als Reverse Proxy unter Ubuntu 18.04 ein