Instalar y configurar el servidor Redis en Rocky Linux 8/AlmaLinux 8
Redis es un almacén de estructura de datos en memoria ampliamente utilizado creado originalmente por Salvatore Sanfilippo en 2009 en el lenguaje de programación C y de código abierto. Redis, que significa Servidor de diccionario remoto, se utiliza principalmente como caché, base de datos y agente de mensajes y admite varias estructuras de datos como hashes, cadenas, conjuntos, listas y conjuntos ordenados.
Una de las características clave de Redis es la capacidad de manejar operaciones de datos de alto rendimiento en cualquier tipo de aplicación. Al almacenar sus datos en la memoria, tiene un acceso a los datos más rápido que las bases de datos tradicionales basadas en disco. Esto convierte a Redis en una opción ideal para casos de uso como análisis en tiempo real, gestión de sesiones y tablas de clasificación. Con el soporte de Redis para la agrupación de datos, puede lograr fácilmente el escalado horizontal de la base de datos para manejar el aumento de carga agregando nodos adicionales. Esto permite que los servidores de Redis manejen grandes cantidades de datos y tráfico sin perder rendimiento.
Instale el servidor Redis en Rocky Linux 8/AlmaLinux 8
En la siguiente sección cubrimos todos los pasos necesarios para instalar y configurar Redis Server en Rocky Linux 8/AlmaLinux 8.
Paso 1: instalar los paquetes de Redis
Comencemos el proceso actualizando la lista de paquetes del sistema y actualizando los paquetes existentes:
sudo dnf -y update
Los paquetes de servidor y cliente de Redis están disponibles en el repositorio de OS AppStream. Puede verificar las versiones usando los siguientes comandos:
$ sudo dnf module list redis
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
redis 5 [d][e] common [d] [i] Redis persistent key-value database
redis 6 common [d] Redis persistent key-value database
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
En el resultado podemos ver que la versión predeterminada es 5. Necesitamos restablecer y habilitar 6 en su lugar.
sudo dnf -y module reset redis
sudo dnf install @redis:6
Acepte las indicaciones de instalación para continuar.
Transaction Summary
======================================================================================================================================================================================================
Install 1 Package
Total download size: 1.2 M
Installed size: 4.3 M
Is this ok [y/N]: y
Después de la instalación del paquete, proceda a iniciar y habilite el servicio redis para que se inicie en el arranque.
sudo systemctl enable --now redis
El estado del servicio debe mostrarse en ejecución.
$ systemctl status redis
● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/redis.service.d
└─limit.conf
Active: active (running) since Mon 2023-01-16 07:09:09 UTC; 6s ago
Main PID: 30476 (redis-server)
Status: "Ready to accept connections"
Tasks: 5 (limit: 23036)
Memory: 7.3M
CGroup: /system.slice/redis.service
└─30476 /usr/bin/redis-server 127.0.0.1:6379
Jan 16 07:09:09 rocky8.mylab.io systemd[1]: Starting Redis persistent key-value database...
Jan 16 07:09:09 rocky8.mylab.io systemd[1]: Started Redis persistent key-value database.
Paso 2: configurar el servidor Redis
Redis Server se puede configurar editando el archivo de configuración ubicado en /etc/redis.conf
.
Habilite el servicio Redis para escuchar en todas las interfaces
De forma predeterminada, el servicio Redis escucha en 127.0.0.1
.
$ ss -tunelp | grep 6379
tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=30348,fd=6)) uid:986 ino:71091 sk:4 <->
Puede editar para permitir que el servicio escuche en todas las interfaces de red para conexiones de clientes remotos.
sudo vim /etc/redis.conf
La línea a cambiar es bind 127.0.0.1
a continuación:
bind 0.0.0.0
Reinicie Redis después de realizar el cambio usando los siguientes comandos.
sudo systemctl restart redis
Confirme si Redis Server ahora está escuchando en la nueva dirección de enlace.
$ ss -tunelp | grep 6379
tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:* users:(("redis-server",pid=30348,fd=6)) uid:986 ino:71091 sk:4 <->
Paso 3: configurar la autenticación de Redis
Configure la autenticación de Redis para que los clientes requieran AUTH
antes de procesar cualquier otro comando. Edite el archivo de configuración usando su editor de archivos favorito.
requirepass <AuthPassword>
Establezca la contraseña deseada en el parámetro requirepass.
requirepass StrongPassword
Paso 4: Configurar el almacén persistente para la recuperación
Establezca el modo de persistencia cambiando el valor appendonly
a yes
appendonly yes
appendfilename "appendonly.aof"
Reinicie el servicio redis después de realizar los cambios.
sudo systemctl restart redis
Si tiene un servicio de firewall activo, permita el puerto 6379
sudo firewall-cmd --add-port=6379/tcp --permanent
sudo firewall-cmd --reload
Confirme el estado de su servicio después del reinicio.
systemctl status redis
Paso 5: Conéctese al servidor Redis desde CLI
Una forma sencilla de probar el servidor Redis es ejecutar el comando redis-cli
y pasar ping como argumento.
$ redis-cli ping
PONG
Si ve "PONG" en respuesta, indica que el servidor Redis se está ejecutando y respondiendo a los comandos. También puedes utilizar la sesión interactiva.
$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> INFO
NOAUTH Authentication required.
Pruebe la autenticación de Redis.
127.0.0.1:6379> AUTH <AuthPassword>
OK
Debería recibir OK
en el resultado. Si ingresa una contraseña incorrecta, la autenticación debería fallar:
127.0.0.1:6379> AUTH WrongPassword
(error) ERR invalid password
Verifique la información de Redis.
127.0.0.1:6379> INFO
Esto generará una larga lista de datos. Puede limitar la salida pasando Sección como argumento. P.ej.
127.0.0.1:6379> INFO Server
# Server
redis_version:6.2.7
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:56aeeede275be948
redis_mode:standalone
os:Linux 4.18.0-425.3.1.el8.x86_64 x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:8.5.0
process_id:30517
process_supervised:systemd
run_id:e33d0c7941bf3add63ffc9dc2a30c34657835e06
tcp_port:6379
server_time_usec:1673854139726987
uptime_in_seconds:631
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:12909755
executable:/usr/bin/redis-server
config_file:/etc/redis.conf
io_threads_active:0
Paso 6: Realizar la evaluación comparativa de Redis
Ejecute la prueba comparativa con 10
conexiones paralelas, para un total de 100 000
solicitudes, frente a redis local para probar su rendimiento.
# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 10
..................................................
100.00% <= 0 milliseconds
85470.09 requests per second
====== LRANGE_500 (first 450 elements) ======
100000 requests completed in 1.17 seconds
10 parallel clients
3 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
85397.09 requests per second
====== LRANGE_600 (first 600 elements) ======
100000 requests completed in 1.18 seconds
10 parallel clients
3 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
84530.86 requests per second
====== MSET (10 keys) ======
100000 requests completed in 1.18 seconds
10 parallel clients
3 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
84961.77 requests per second
Para ver todas las opciones de comando posibles, utilice --help
$ redis-benchmark --help
Puede verificar los clientes conectados a su servidor Redis usando:
127.0.0.1:6379> client list
id=185 addr=127.0.0.1:54300 fd=8 name= age=75 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
Usando Redis con Python
Para usar redis con Python, instale la biblioteca cliente Python Redis:
sudo yum -y install python-redis
Usando Redis con PHP
Para conectarse al servidor Redis con PHP, instale PHP Redis Client Module.
sudo yum -y install php-redis
Consulte artículos similares disponibles en el sitio web.
- Supervise Redis Server con Prometheus y Grafana en 5 minutos
- Instalar y configurar Memcached en CentOS 8/RHEL 8
- Instale Varnish Cache 6 para Apache/Nginx en CentOS 8/RHEL 8