Cómo instalar Redis en Debian 9 Stretch

En esta entrada veremos cómo instalar Redis en Debian 9 Stretch paso a paso, para que puedas montar rápida y fácilmente este servicio de bases de datos en memoria sobre tu servidor o VPS Debian.

Antes de instalar Redis en Debian 9 Stretch

Para poder serguir esta breve guía de instalación de Redis en Debian 9 Stretch deberías satisfacer estos mínimos requisitos:

  • Una máquina Debian 9 Stretch actualizada.
  • Un usuario con permisos de sudo o el mismo root.
  • Conexión a Internet.

Cómo instalar Redis en Debian 9 Stretch

En este tutorial se va a instalar Redis en Debian 9 Stretch desde los repositorios del sistema, por lo que conviene previamente actualizar la información de las listas de paquetes:

~$ sudo apt update

El paquete que buscamos es redis-server, que podemos instalar directamente con apt:

~$ sudo apt install -y redis-server

Tras la descarga e instalación de Redis y sus dependencias tenemos un nuevo servicio en Debian 9, llamado redis-server.service o simplemente redis-server. El servicio Redis queda en ejecución y habilitado para iniciar automáticamente junto a Debian 9.

Podemos comprobar el estado de Redis Server en cualquier momento con el comando systemctl status redis-server:

como instalar redis en debian 9 stretch

Al consultar el estado del servicio también podemos ver que está a la espera de conexiones en el puerto 6379 de la interfaz de red local.

Si necesitas saber qué versión del servidor Redis está corriendo en tu máquina Debian 9 es tan sencillo como lanzar el comando redis-server -v:

~$ redis-server -v
Redis server v=3.2.6 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=36cfef259bdc87cb

Cómo instalar el cliente de Redis en Debian 9 Stretch

Una de las dependencias del servidor Redis es precisamente el cliente de consola redis-cli. Pero si solamente quieres instalar el cliente de Redis en Debian 9 para trabajar remotamente sobre otra máquina, el paquete que buscas es redis-tools, que puedes instalar con apt:

~$ sudo apt install -y redis-tools

Comprobando el funcionamiento de Redis

Podemos comprobar el funcionamiento local de Redis conectando al servicio desde el cliente de consola redis-cli sin indicar argumento alguno:

~$ redis-cli
127.0.0.1:6379>

Una sencilla prueba es enviar el comando ping:

127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

Inmediatamente recibimos respuesta. También podemos almacenar un par clave/valor:

127.0.0.1:6379> set paco 14
OK
127.0.0.1:6379>

Y a continuación recuperar el valor de la clave:

> get paco
"14"
127.0.0.1:6379>

Todo funciona como cabía esperar.

Cómo configurar Redis en Debian 9 Stretch

Para configurar Redis en Debian 9 Stretch debes trabajar sobre los archivos de configuración situados en la ruta /etc/redis/, siendo el archivo principal redis.conf. Algo que debemos cambiar inicialmente es el modo de supervisión del servicio, ya que por defecto no está supervisado y podemos establecer el modo systemd, que es el que corresponde a los servicios de Debian 9 Stretch.

Para ello editamos el archivo redis.conf:

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

La directiva que buscamos es supervised:

...
supervised no
...

Y cambiamos su valor a systemd:

...
supervised systemd
...

Guardados los cambios, reiniciamos el servicio:

~$ sudo systemctl restart redis

Asegurar el servicio con contraseña

Como has visto hasta ahora, el servicio Redis es accesible sin contraseña, pero en ciertos entornos puede ser interesante asegurar el servicio mediante el uso de una contraseña que habrá que enviar antes de empezar a trabajar.

Para ello editaremos el archivo redis.conf y buscamos la directiva requirepass:

...
# requirepass foobared
...

Tendremos que activar la directiva y darle un valor. Sobre esto cabe destacar que la contraseña se almacena en claro, tal cual en este archivo redis.conf, que en principio sólo tiene permisos de lectura para el usuario redis. Por otro lado, la contraseña debe ser muy fuerte, ya que al tratarse de una base de datos en memoria los ataques por fuerza bruta pueden tener éxito si la fuerza de la clave es mediocre.

Editamos la directiva y establecemos un valor:

...
requirepass XXXXXXXX
...

Y reiniciamos el servicio.

Ahora no podremos trabajar si no nos autenticamos:

~$ redis-cli
127.0.0.1:6379> get paco
(error) NOAUTH Authentication required.
127.0.0.1:6379>

Usaremos el comando auth para enviar la clave:

127.0.0.1:6379> auth XXXXXXXX
OK
127.0.0.1:6379> get paco
"14"
127.0.0.1:6379>

Acceso remoto a Redis en Debian 9 Stretch

Si queremos permitir el acceso remoto al servicio Redis en Debian 9 debemos editar el archivo de configuración redis.conf y buscar la directiva bind:

...
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 127.0.0.1
...

Para permitir el acceso desde nuestra red local debemos añadir la dirección del adaptador de red correspondiente a la directiva bind:

...
bind 127.0.0.1 192.168.0.100
...

Aplicamos los cambios reiniciando el servicio:

~$ sudo systemctl restart redis-server

Configurar el firewall UFW de Debian 9 para Redis

Si tienes activado el firewall UFW en Debian 9 Stretch necesitarás añadir una regla para permitir el acceso remoto al servicio Redis:

~$ sudo ufw allow 6379/tcp

Ahora desde cualquier máquina de la red local podemos conectar al servicio Redis, por ejemplo a través del cliente redis-cli indicando la dirección del servidor Debian 9:

~$ redis-cli -h debian9.local
debian9.local:6379> auth XXXXXXXX
OK
debian9.local:6379> get paco
"14"
debian9.local:6379>

Extensión de PHP para Redis

Si quieres desarrollar en PHP con Redis, necesitas instalar la extensión php-redis para Debian 9:

~$ sudo apt install -y php-redis

Una vez instalada la extensión php-redis puedes trabajar con tu servicio Redis en PHP, como se puede comprobar creando un sencillo script:

~$ nano redis.php

Con este contenido:

<?php
$clave = 'paco';
$password = 'XXXXXXXX';

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

if ($redis->auth($password)) {
        $valor = $redis->get($clave);
        echo "La clave '$clave' tiene el valor $valor\n\n";
        } else {
        echo "Error de autenticación\n\n";
        }

$redis->close();

Básicamente se establece una conexión al servicio Redis local, se envía la contraseña y se solicita el valor de la clave que hemos usado durante el tutorial, para imprimir un mensaje.

Podríamos haber creado este script en la ruta adecuada para ser usado a través del servidor web, pero podemos también usar PHP en consola:

~$ php redis.php
La clave 'paco' tiene el valor 14

~$

Conclusión

Ya sabes cómo instalar el servicio Redis en Debian 9 Strech de forma rápida y sencilla, por lo que puedes desarrollar o implantar aplicaciones que se apoyan en esta veloz base de datos persistente en memoria.

Si tienes alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario.

Y si gracias a esta pequeña guía de instalación y configuración de Redis en Debian 9 Stretch ya tienes funcionando este servicio en tu máquina y quieres agradecérnoslo, puedes ayudarnos dejando una propina de tan sólo 1 $ en PayPal:

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

¡Gracias!

5/5 - (1 voto)

2 comentarios en «Cómo instalar Redis en Debian 9 Stretch»

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.