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.