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.
Contenido
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:
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!