Cómo instalar Redis en Fedora 36

En este artículo veremos cómo instalar Redis en Fedora 36, 35 y 34 paso a paso, de forma que al final tendrás funcionando este servicio de bases de datos en memoria sobre tu servidor o VPS Fedora.

Antes de instalar Redis en Fedora 36

Para poder completar esta guía de instalación y configuración de Redis en Fedora 36, 35 y 34 es necesario satisfacer los siguientes requerimientos:

  • Una instalación actualizada de Fedora 36, 35 ó 34.
  • Un usuario con permisos de sudo o el mismo root.
  • Conexión a Internet.

Cómo instalar Redis en Fedora 36

Para instalar Redis en Fedora 36 usaremos los paquetes disponibles en los repositorios de la distribución, así que el primer paso será actualizar la información de estos repositorios:

~$ sudo yum update

El paquete que debemos instalar es redis y lo haremos con el comando yum:

~$ sudo yum install -y redis

Se crea un nuevo servicio en Fedora 36, el servicio redis.service o redis, que no queda en ejecución ni habilitado para su inicio automático.

Iniciaremos Redis manualmente por primera vez con el comando systemctl:

~$ sudo systemctl start redis

Y si nos interesa que Redis inicie automáticamente junto a Fedora 36, habilitaremos también el servicio:

~$ sudo systemctl enable redis

En cualquier momento se puede consultar fácilmente el estado del servicio con el comando systemctl status redis:

como instalar redis en fedora 36, 35 y 34

El servicio escucha peticiones locales en el puerto 6379 TCP como podemos comprobar con el comando ss:

~$ ss -ntl
State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port  Process
...
LISTEN   0        511            127.0.0.1:6379          0.0.0.0:*
...
LISTEN   0        511                [::1]:6379             [::]:*
...

Versión instalada de Redis en Fedora 36

Si quieres saber la versión exacta de Redis que se ha instalado en Fedora 36 puedes averiguarlo con el comando redis-server:

~$ redis-server -v
Redis server v=6.2.7 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=63e4c6cb7f542ebb

Instalación del cliente de Redis en Fedora 36

En Fedora 36 el mismo paquete incluye tanto el servicio Redis como el cliente de consola redis-cli, por lo tanto ya lo tendríamos instalado.

Sin embargo, si sólo necesitas el cliente para trabajar de forma remota, los pasos son los mismos, pero no habrá que activar el servicio localmente.

Probar Redis en Fedora 36

Para probar el nuevo servicio Redis en Fedora 36 podemos conectar al servicio con el cliente de consola redis-cli y enviar el comando ping:

~$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

Se establece la conexión y recibimos respuesta.

Podemos crear pares clave/valor que quedarán almacenados:

> set corazones rojo
> set diamantes rojo
> set picas negro
> set tréboles negro
>

En cualquier momento podemos recuperar el valor de una clave:

> get tréboles
"negro"
>

Para abandonar el cliente basta con usar el comando exit.

Cómo configurar Redis en Fedora 36

Para configurar Redis en Fedora 36 trabajaremos sobre su archivo de configuración en la ruta /etc/redis.conf.

~$ sudo nano /etc/redis/redis.conf

Acceder al servicio con contraseña

Hemos visto anteriormente que es posible acceder al servicio directamente, sin ningún tipo de credencial de acceso. Podemos cambiar este comportamiento estableciendo una contraseña en el archivo redis.conf, buscando la directiva requirepass:

...
# requirepass foobared
...

Activaremos esta directiva eliminando el carácter # inicial y asignando un valor:

...
requirepass XXXXXXXX
...

La contraseña debería ser muy fuerte, ya que al tratarse de una base de datos en memoria, un atacante podría probar miles de combinaciones por segundo.

Guardados los cambios, es necesario reiniciar Redis:

~$ sudo systemctl restart redis

La próxima vez que conectemos con el servicio no se aceptarán comandos si no se proporciona la contraseña:

~$ redis-cli
> get picas
(error) NOAUTH Authentication required.
>

Enviaremos la contraseña con el comando auth:

127.0.0.1:6379> auth XXXXXXXX
OK
> get picas
"negro"
>

Acceso remoto a Redis en Fedora 36

La configuración por defecto de Redis en Fedora 36 sólo permite conexiones locales, así que si necesitamos acceso remoto cambiaremos el valor de la directiva bind en redis.conf:

