Instalar y configurar Redis en Ubuntu

Instalar y configurar Redis en Ubuntu

Redis es el acrónico de REmote DIctionary Server (servidor de diccionario remoto). Es un almacén de estructura de datos de valores de clave en memoria rápido y de código abierto, incorpora un conjunto de estructuras de datos en memoria versátiles que le permiten crear con facilidad diversas aplicaciones personalizadas. Entre los casos de uso principales de Redis se encuentran el almacenamiento en caché. Gracias a su velocidad y facilidad de uso, Redis es una opción popular para aplicaciones web, móviles, de juegos, de tecnología publicitaria y de IoT que requieren el mejor desempeño de su clase.

El uso principal de Redis en este artículo será el de poder almacenar en caché las peticiones a la base de datos, así, por ejemplo se puede usar CloudFlare para cachear los archivos estáticos tales como HTML, CSS, JS y Redis para cachear las peticiones al la base de datos. la mayoría de mis clientes usan Wordpress para su sitio web, una vez que se termina el diseño del sitio web, el cliente muy rara vez edita la información ya colocada, cada vez que un usuario consulta una página de mis clientes,  se hacen peticiones a la base de datos, pero si la información no ha sido editada, sería mejor que se obtuviera una versión cacheada de la información así el tiempo de carga del sitio web sería reducido considerablemente.

He tenido la oportunidad de utilizar Redis y Varnish como gestores de cacheo de consultas a la base de datos, sin entrar tanto a detalles, puedo decir que Redis es mucho más sencillo de configurar y representa menos problemas al momento de ser implementado por ejemplo en Magento o en Wordpress. uno de los problemas con Varnish que si me gustaría destacar es que varnish no funciona muy bien con los sitios web con SSL, el certificado de seguridad vuelve a varnish muy inestable, en el caso de Redis, no he nido que realizar configuraciones adicionales y funciona perfectamente con y sin SSL. incluso con varias bases de datos al mismo tiempo.

Instalación de Redis

Un requisito necesario es el permiso SUDO en nuestro servidor. empezaremos instalando tcl en ubuntu para que nos permita ejecutar pruebas de archivos binarios.


sudo apt-get update
sudo apt-get install build-essential tcl

Una vez realizado, procedemos a descargar, instalar y mover el paquete de Redis.


// nos colocamos en la carpeta temporal de Ubuntu
cd /tmp

// Descargamos la ultima versión de Redis
curl -O http://download.redis.io/redis-stable.tar.gz

// Descomprimimos el archivos descargado.
tar xzvf redis-stable.tar.gz

// nos movemos al directorio de Redis
cd redis-stable

// Finalmente compilamos los archivos binarios.
make

Después de que se compilaron los archivos binarios, ejecutamos el siguiente comando para realizar una prueba y comprobar que todos los archivos funcionan bien.


make test

Esto normalmente demorará unos minutos en ejecutarse. Una vez que esté completo, puede instalar los binarios en el sistema con el siguiente comando:


sudo make install

Configurar Redis

Ahora que Redis está instalado, podemos comenzar a configurarlo.


// creamos el siguiente dirkectorio
sudo mkdir /etc/redis

// copiamos el archivo de configuración al nuevo directorio
sudo cp /tmp/redis-stable/redis.conf /etc/redis

// Abrimos el archivo de configuración
sudo nano /etc/redis/redis.conf

// En el archivo, encuentra la directiva "supervised" y cambiar de no a systemd
....
supervised systemd
....

// En el mismo archivo buscaremos la directiva "dir" y le colocares lo siguiente
....
dir /var/lib/redis
....

// Guardamos y cerramos el archivo.

Crear un archivo Redis systemd

Crear un archivo systemd será necesario para que el sistema init pueda administrar el proceso Redis, y con ello poder iniciarlo junto con el sistema.


// Creamos y abrimos el siguiente archivo
sudo nano /etc/systemd/system/redis.service

// Le colocaremos la siguiente información dentro del archivo:
---
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
---

// guardamos y cerramos el archivo.

Crear el usuario, el grupo y los directorios de Redis

Ahora, solo tenemos que crear el usuario, grupo y directorio al que hicimos referencia en los dos archivos anteriores.


// Creamos el usuario y el grupo de usuario
sudo adduser --system --group --no-create-home redis

// Creamos el directrio siguiente
sudo mkdir /var/lib/redis

// Le asignamos el grupo y usuario a la propiedad del directorio
sudo chown redis:redis /var/lib/redis

// Ajustamos los permisos del directorio
sudo chmod 770 /var/lib/redis

Iniciamos el servicio de redis


sudo systemctl start redis

Pruebas de funcionalidad

Si quieres cerciorarte de que Redis esté funcionando bien, puedes ejecutar las siguientes pruebas:


// Iniciamos redis-cli
redis-cli

// Hacemos ping
127.0.0.1:6379 > ping

// La respuesta debería ser
PONG

// Mandamos un valor a Redis
127.0.0.1:6379 > set test "Hola mundo!"

// la respuesta debía ser
OK

// obtenemos el valor previo
127.0.0.1:6379 > get test

// La respuesta debería ser
Hola mundo !

// Salimos de Redis
127.0.0.1:6379 > exit

// Como prueba final, reiniciamos Redis
sudo systemctl restart redis

Habilite Redis para iniciar al restaurar Ubuntu


sudo systemctl enable redis

Con esto tendríamos todo cubierto para que Redis se encuentre instalado, configurado e iniciado junto con Ubuntu.