Cómo instalar y configurar Redis 6.0 en Debian 11
Redis es un almacén de estructuras de datos en memoria, gratuito y de código abierto, que se utiliza como intermediario de mensajes y caché de base de datos. Puedes utilizarlo con soluciones de streaming como Apache Kafka para procesar y analizar datos en tiempo real con una latencia inferior al milisegundo. Redis admite muchas estructuras de datos, como Hashes, Cadenas, Hyperlogs, Mapas de bits, Índices geoespaciales, listas ordenadas, etc. Es popular debido a su amplio soporte de lenguajes, alta disponibilidad y particionamiento automático.
En este post, te mostraremos cómo instalar y configurar Redis 6 en Debian 11.
Requisitos previos
- Un servidor que ejecute Debian 11.
- Una contraseña de root configurada en el servidor.
Instalar Redis 6 en Debian 11
La última versión de Redis no está incluida en el repositorio por defecto de Debian 11. Así que tendrás que instalarla desde el repositorio oficial de Redis.
En primer lugar, instala todas las dependencias necesarias utilizando el siguiente comando:
apt-get install wget curl gnupg -y
A continuación, descarga y añade la clave GPG utilizando el siguiente comando:
curl https://packages.redis.io/gpg | apt-key add -
A continuación, añade el repositorio oficial de Redis utilizando el siguiente comando:
echo "deb https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
A continuación, actualiza la caché del repositorio e instala Redis utilizando el siguiente comando:
apt-get update -y apt-get install redis-server -y
Una vez instalado Redis, verifica la instalación de Redis utilizando el siguiente comando:
apt-cache policy redis-server
Deberías ver la información del paquete Redis en la siguiente salida:
redis-server: Installed: 6:6.2.6-3rl1~bullseye1 Candidate: 6:6.2.6-3rl1~bullseye1 Version table: *** 6:6.2.6-3rl1~bullseye1 500 500 https://packages.redis.io/deb bullseye/main amd64 Packages 100 /var/lib/dpkg/status 6:6.0.16-3rl1~bullseye1 500 500 https://packages.redis.io/deb bullseye/main amd64 Packages 5:6.0.16-1+deb11u1 500 500 http://security.debian.org/debian-security bullseye-security/updates/main amd64 Packages 5:6.0.15-1 500 500 http://debian.gtisc.gatech.edu/debian bullseye/main amd64 Packages
Gestionar el servicio Redis
Puedes gestionar el servicio Redis utilizando systemd.
Para iniciar el servicio Redis, ejecuta el siguiente comando:
systemctl start redis-server
Para que el servicio Redis se inicie al reiniciar el sistema, ejecuta el siguiente comando:
systemctl enable redis-server
Para comprobar el estado del servicio Redis, ejecuta el siguiente comando:
systemctl status redis-server
Deberías ver la siguiente salida:
? redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-28 07:15:00 UTC; 19s ago Docs: http://redis.io/documentation, man:redis-server(1) Main PID: 9079 (redis-server) Status: "Ready to accept connections" Tasks: 5 (limit: 4679) Memory: 7.2M CPU: 82ms CGroup: /system.slice/redis-server.service ??9079 /usr/bin/redis-server 127.0.0.1:6379 Nov 28 07:15:00 debian11 systemd[1]: Starting Advanced key-value store... Nov 28 07:15:00 debian11 systemd[1]: Started Advanced key-value store.
Por defecto, Redis escucha en el puerto 6379. Puedes comprobarlo con el siguiente comando:
ss -antpl | grep redis
Obtendrás la siguiente salida:
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=9079,fd=6)) LISTEN 0 511 [::1]:6379 [::]:* users:(("redis-server",pid=9079,fd=7))
Cuando hayas terminado, puedes pasar al siguiente paso.
Configurar Redis
Por defecto, Redis escucha en localhost. Si quieres conectar Redis desde el host remoto, entonces tendrás que permitir Redis para la conexión remota.
Para ello, edita el archivo de configuración de Redis utilizando tu editor favorito:
nano /etc/redis/redis.conf
Comenta la siguiente línea:
#bind 127.0.0.1 -::1
A continuación, establece la contraseña de Redis como se muestra a continuación:
requirepass securepassword
A continuación, modifica la siguiente línea:
appendonly yes appendfilename "appendonly.aof"
Guarda y cierra el archivo y reinicia el servicio Redis para aplicar los cambios:
systemctl restart redis-server
Cuando hayas terminado, puedes pasar al siguiente paso.
Conectarse a la Instancia Redis
Puedes utilizar la utilidad de línea de comandos redis-cli para conectarte al servidor Redis desde la máquina local o remota.
Ejecuta el siguiente comando para conectarte a la instancia de Redis:
redis-cli
Una vez conectado, obtendrás el siguiente intérprete de comandos:
127.0.0.1:6379>
Ahora, autentifica Redis utilizando la contraseña como se muestra a continuación:
127.0.0.1:6379> auth securepassword
A continuación, comprueba el servidor utilizando el siguiente comando:
127.0.0.1:6379> INFO Server
Obtendrás la siguiente información:
# Server redis_version:6.2.6 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:557672d61c1e18ba redis_mode:standalone os:Linux 5.10.0-8-amd64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:10.2.1 process_id:10828 process_supervised:systemd run_id:b5ce185f0d4783dd3ddab8cabd38b0ee0263637b tcp_port:6379 server_time_usec:1638085497530445 uptime_in_seconds:32 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:10695545 executable:/usr/bin/redis-server config_file:/etc/redis/redis.conf io_threads_active:0
Ahora, sal de la instancia Redis utilizando el siguiente comando:
127.0.0.1:6379> exit
Se recomienda realizar un benchmark de Redis para comprobar su rendimiento.
Ejecuta el siguiente comando para probar Redis con 10 conexiones paralelas, para un total de 2.000 peticiones:
redis-benchmark -h 127.0.0.1 -p 6379 -n 2000 -c 10 -a securepassword
Obtendrás la siguiente salida:
====== PING_INLINE ====== 2000 requests completed in 0.05 seconds 10 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: no Latency by percentile distribution: 0.000% <= 0.071 milliseconds (cumulative count 1) 50.000% <= 0.159 milliseconds (cumulative count 1090) 75.000% <= 0.207 milliseconds (cumulative count 1507) 87.500% <= 0.303 milliseconds (cumulative count 1769) 93.750% <= 0.359 milliseconds (cumulative count 1880) 96.875% <= 0.415 milliseconds (cumulative count 1942) 98.438% <= 0.455 milliseconds (cumulative count 1971) 99.219% <= 0.495 milliseconds (cumulative count 1985) 99.609% <= 0.791 milliseconds (cumulative count 1993) 99.805% <= 0.919 milliseconds (cumulative count 1997) 99.902% <= 1.031 milliseconds (cumulative count 1999) 99.951% <= 1.103 milliseconds (cumulative count 2000) 100.000% <= 1.103 milliseconds (cumulative count 2000) Summary: throughput summary: 35714.29 requests per second latency summary (msec): avg min p50 p95 p99 max 0.239 0.096 0.231 0.343 0.439 0.727
Para más opciones de línea de comandos, ejecuta el siguiente comando:
redis-benchmark --help
Conclusión
En el post anterior, hemos explicado cómo instalar y configurar Redis 6 en un servidor Debian 11. Ahora puedes implementar Redis en un entorno de producción y utilizarlo como intermediario de mensajes o para almacenar datos en caché en memoria y recuperarlos más rápidamente. No dudes en preguntarme si tienes alguna duda.