GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo configurar Redis como caché para MySQL con PHP en Ubuntu 20.04

Redis es un almacén de estructura de datos de código abierto y en memoria que se puede usar para almacenamiento en caché, análisis en tiempo real, búsqueda y aprendizaje automático. Integrar Redis con PHP y MySQL mejorará el rendimiento de su aplicación porque Redis almacena datos en RAM.

Puedes usarlo con bases de datos como MySQL o MariaDB. Redis proporciona un mecanismo para almacenar en caché sus consultas. Por ejemplo, cuando un usuario solicita la página de su aplicación por primera vez, se realiza una consulta de MySQL en el servidor y Redis almacena esta consulta en la RAM. Cuando otro usuario solicita la misma página, no necesita volver a consultar la base de datos.

Requisitos

  • Un Ubuntu 20.04 VPS (usaremos nuestro plan SSD 2 VPS)
  • Acceso a la cuenta de usuario root (o acceso a una cuenta de administrador con privilegios de root)

Paso 1:Inicie sesión en el servidor y actualice los paquetes del sistema operativo del servidor

Primero, inicie sesión en su servidor Ubuntu 20.04 a través de SSH como usuario raíz:

ssh root@IP_Address -p Port_number

Deberá reemplazar 'IP_Address' y 'Port_number' con la dirección IP y el número de puerto SSH respectivos de su servidor. Además, reemplace "root" con el nombre de usuario de la cuenta de administrador si es necesario.

Antes de comenzar, debe asegurarse de que todos los paquetes del sistema operativo Ubuntu instalados en el servidor estén actualizados. Puede hacerlo ejecutando los siguientes comandos:

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

Paso 2:Instalar el servidor LAMP

Primero, deberá instalar el servidor LAMP en su sistema. Puede instalarlo con el siguiente comando:

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

Una vez finalizada la instalación, puede continuar con el siguiente paso.

Paso 3:instalar y configurar Redis

De forma predeterminada, la última versión de Redis no está incluida en el repositorio predeterminado de Ubuntu. Por lo tanto, deberá agregar el repositorio de Redis a su sistema.

Primero, instale los paquetes requeridos con el siguiente comando:

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

A continuación, agregue el repositorio de Redis con el siguiente comando:

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

Una vez agregado el repositorio, instale el servidor Redis con el siguiente comando:

apt-get install redis-server -y

A continuación, instale las extensiones Redis de PHP y MySQL con el siguiente comando:

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

Una vez que ambos paquetes estén instalados, inicie el servicio Redis y habilítelo para que se inicie al reiniciar el sistema:

systemctl start redis-server
systemctl enable redis-server

A continuación, reinicie el servicio Apache para aplicar los cambios de configuración:

systemctl restart apache2

Paso 4:Crear una base de datos MySQL

A continuación, deberá crear una base de datos, un usuario y una tabla para probar el almacenamiento en caché de Redis.

Primero, conéctese a MySQL con el siguiente comando:

mysql

A continuación, cree una base de datos y un usuario con el siguiente comando:

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

A continuación, otorgue todos los privilegios a la base de datos testdb con el siguiente comando:

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

A continuación, elimine los privilegios con el siguiente comando:

mysql> FLUSH PRIVILEGES;

Luego, cambie la base de datos a testdb y cree una tabla llamada estudiante con el siguiente comando:

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

A continuación, inserte algunos datos en la tabla con el siguiente 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');

Ahora puede verificar todos los datos con el siguiente comando:

mysql> SELECT student_id, first_name, last_name from student;

Deberías obtener el siguiente resultado:

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

Ahora, salga de MySQL con el siguiente comando:

mysql> EXIT;

Paso 5:Cree una aplicación PHP para obtener datos de MySQL

A continuación, deberá crear una aplicación PHP y alojarla con un servidor web Apache. Esta aplicación se conectará a la base de datos MySQL y consultará la tabla de estudiantes que hemos creado anteriormente.

Primero, cree una aplicación PHP en el directorio raíz web de Apache:

nano /var/www/html/student.php

Agrega los siguientes códigos:

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

Guarde y cierre el archivo cuando haya terminado.

La aplicación anterior se conectará a la base de datos MySQL y almacenará en caché los datos en Redis.

Paso 6:probar el almacenamiento en caché de Redis

A continuación, deberá probar si el almacenamiento en caché de Redis funciona o no. Abra su navegador web y acceda a su aplicación usando la URL

http://your-server-ip/student.php . Cuando acceda a la aplicación por primera vez, debería buscarla en la base de datos MySQL. Cuando vuelva a acceder a la aplicación, debería abrirse más rápido porque obtendrá datos del caché de Redis.

Por supuesto, no tiene que instalar la configuración de Redis con MySQL si usa uno de nuestros alojamientos administrados de Redis, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo instalen y configuren por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.

PD . Si le gustó esta publicación sobre Cómo configurar Redis como caché para MySQL con PHP en Ubuntu 20.04 , compártalo con sus amigos en las redes sociales utilizando los botones de la izquierda o simplemente deje una respuesta a continuación. Gracias.


Panels
  1. Cómo instalar Phorum con Nginx en Ubuntu 18.04 LTS

  2. Cómo configurar WireGuard VPN en Ubuntu 20.04

  3. Cómo instalar Lighttpd con PHP5 y MySQL en Ubuntu 11.04

  4. Cómo instalar y configurar mysql 8 en Ubuntu 20.04

  5. Cómo configurar Apache con HTTP/2 en Ubuntu 16.04

Cómo instalar Drupal 8 con Apache, MySQL y SSL en Ubuntu 15.10

Cómo instalar Nginx con PHP y MySQL (LEMP Stack) en Ubuntu 18.04

Cómo configurar el clúster RabbitMQ en Ubuntu 20.04

Cómo instalar LAMP en Ubuntu 15.04

Cómo instalar la pila Apache, MySQL, PHP (LAMP) en Ubuntu 16.04

Cómo configurar Tomcat con Nginx como proxy inverso en Ubuntu 18.04