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:
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:
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í:
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.
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:
- h: el host, el cual es
localhost
o127.0.0.1
, podrías conectarte a otro servidor si quisieras, siempre y cuando estuviera abierto - p: el puerto, por defecto es 6379
- 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:
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:
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.