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.

¿Encontraste lo que buscabas?

Si es así, suscríbete para que estés enterado de mis nuevos posts sobre programación e informática

Estoy interesado en trabajar contigo de manera remota para llevar tu idea a la realidad, formar parte de tu equipo de desarrolladores, ayudarte con tu tarea, dar asesorías y todo lo relacionado con tecnología y programación. Contáctame para más información
No te vayas sin seguirme en Twitter, Facebook y GitHub
Si tienes dudas déjalas en un comentario, pero asegúrate de seguirme antes como agradecimiento (no te cuesta nada y me ayudas mucho)


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB. Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron. Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scripts La plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C. Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share via
A %d blogueros les gusta esto: