Búsqueda de sitios web

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 appendonlyyes

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

Artículos relacionados: