03Nov

Cómo instalar Redis en Ubuntu 16.10 compilando del código fuente

Redis es un sistema de persistencia de tipo llave-valor en memoria. Es rápido y consume pocos recursos.

En esta guía vamos a mostrar como instalar y configurar esta aplicación para Ubuntu 16.10.

Requisitos

Usaremos un usuario root o un usuario con privilegios sudo para realizar las tareas de instalación y configuración.

Compilando de código fuente

Para obtener la última versión estable vamos a compilar Redis de su código fuente. Necesitaremos tener instalado el grupo de paquetes build-essential. Si no está instalado en el sistema, el siguiente comando instalará este grupo de paquetes:

apt-get update
apt-get install -y build-essential wget

Compilando Redis

Hemos de descargar la última versión estable, en el caso actual es la versión 3.2.5. Con el siguiente comando descargamos el código fuente en el directorio /opt y descomprimimos el archivo descargado:

cd /opt && \
    wget -O redis-3.2.5.tar.gz http://download.redis.io/releases/redis-3.2.5.tar.gz && \
    tar xvzf redis-3.2.5.tar.gz && \
    rm redis-3.2.5.tar.gz

Ahora compilamos Redis entrando en el directorio del código fuente que hemos descomprimido:

cd /opt/redis-3.2.5
make

Una vez finalizada la compilación, no es mucho rato, depende de la potencia de vuestro ordenador, podemos instalar la aplicación.

Probando la compilación

Si queremos probar la compilación, muy recomendable, necesitamos primero instalar el paquete tcl y después ejecutar el comando de pruebas:

apt-get install -y tcl
make test

Para terminar la instalación ejecutamos dentro de la misma carpeta en la que hemos realizado la compilación /opt/redis-3.2.5:

make install

Configurando el servicio de Redis

Guardaremos la configuración en el directorio /etc/redis. Usaremos como configuración inicial la que podemos encontrar en el siguiente enlace de Github: Configuración de Inicio de Redis 3.2 y la modificaremos para adecuarla a Ubuntu 16.10:

mkdir /etc/redis
wget -O /etc/redis/redis.conf https://raw.githubusercontent.com/antirez/redis/3.2/redis.conf

Usando nuestro editor favorito abrimos el archivo de configuración de Redis para cambiar el parámetro supervised por systemd y configuramos el directorio donde almacenar los datos de Redis:

vim /etc/redis/redis.conf

/etc/redis/redis.conf

# ...
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#       They do not enable continuous liveness pings back to your supervisor.
supervised systemd

Y el directorio se encuentra en el parámetro de configuración dir:

# ...
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis

Creando el servicio de systemd

Creamos el archivo de servicio en /etc/systemd/system/redis.service con la configuración del servicio de Redis apuntando a los binarios redis-server y redis-cli:

[Unit]
Description=Sitema de almacenamiento Redis
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 el fichero de configuración y creamos el usuario, grupo y carpetas necesarias tal como hemos configurado:

adduser --system --group --no-create-home redis
mkdir /var/lib/redis

Damos los permisos de la carpeta donde se ejecutará Redis al usuario recién creado redis:

chown redis.redis /var/lib/redis

Iniciando Redis

Para iniciar el servicio Redis en el servidor hemos de ejecutar el siguiente comando:

systemctl start redis

Para comprobar el estado del servicio hemos de usar:

systemctl status redis

Para habilitar el servicio cada vez que arranque el servidor debemos usar el siguiente comando:

systemctl enable redis

Ya tenemos instalado Redis en nuestro servidor Ubuntu 16.10

Página Oficial de Redis: http://redis.io/

Leave a comment