...
bind 127.0.0.1
...

Podemos añadir la dirección del adatapdor con el que la máquina conecta a la red, sustituir el valor por 0.0.0.0 para permitir conexiones desde cualquier sitio o desactivar la directiva:

...
#bind 127.0.0.1
...

Reiniciamos el servicio para aplicar los cambios.

Firewall

Lo habitual es que el firewall de Fedora 36 esté activado, así que si queremos permitir el acceso remoto al servicio Redis habrá que añadir una regla:

~$ sudo firewall-cmd --permanent --add-service=redis

Y recargamos la configuración del firewall:

~$ sudo firewall-cmd --reload

Establecer la conexión remota

Podremos conectar desde otra máquina que tenga un cliente de Redis como redis-cli indicando la dirección del servidor Fedora 36:

~$ redis-cli -h fedora.local.lan
fedora.local.lan:6379> auth XXXXXXXX
OK
fedora.local.lan:6379> get diamantes
"rojo"
fedora.local.lan:6379>

PHP y Redis

Si estás interesado en desarrollo web sobre PHP entonces debes saber que existen extensiones para comunicar con Redis. La extensión más indicada para la versión incluida en los repositorios de la distribución es php-pecl-redis5, que instalamos fácilmente con yum:

~$ sudo yum install -y php-pecl-redis5

Como siempre que se instalan extensiones, hay que recargar la configuración del servicio PHP-FPM para que la extensión esté disponible:

~$ sudo systemctl reload php-fpm

Podemos crear un pequeño script en PHP para probar desde consola:

~$ sudo nano redis.php

Con un contenido tan básico como establecer conexión, autenticar el acceso con la contraseña y recuperar el valor de una clave:

<?php
$key = 'corazones';
$password = 'XXXXXXXX';
$redisObj = new Redis();
$redisObj->connect('127.0.0.1', 6379);
if ($redisObj->auth($password)) {
        $value = $redisObj->get($key);
        echo "La clave '$key' tiene el valor '$value'\n\n";
} else {
        echo "Error de autenticación\n\n";
}
$redisObj->close();

Si lanzamos el script con el comando php en consola obtenemos esto:

~$ php redis.php
La clave 'corazones' tiene el valor 'rojo'

~$

Justo como esperábamos.

SELinux, Redis y PHP

Vamos a probar el script anterior vía web a través del navegador, para lo que lo moveremos a una ruta accesible desde el servicio web:

~$ sudo mv redis.php /var/www/html/

Ahora trataremos de acceder desde el navegador, añadiendo a la dirección del servidor (IP, dominio, nombre DNS, localhost si accedemos localmente, etc.) la ruta del archivo.

Por ejemplo, la máquina sobre la que hemos preparado este tutorial es accesible en el subdominio fedora.local.lan, así que podríamos acceder usando http://fedora.local.lan/redis.php como URL.

como configurar redis en fedora 36, 35 y 34

Si aparece un error como el mostrado anteriormente se debe a que SELinux está activado y bloqueando las conexiones de red del servicio web.

Configuraremos SELinux para que permita las conexiones entre la aplicación web y el servicio Redis y leer contenido de los usuarios:

~$ sudo setsebool -P httpd_can_network_connect on
~$ sudo setsebool -P httpd_read_user_content on

Volvemos a cargar la página en el navegador:

configuracion de redis en fedora 36, 35 y 34

Ahora ya funciona como se esperaba.

Conclusión

Ya sabes cómo instalar y configurar Redis en Fedora 36, 35 ó 34, por lo que puedes empezar a trabajar con este servicio de bases de datos en memoria con tus propias aplicaciones web o instalando aquellas que lo requieren.

En caso de dudas o preguntas, alguna sugerencia, etc. puedes dejar un comentario (están moderados para evitar el SPAM, pero se revisan prácticamente a diario).

¡Apoya este sitio!

¿Ya tienes el servicio montado en tu propia máquina gracias a esta breve guía de instalación y configuración? Si es así y te apetece agradecérnoslo, cualquier aportación es una gran ayuda al mantenimiento de este sitio y para la creación de nuevos tutoriales y guías.

Puedes hacerlo dejando una propina de tan sólo 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un cappuccino:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

1 comentario en «Cómo instalar Redis en Fedora 36»

Deja un comentario