GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Come configurare Redis come cache per MySQL con PHP su Ubuntu 20.04

Redis è un archivio di strutture dati open source e in memoria che può essere utilizzato per la memorizzazione nella cache, l'analisi in tempo reale, la ricerca e l'apprendimento automatico. L'integrazione di Redis con PHP e MySQL migliorerà le prestazioni delle tue applicazioni perché Redis archivia i dati nella RAM.

Puoi usarlo con database come MySQL o MariaDB. Redis fornisce un meccanismo per memorizzare nella cache le tue query. Ad esempio, quando un utente richiede la pagina dell'applicazione per la prima volta, viene eseguita una query MySQL sul server e Redis memorizza questa query nella cache della RAM. Quando un altro utente richiede la stessa pagina, non è necessario interrogare nuovamente il database.

Prerequisiti

  • Un Ubuntu 20.04 VPS (useremo il nostro piano SSD 2 VPS)
  • Accesso all'account utente root (o accesso a un account amministratore con privilegi root)

Passaggio 1:accedi al server e aggiorna i pacchetti del sistema operativo del server

Innanzitutto, accedi al tuo server Ubuntu 20.04 tramite SSH come utente root:

ssh root@IP_Address -p Port_number

Dovrai sostituire "IP_Address" e "Port_number" con il rispettivo indirizzo IP e numero di porta SSH del tuo server. Inoltre, se necessario, sostituisci "root" con il nome utente dell'account amministratore.

Prima di iniziare, devi assicurarti che tutti i pacchetti del sistema operativo Ubuntu installati sul server siano aggiornati. Puoi farlo eseguendo i seguenti comandi:

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

Passaggio 2:installa il server LAMP

Innanzitutto, dovrai installare il server LAMP nel tuo sistema. Puoi installarlo con il seguente comando:

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

Una volta terminata l'installazione, puoi procedere al passaggio successivo.

Fase 3:installa e configura Redis

Per impostazione predefinita, l'ultima versione di Redis non è inclusa nel repository predefinito di Ubuntu. Quindi dovrai aggiungere il repository Redis al tuo sistema.

Innanzitutto, installa i pacchetti richiesti con il seguente comando:

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

Quindi, aggiungi il repository Redis con il seguente comando:

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

Una volta aggiunto il repository, installa il server Redis con il seguente comando:

apt-get install redis-server -y

Quindi, installa le estensioni Redis di PHP e MySQL con il seguente comando:

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

Una volta installati entrambi i pacchetti, avvia il servizio Redis e abilitalo all'avvio al riavvio del sistema:

systemctl start redis-server
systemctl enable redis-server

Quindi, riavvia il servizio Apache per applicare le modifiche alla configurazione:

systemctl restart apache2

Fase 4:crea un database MySQL

Successivamente, dovrai creare un database, un utente e una tabella per testare la memorizzazione nella cache di Redis.

Innanzitutto, connettiti a MySQL con il seguente comando:

mysql

Quindi, crea un database e un utente con il seguente comando:

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

Quindi, concedi tutti i privilegi al database testdb con il seguente comando:

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

Quindi, svuota i privilegi con il seguente comando:

mysql> FLUSH PRIVILEGES;

Quindi, cambia il database in testdb e crea una tabella denominata student con il seguente comando:

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

Successivamente, inserisci alcuni dati nella tabella con il seguente comando:

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');

Ora puoi verificare tutti i dati con il seguente comando:

mysql> SELECT student_id, first_name, last_name from student;

Dovresti ottenere il seguente output:

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

Ora esci da MySQL con il seguente comando:

mysql> EXIT;

Passaggio 5:crea un'applicazione PHP per recuperare i dati da MySQL

Successivamente, dovrai creare un'applicazione PHP e ospitarla con un server web Apache. Questa applicazione si collegherà al database MySQL e interrogherà la tabella studenti che abbiamo creato in precedenza.

Innanzitutto, crea un'applicazione PHP nella directory principale Web di Apache:

nano /var/www/html/student.php

Aggiungi i seguenti codici:

<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>

Salva e chiudi il file quando hai finito.

L'applicazione sopra si collegherà al database MySQL e memorizzerà i dati in Redis.

Passaggio 6:prova Redis Caching

Successivamente, dovrai verificare se la cache Redis funziona o meno. Apri il tuo browser web e accedi alla tua applicazione utilizzando l'URL

http://your-server-ip/student.php . Quando accedi all'applicazione per la prima volta, dovrebbe essere scaricata dal database MySQL. Quando accedi di nuovo all'applicazione, dovrebbe aprirsi più velocemente perché otterrai dati dalla cache Redis.

Naturalmente, non è necessario installare il setup Redis con MySQL se si utilizza uno dei nostri Managed Redis Hosting, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di installarlo e configurarlo per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.

PS . Se ti è piaciuto questo post su Come impostare Redis come cache per MySQL con PHP su Ubuntu 20.04 , condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o lascia semplicemente una risposta qui sotto. Grazie.


Panels
  1. Come installare Phorum con Nginx su Ubuntu 18.04 LTS

  2. Come installare Lighttpd con PHP5 e MySQL su Ubuntu 11.04

  3. Come installare e configurare mysql 8 su Ubuntu 20.04

  4. Come configurare Opencart con LAMP (PHP, Apache, Mariadb) su Ubuntu 20.04

  5. Come configurare un firewall con UFW in Ubuntu \ Debian

Come installare Drupal 8 con Apache, MySQL e SSL su Ubuntu 15.10

Come installare Nginx con PHP e MySQL (stack LEMP) su Ubuntu 18.04

Come configurare il cluster RabbitMQ su Ubuntu 20.04

Come installare LAMP su Ubuntu 15.04

Come installare lo stack Apache, MySQL, PHP (LAMP) su Ubuntu 16.04

Come configurare Tomcat con Nginx come proxy inverso su Ubuntu 18.04