Cómo instalar Redis en FreeBSD 12

En este artículo explicamos cómo instalar Redis en FreeBSD 12 paso a paso, de modo que puedas hacer funcionar este sistema de bases de datos persistentes en memoria en tu servidor o VPS FreeBSD.

Antes de instalar Redis en FreeBSD 12

Si te interesa seguir esta guía de instalación y configuración de Redis en FreeBSD 12 debes cumplir estos mínimos requisitos:

  • Una instalación reciente de FreeBSD 12.
  • Acceso a consola como root o un usuario con capacidades de sudo.
  • Conexión a Internet.

Opcionalmente podría ser interesante disponer de servicio web con PHP si quieres probar la conectividad entre este lenguaje y el servidor Redis.

Cómo instalar Redis en FreeBSD 12

Vamos a instalar Redis en FreeBSD 12 utilizando los propios repositorios del sistema, por lo que previamente debemos actualizar las listas de paquetes:

~$ sudo pkg update

El paquete que necesitamos es redis, que podemos instalar directamente con la herramienta pkg de FreeBSD 12:

~$ sudo pkg install -y redis

Cuando termina la descarga e instalación de Redis se crea un nuevo servicio en FreeBSD 12, el servicio redis, que no queda iniciado ni tampoco habilitado para su inicio automático con el sistema.

Redis iniciará automáticamente con FreeBSD 12 si habilitamos el servicio con el comando service:

~$ sudo service redis enable

Ya podemos iniciar Redis por primera vez, también con service:

~$ sudo service redis start

Podemos comprobar el estado de Redis en cualquier momento con la opción status del comando service:

~$ service redis status
redis is running as pid 1011.

Cómo saber la versión instalada de Redis

Si necesitas saber qué versión de Redis se ha instalado en tu sistema FreeBSD 12 es tan fácil como utilizar el comando redis-server con el parámetro -v:

~$ redis-server -v
Redis server v=5.0.9 sha=00000000:0 malloc=libc bits=64 build=104482bb6ad895e4

Cómo instalar el cliente de Redis en FreeBSD 12

En FreeBSD 12 el paquete redis incluye tanto el servidor como el cliente y las herramientas. Si sólo quieres instalar el cliente Redis para FreeBSD 12 instala el mismo paquete redis, pero no actives el servicio.

Cómo probar Redis en FreeBSD 12

Puesto que ya tenemos instalado el servicio es posible probarlo conectando desde el cliente de consola redis-cli:

~$ redis-cli
127.0.0.1:6379>

Al no especificar parámetros se establece conexión con el servicio local. El prompt del cliente muestra la dirección y el puerto del servicio al que está conectado.

Podemos comunicarnos fácilmente con el servicio usando el comando ping:

127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

Recibimos de vuelta un mensaje de contestación. También podemos almacenar pares clave/valor:

127.0.0.1:6379> set stark winterfell
OK
127.0.0.1:6379>

Podemos recuperar el valor de la clave fácilmente:

127.0.0.1:6379> get stark
"winterfell"
127.0.0.1:6379>

Funciona como se esperaba. Puedes salir del cliente y regresar a consola con el comando exit:

127.0.0.1:6379> exit
~$

Cómo configurar Redis en FreeBSD 12

Para configurar Redis en FreeBSD 12 trabajaremos sobre su archivo de configuración, ubicado en la ruta /usr/local/etc/redis.conf.

Establecer una contraseña para el servicio

Como has visto en los ejemplos anteriores hemos conectado sin autenticación alguna. Podemos configurar el servicio para que sea obligatorio el uso de una contraseña, editando redis.conf:

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

Hay que buscar la directiva requirepass:

...
# requirepass foobared
...

Podemos ver que está desactivada, así que la activamos eliminando el carácter # de inicio de línea y le damos un valor apropiado.

...
requirepass XXXXXXXX
...

Un par de consideraciones sobre el uso de clave.

La contraseña se almacena en claro en el archivo de configuración, cuyos propietario y grupo por defecto son root y wheel, y además tiene permisos de lectura para todo el mundo.

Cambiaremos el propietario y el grupo a redis:

~$ sudo chown redis:redis /usr/local/etc/redis.conf

Y restringimos los permisos de lectura al propietario y al grupo:

~$ sudo chmod 640 /usr/local/etc/redis.conf

Por otro lado, teniendo en cuenta que Redis es un servicio de datos en memoria, la contraseña debe ser muy fuerte, ya que un ataque por fuerza bruta puede probar decenas de miles de claves por segundo.

Para aplicar los cambios, reiniciamos Redis:

~$ sudo service redis restart

Ahora no podemos trabajar con Redis si no nos identificamos:

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

Es necesario usar el comando auth para suministrar la contraseña:

127.0.0.1:6379> auth XXXXXXXX
OK
127.0.0.1:6379> get stark
"winterfell"
127.0.0.1:6379>

Acceso remoto

El servicio Redis por defecto sólo atiende conexiones desde la interfaz de red local de FreeBSD 12, en la dirección 127.0.0.1. Si queremos permitir conexiones desde otros sistemas de la red local es necesario hacer un ajuste en redis.conf.

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

Bastará con añadir la dirección IP del adaptador de red que conecta el sistema FreeBSD 12 con la red local:

...
bind 127.0.0.1 192.168.0.104
...

Tras reiniciar el servicio, Redis está listo para aceptar conexiones remotas, como podremos comprobar desde otro sistema que tenga instalado un cliente Redis como redis-cli:

~$ redis-cli -h freebsd12.local.lan
freebsd12.local.lan:6379> auth XXXXXXXX
OK
freebsd12.local.lan:6379> get stark
"winterfell"
freebsd12.local.lan:6379>

Conectar desde PHP con Redis

Desarrollar en PHP para trabajar con Redis es sencillo, basta instalar la extensión php7x-pecl-redis (dependiendo de la versión de PHP que tengas instalada):

~$ sudo pkg install -y php73-pecl-redis

Será necesario recargar la configuración del servicio web o del sevicio PHP, según corresponda:

~$ sudo service apache24 reload

Vamos a crear un pequeño script en PHP para ilustar la conectividad de este lenguaje con el servicio Redis. Con unas cuantas instrucciones para recuperar el valor de la clave que estamos usando en este tutorial:

<?php

$key = 'stark';
$password = 'XXXXXXXX';

$redis = new Redis();

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

$redis->close();

Ejecutando PHP en consola, obtenemos el resultado:

~$ php redis.php
La clave 'stark' tiene el valor 'winterfell'

~$

Si tienes servidor web, puedes copiar este script en PHP en el directorio de documentos web:

~$ sudo cp redis.php /usr/local/www/apache24/data/

Y podemos acceder desde el navegador añadiendo la ruta /redis.php a la dirección IP o dominio del servidor FreeBSD 12:

como instalar redis en freebsd 12

Conclusión

Ahora ya sabes cómo instalar y configurar Redis en FreeBSD 12, por lo que puedes realizar tus propios desarrollos o instalar las aplicaciones que lo requieren sobre tu servidor o VPS FreeBSD.

Si tienes preguntas, dudas, sugerencias, etc. puedes dejar algún comentario.

¡Apoya este sitio!

Y si ya tienes funcionando el servicio en tu propia máquina gracias a esta pequeña guía de instalación y configuración, y te apetece agradecérnoslo, cualquier mínima contribución ayuda al mantenimiento de este sitio y creación de nuevos tutoriales y artículos.

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

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

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario