Almacenamiento con Redis

Instalar y configurar Redis en Ubuntu 16

Redis en Ubuntu

En este tutorial mostraré cómo instalar Redis en Ubuntu versión 16, aunque puede funcionar para otras versiones.

Redis es un motor de bases de datos en memoria; se caracteriza porque es extremadamente rápido, en serio, muy rápido.

No es como tal un motor potente como MySQL; de hecho no soporta SQL pero sí soporta algunas estructuras de datos como:

  • Cadenas
  • Hashes
  • Listas

Sirve principalmente para almacenar datos en la forma clave-valor, almacenar datos en caché y otras cosas más.

Soporta igualmente la replicación, está escrito en C (aquí el código fuente) y se puede probar en línea.

Actualizar paquetes

Primero actualiza los paquetes de tu sistema:

sudo apt-get update

Y luego:

sudo apt-get upgrade

Selecciona la opción que dice Y en ambos casos por si pregunta.

Instalar redis

Ahora que ya ejecutaste ambas cosas es hora de instalar redis. Para ello ejecuta:

sudo apt-get install redis-server

Cuando te pregunte escribe Y y presiona enter, como se ve en la imagen:

Instalar redis en Ubuntu
Instalar redis en Ubuntu

Con eso habrás instalado Redis, ahora falta iniciar el servidor en el inicio del sistema operativo.

Iniciar servidor de Redis con systemctl

Para que redis inicie con el sistema, ejecuta:

sudo systemctl enable redis-server.service

Como se ve en la imagen:

Agregar redis al inicio del sistema operativo con systemctl
Agregar redis al inicio del sistema operativo con systemctl

De esta manera, Redis va a iniciarse cada vez que el sistema operativo bootee.

Configuración de Redis

Ahora veamos algunos ajustes para Redis. La configuración de redis se ubica en el archivo /etc/redis/redis.conf y puedes editarla con cualquier editor, yo lo haré con vim.

sudo vim /etc/redis/redis.conf

Ahora vamos a configurar la cantidad máxima de memoria que Redis puede usar; por defecto es 0 (hasta que el sistema mate al proceso por consumir tanta) pero vamos a cambiarla; dependiendo de tu servidor este valor puede cambiar, yo la dejaré en 100 MB.

Busca la configuración que dice maxmemory, y quita el comentario removiendo la almohadilla #. Usa el sufijo MB para Megabytes. En mi caso queda así:

Cambiar máxima memoria usada por Redis
Cambiar máxima memoria usada por Redis

Ahora vamos a ponerle una contraseña; este paso es opcional pero lo recomiendo.

Busca la línea que dice requirepass, remueve el comentario y pon una contraseña como se ve en la imagen.

Contraseña de Redis con requirepass
Contraseña de Redis con requirepass

Por favor elige una contraseña segura, larga y fácil de recordar, pues Redis dice que es tan rápido en comprobar las contraseñas que si alguien intenta un ataque de fuerza bruta podría probar hasta 150 mil contraseñas por segundo (en un buen servidor)

No deberías preocuparte si nadie tiene acceso a tu servidor por internet; pero avisado estás.

Ahora guarda cambios y reinicia el servicio para que tome en cuenta lo que acabamos de hacer.

sudo systemctl restart redis-server.service

Con eso ya estamos listos.

Ping y pong: probar Redis

Ahora vamos a conectarnos a Redis usando la CLI. Para ello ejecuta:

redis-cli -h localhost -p 6379 -a por_favor_una_pass_larga_123_hunter2

Las opciones son:

  1. h: el host, el cual es localhost o 127.0.0.1, podrías conectarte a otro servidor si quisieras, siempre y cuando estuviera abierto
  2. p: el puerto, por defecto es 6379
  3. a: si pusiste una contraseña debes especificarla aquí después de la opción.

Eso nos dejará entrar a la CLI. Ahora puedes escribir ping y debe devolver pong:

Iniciar cli de Redis
Iniciar cli de Redis

Con eso nos damos cuenta de que el servidor está funcionando y respondiendo.

Si quieres salir de la CLI escribe exit.

Probar almacenamiento

Para terminar este post veamos cómo almacenar y remover algunas cosas de Redis. No cierres la cli, y si ya la cerraste vuelve a abrirla.

Insertar valor

Para poner un dato la sintaxis es:

SET clave valor

Por ejemplo:

SET nombre "Luis"

Nota: para cadenas usa comillas, pero no para los números.

Obtener valor

Para obtener el valor necesitamos la clave. La sintaxis es:

GET clave

Así que si queremos obtener el nombre usamos:

GET nombre

Establecer en caso de que no exista

Es como SET pero este no sobrescribe si ya existe. El comando es SETNX y su sintaxis es:

SETNX clave valor

Por ejemplo:

SETNX edad 21

Incrementar valor

Hay un comando llamado INCR que simplemente incrementa un valor en uno. Su sintaxis es:

INCR clave

Por ejemplo:

INCR edad

Expirar un valor

Después de establecer un valor con SET podemos usar EXPIRE para indicar que ese valor se va a eliminar en determinados segundos. La sintaxis es:

EXPIRE clave segundos

Recuerda que debes establecer el valor antes con SET. Un ejemplo es:

EXPIRE nombre 10

Lo que eliminará el nombre en 10 segundos. Para cancelar su expiración vuelve a establecer la clave:

SET nombre "Luis"

Si quieres saber el tiempo restante para que una clave expira usa TTL:

TTL clave

Eso va a devolver el tiempo de expiración. Será -1 si no expira y -2 si la clave no existe.

Eliminar valor

Para eliminar un valor usa DEL. La sintaxis es:

DEL clave

Eso eliminará el valor y la clave de Redis.

Por ejemplo:

DEL nombre

Poniendo todo junto

Aquí dejo una captura con todo lo explicado:

Almacenamiento con Redis
Almacenamiento con Redis

Por cierto, hay más estructuras de datos que Redis puede almacenar, te invito a probar el tutorial en línea.

Conclusión

Espero que haya servido para algo este tutorial sobre cómo instalar y configurar Redis en Ubuntu.

Recuerda que siempre puedes leer mis otros posts sobre Linux.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario