bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación y Configuración de Redis

calendar_month Sep 01, 2026 schedule 23 min de lectura visibility 27 vistas
Установка и настройка Redis на VPS: Безопасность и высокая производительность
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación y configuración de Redis en un VPS: Seguridad y alto rendimiento

TL;DR

En esta guía técnica detallada, configuraremos paso a paso un servidor Redis de alto rendimiento y seguro en su VPS. Aprenderá cómo preparar el servidor, instalar la versión actual de Redis, configurarlo correctamente para un rendimiento y seguridad óptimos, y configurar copias de seguridad y monitoreo. Todos los comandos y archivos de configuración se proporcionan listos para copiar y usar.

  • Preparación de un VPS con el sistema operativo actual Ubuntu 24.04 LTS, configuración de seguridad SSH y firewall.
  • Instalación de Redis versión 7.x desde repositorios oficiales o compilando desde el código fuente para máxima actualidad.
  • Configuración detallada de redis.conf con énfasis en la seguridad (contraseña, enlace a IP) y el rendimiento (gestión de memoria, persistencia).
  • Configuración de copias de seguridad automáticas de los datos y la configuración de Redis.
  • Resolución eficaz de problemas comunes y respuestas a preguntas frecuentes.

Qué configuramos y por qué

Esquema: Qué configuramos y por qué
Esquema: Qué configuramos y por qué

Redis (Remote Dictionary Server) es un potente almacén de datos en memoria de código abierto, utilizado como base de datos, caché y bróker de mensajes. Soporta diversas estructuras de datos, como cadenas, hashes, listas, conjuntos, conjuntos ordenados con consultas de rango, mapas de bits, HyperLogLogs, índices geoespaciales y streams. Gracias al almacenamiento de datos en RAM, Redis proporciona una velocidad de lectura y escritura increíblemente alta, lo que lo convierte en una herramienta indispensable para las aplicaciones modernas de alta carga.

En el marco de esta guía, instalaremos y configuraremos Redis en su Virtual Private Server (VPS) o servidor dedicado. El objetivo final es obtener una instancia de Redis estable, segura y de alto rendimiento que pueda servir eficazmente a sus aplicaciones, ya sea una aplicación web, un microservicio, una plataforma de juegos o un sistema de procesamiento de datos. Aprenderá no solo la instalación básica, sino también la configuración fina de los parámetros de seguridad, la gestión de la memoria y la persistencia de los datos, lo cual es fundamental para un entorno de producción.

Qué obtendrá el lector al final:

  • Un servidor Redis funcional, listo para integrarse con sus aplicaciones.
  • Comprensión de los parámetros clave de configuración de Redis que afectan la seguridad y el rendimiento.
  • Habilidades básicas de administración de Redis, incluyendo inicio, detención, monitoreo y copia de seguridad.
  • Un conjunto listo de comandos y scripts para una implementación y mantenimiento rápidos.

Qué alternativas existen y por qué autoalojado en un VPS:

Existen varios enfoques para usar Redis:

  • Servicios gestionados en la nube (Cloud-managed Redis): Proveedores como Amazon ElastiCache, Google Cloud Memorystore o Azure Cache for Redis, ofrecen instancias de Redis completamente gestionadas. Proporcionan alta disponibilidad, escalado automático, copias de seguridad y parches sin necesidad de intervención manual.
    Pros: Facilidad de uso, mínima administración, tolerancia a fallos incorporada.
    Contras: Alto costo, menor control sobre la configuración, dependencia de un proveedor de nube específico (vendor lock-in).
  • Redis autoalojado en un VPS/servidor dedicado: Usted instala y gestiona Redis por su cuenta en su servidor virtual o dedicado.
    Pros: Control total sobre la configuración, optimización para sus necesidades, costo significativamente menor en comparación con los servicios gestionados, ausencia de vendor lock-in, posibilidad de usar versiones o módulos específicos de Redis.
    Contras: Requiere conocimientos técnicos para la instalación, configuración, monitoreo y mantenimiento; la responsabilidad de la seguridad y la tolerancia a fallos recae en usted.

La elección de Redis autoalojado en un VPS es ideal para quienes valoran el control total, desean optimizar costos y poseen las habilidades técnicas suficientes para la administración autónoma. Es una excelente opción para desarrolladores, startups, criptoentusiastas y cualquiera que desee utilizar sus recursos de servidor de la manera más eficiente posible.

Qué configuración de VPS se necesita para esta tarea

Esquema: Qué configuración de VPS se necesita para esta tarea
Esquema: Qué configuración de VPS se necesita para esta tarea

Los requisitos de VPS para Redis dependen en gran medida del volumen de datos que planee almacenar en la memoria, la intensidad de las operaciones de lectura/escritura y el número de clientes conectados simultáneamente. Redis almacena todos los datos en la memoria RAM, por lo que la RAM es el recurso más crítico.

Requisitos mínimos para proyectos pequeños (caché para un sitio web de bajo tráfico, pequeña cola de tareas):

  • CPU: 1-2 vCPU (un procesador moderno, por ejemplo, Intel Xeon E3/E5 o AMD EPYC). Redis es de un solo hilo para la mayoría de las operaciones, pero las tareas en segundo plano (persistence, AOF rewrite) pueden usar otros núcleos.
  • RAM: 1-2 GB. Esto será suficiente para almacenar varios cientos de megabytes de datos de Redis, más el sistema operativo y otros servicios básicos.
  • Disco: 20-40 GB SSD. El SSD es crítico para la escritura rápida de datos persistentes (instantáneas RDB, registro AOF) y para la carga rápida de datos al reiniciar.
  • Red: 100 Mbps - 1 Gbps. Para la mayoría de los casos, 100 Mbps es suficiente, pero para aplicaciones de alta carga con un gran número de solicitudes o transferencia de grandes objetos de datos, se requerirá 1 Gbps.

Plan de VPS recomendado para la mayoría de las tareas (tráfico medio, varios gigabytes de datos, colas, pub/sub):

  • CPU: 2-4 vCPU. Proporcionará un rendimiento suficiente para procesar solicitudes y operaciones en segundo plano.
  • RAM: 4-8 GB. Permitirá almacenar varios gigabytes de datos de Redis, dejando un margen para el sistema operativo y las cargas máximas.
  • Disco: 80-160 GB SSD. Para volúmenes de datos más grandes y un mejor rendimiento de persistencia.
  • Red: 1 Gbps. Para garantizar un alto ancho de banda.

Para estas características, se puede optar por un VPS con las características indicadas, que permitirá utilizar Redis de manera eficiente como caché, bróker de mensajes o base de datos principal para muchas aplicaciones.

Cuándo se necesita un servidor dedicado y no un VPS:

Un servidor dedicado se vuelve necesario cuando:

  • El volumen de datos excede la RAM disponible: Si planea almacenar decenas o cientos de gigabytes de datos en Redis.
  • Se requiere el máximo rendimiento: Para sistemas de muy alta carga, donde cada milisegundo de latencia es crucial, así como la ausencia total del "efecto de vecino ruidoso" (noisy neighbor effect), inherente a la virtualización.
  • Altos requisitos de seguridad y aislamiento: Un servidor dedicado proporciona aislamiento físico completo.
  • Requisitos de hardware específicos: Por ejemplo, tipos de discos especiales (NVMe), un gran número de núcleos de CPU o volúmenes muy grandes de RAM.

Ubicación: cómo influye

La elección de la ubicación geográfica del VPS tiene una influencia directa en la latencia entre su aplicación y el servidor Redis. Cuanto más cerca esté el servidor Redis de sus usuarios o del servidor de su aplicación, menor será la latencia. Para las aplicaciones web, esto significa una respuesta de página más rápida; para los servidores de juegos, una jugabilidad más fluida; para los sistemas de procesamiento de datos, una ejecución de tareas más rápida.

Si su aplicación y Redis se encuentran en el mismo centro de datos o al menos en el mismo país, la latencia será mínima (unidades de milisegundos). Si están ubicados en diferentes continentes, la latencia puede alcanzar cientos de milisegundos, lo cual es inaceptable para muchos escenarios de uso de Redis.

Preparación del servidor

Esquema: Preparación del servidor
Esquema: Preparación del servidor

Antes de instalar Redis, es necesario realizar una configuración básica de seguridad y actualizar el sistema operativo. Utilizaremos Ubuntu 24.04 LTS (Noble Numbat), que será relevante en 2026 y es una excelente opción para servidores de producción estables.

1. Conexión al servidor

Conéctese a su VPS por SSH, utilizando las credenciales proporcionadas por el proveedor. Normalmente, es el usuario root y una contraseña, o una clave SSH.


ssh root@ВАШ_IP_АДРЕС

2. Actualización del sistema

Es importante actualizar todos los paquetes a las últimas versiones para garantizar la seguridad y estabilidad del sistema.


sudo apt update && sudo apt upgrade -y

Este comando primero actualiza la lista de paquetes disponibles (apt update) y luego instala todas las actualizaciones disponibles (apt upgrade -y, donde -y confirma automáticamente todas las solicitudes).

3. Creación de un nuevo usuario con permisos sudo

Trabajar como usuario root no es seguro. Crearemos un nuevo usuario y le otorgaremos permisos sudo.


sudo adduser redisadmin

Siga las instrucciones para establecer una contraseña y completar la información del usuario (puede dejarla en blanco). Luego, añada el nuevo usuario al grupo sudo:


sudo usermod -aG sudo redisadmin

Ahora puede cambiar al nuevo usuario y continuar trabajando:


su - redisadmin

O abrir una nueva conexión SSH con este usuario.

4. Configuración de claves SSH (recomendado)

El uso de claves SSH en lugar de contraseñas aumenta significativamente la seguridad. Si aún no las utiliza, genere un par de claves en su máquina local y copie la clave pública al servidor.

En su máquina local:


ssh-keygen -t rsa -b 4096
ssh-copy-id redisadmin@ВАШ_IP_АДРЕС

Después de copiar la clave con éxito, desactive la autenticación por contraseña en el archivo /etc/ssh/sshd_config en el servidor. Abra el archivo para editarlo:


sudo nano /etc/ssh/sshd_config

Encuentre las líneas y modifíquelas/añádalas:


# Desactivar el inicio de sesión para root
PermitRootLogin no

# Desactivar la autenticación por contraseña
PasswordAuthentication no

# Habilitar la autenticación por clave
PubkeyAuthentication yes

Guarde los cambios (Ctrl+O, Enter) y salga (Ctrl+X). Luego, reinicie el servicio SSH:


sudo systemctl restart sshd

IMPORTANTE: Antes de deshabilitar la autenticación por contraseña, asegúrese de poder iniciar sesión con la clave SSH abriendo una nueva conexión en otra terminal. Si el inicio de sesión con clave no funciona, corre el riesgo de perder el acceso al servidor.

5. Configuración del firewall (UFW)

Uncomplicated Firewall (UFW) es una interfaz fácil de usar para iptables. Permite restringir el acceso a los puertos de su servidor.

Permita las conexiones SSH (normalmente el puerto 22):


sudo ufw allow OpenSSH

Si Redis solo estará disponible localmente (recomendado), no necesita abrir su puerto. Sin embargo, si planea acceder desde otros servidores en su red (por ejemplo, dentro de la red privada de su proveedor de VPS), abra el puerto de Redis (por defecto 6379) para una dirección IP o subred específica:


# Permitir acceso a Redis desde una IP específica
sudo ufw allow from 192.168.1.100 to any port 6379

# O para toda la subred privada
sudo ufw allow from 10.0.0.0/8 to any port 6379

Active el firewall:


sudo ufw enable

Confirme la acción introduciendo y. Verifique el estado del firewall:


sudo ufw status

6. Instalación de Fail2ban

Fail2ban escanea los registros y bloquea las direcciones IP que muestran signos de ataques maliciosos (por ejemplo, múltiples intentos fallidos de inicio de sesión SSH). Esto es una capa adicional de seguridad.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Cree una copia del archivo de configuración predeterminado para personalizarlo:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Edite jail.local para ajustar los parámetros de baneo si es necesario. Por ejemplo, puede aumentar bantime (tiempo de baneo) o disminuir maxretry (número de intentos).


sudo nano /etc/fail2ban/jail.local

Encuentre la sección [DEFAULT] y configúrela:


[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5

Reinicie Fail2ban para aplicar los cambios:


sudo systemctl restart fail2ban

Su servidor ahora está protegido de forma básica y listo para la instalación de Redis.

Instalación de software — paso a paso

Esquema: Instalación de software — paso a paso
Esquema: Instalación de software — paso a paso

Instalaremos Redis versión 7.x, que será actual y estable en 2026. Existen dos métodos principales de instalación: desde los repositorios oficiales de Ubuntu o compilando desde el código fuente. Para la mayoría de los usuarios, la instalación desde los repositorios es más sencilla y fiable, proporcionando actualizaciones de seguridad automáticas. Sin embargo, si necesita la versión más reciente o opciones de compilación específicas, la compilación desde el código fuente puede ser preferible. Cubriremos ambas opciones, comenzando con la recomendada.

Opción 1: Instalación de Redis desde los repositorios de Ubuntu (Recomendado)

Este método es sencillo y proporciona una versión estable y probada de Redis. Ubuntu 24.04 LTS, muy probablemente, vendrá con Redis 7.x o una versión más reciente.

Paso 1: Actualización de la lista de paquetes

Asegúrese de que la lista de paquetes esté actualizada para obtener la información más reciente sobre las versiones disponibles de Redis.


sudo apt update
# Actualiza el índice de paquetes de los repositorios

Paso 2: Instalación del servidor Redis

Instale el paquete redis-server. Este comando instalará Redis y todas las dependencias necesarias, y lo configurará como un servicio del sistema.


sudo apt install redis-server -y
# Instala Redis Server y lo inicia automáticamente

Paso 3: Verificación del estado del servicio Redis

Después de la instalación, Redis debería iniciarse automáticamente. Verifiquemos su estado:


sudo systemctl status redis-server
# Verifica si el servicio Redis está en ejecución

La salida debería mostrar "active (running)". Si no es así, intente iniciarlo manualmente:


sudo systemctl start redis-server
# Inicia el servicio Redis

Paso 4: Verificación de la versión de Redis

Asegúrese de que la versión esperada de Redis esté instalada (presumiblemente 7.x).


redis-server --version
# Muestra la versión de Redis instalada

Verá algo como Redis server v=7.x.y sha=...

Paso 5: Verificación de la conexión a Redis

Utilice el cliente redis-cli para verificar la conexión al servidor Redis.


redis-cli ping
# Envía el comando PING al servidor Redis

En respuesta, debería recibir PONG, lo que significa una conexión exitosa.

Opción 2: Compilación de Redis desde el código fuente (Para usuarios avanzados)

Este método permite instalar la versión más reciente de Redis (por ejemplo, Redis 8.x, si está disponible para 2026) o utilizar opciones de compilación específicas. Requiere la instalación de herramientas de compilación.

Paso 1: Instalación de las herramientas de compilación necesarias

Instale los paquetes necesarios para compilar software desde el código fuente.


sudo apt install build-essential tcl -y
# Instala compiladores (gcc, make) y tcl para pruebas

Paso 2: Descarga del código fuente de Redis

Vaya a un directorio temporal y descargue la última versión estable de Redis desde el sitio web oficial. Por ejemplo, usaremos la versión 7.2.4, pero puede reemplazarla por la más actual para 2026.


cd /tmp
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
# Descarga el archivo con el código fuente de Redis
tar xzf redis-7.2.4.tar.gz
# Descomprime el archivo
cd redis-7.2.4
# Cambia al directorio del código fuente

Paso 3: Compilación e instalación de Redis

Compile Redis. Utilice make y luego make install para instalar los archivos ejecutables en los directorios del sistema.


make
# Compila Redis
sudo make install
# Instala Redis en /usr/local/bin

Paso 4: Configuración de Redis como servicio systemd

Para que Redis se inicie como un servicio del sistema y se gestione a través de systemctl, es necesario crear archivos de configuración. Ejecute un script especial que le ayudará con esto.


sudo ./utils/install_server.sh
# Ejecuta un script interactivo para configurar systemd y los archivos de configuración

Siga las instrucciones del script. Para la mayoría de las preguntas, puede presionar Enter, aceptando los valores predeterminados (por ejemplo, puerto 6379, archivo de configuración /etc/redis/6379.conf, archivo de registro /var/log/redis_6379.log, directorio de datos /var/lib/redis/6379). Una vez completado, el script iniciará Redis y configurará su inicio automático.

Paso 5: Verificación del estado del servicio Redis

Verifique que Redis esté en ejecución y funcionando:


sudo systemctl status redis_6379
# Verifica el estado del servicio Redis creado por el script (puede ser redis-server o redis_6379)

O, si el script creó un servicio con el nombre redis-server:


sudo systemctl status redis-server

Paso 6: Verificación de la versión y conexión


redis-cli ping
# Verifica la conexión a Redis
redis-cli info server | grep redis_version
# Muestra la versión de Redis

Ahora Redis está instalado. Pasemos a su configuración detallada para garantizar la seguridad y un rendimiento óptimo.

Configuración

Diagrama: Configuración
Diagrama: Configuración

El archivo de configuración de Redis, por lo general, se encuentra en /etc/redis/redis.conf (para instalaciones desde repositorios) o /etc/redis/6379.conf (si utilizó el script install_server.sh). Usaremos redis.conf para todos los ejemplos.

Abra el archivo de configuración para editarlo:


sudo nano /etc/redis/redis.conf

1. Seguridad

1.1. Enlace a la dirección IP (bind)

Por defecto, Redis puede escuchar todas las interfaces de red disponibles. Esto es peligroso. Restrinja su escucha solo a la interfaz local (127.0.0.1) si su aplicación se ejecuta en el mismo servidor, o a una dirección IP privada específica si Redis es accesible desde la red local.

Busque la línea bind 127.0.0.1 -::1 y asegúrese de que esté descomentada. Si necesita acceso desde otros servidores en la red privada, especifique sus direcciones IP o la IP privada de su servidor Redis.


# Por defecto, escuchar solo localhost
bind 127.0.0.1 -::1

# Si necesita escuchar una IP privada, por ejemplo, 10.0.0.5
# bind 10.0.0.5

# Si necesita escuchar varias IPs
# bind 127.0.0.1 10.0.0.5

# Comente esta línea si desea que Redis escuche todas las interfaces (ALTAMENTE NO RECOMENDADO SIN CONFIGURAR UN CORTAFUEGOS)
# bind 0.0.0.0

Para la mayoría de los casos, cuando la aplicación y Redis se encuentran en el mismo VPS, bind 127.0.0.1 -::1 es la opción más segura.

1.2. Establecimiento de contraseña (requirepass)

Redis no tiene autenticación por defecto. Establecer una contraseña es una medida de seguridad crucial.

Busque la línea que comienza con # requirepass foobared. Descoméntela y reemplace foobared por una contraseña fuerte y compleja. Genere contraseñas de al menos 32 caracteres.


requirepass ВАШ_СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_REDIS

Importante: Nunca utilice contraseñas sencillas. Anote la contraseña en un lugar seguro o utilice un gestor de contraseñas.

1.3. Renombrar o deshabilitar comandos peligrosos (rename-command)

Algunos comandos de Redis (por ejemplo, FLUSHALL, FLUSHDB, KEYS, CONFIG) pueden ser peligrosos si se usan incorrectamente. Puede renombrarlos o deshabilitarlos por completo.


# Deshabilitar un comando (hacerlo no disponible)
rename-command FLUSHALL ""
rename-command FLUSHDB ""

# Renombrar un comando (hacerlo disponible bajo otro nombre)
rename-command CONFIG CONFIG_HIDDEN

Si deshabilita un comando, asegúrese de que sus aplicaciones no dependan de él, o de que utilicen sus equivalentes seguros.

2. Rendimiento y gestión de memoria

2.1. Cantidad máxima de memoria (maxmemory)

Redis almacena datos en la RAM. Establezca un límite de memoria para evitar que se agote toda la RAM disponible y que el servidor se bloquee. Se recomienda asignar entre el 50% y el 70% de la RAM total disponible en su VPS para Redis, a fin de dejar espacio para el sistema operativo y otros procesos.

Por ejemplo, si tiene 4GB de RAM, puede asignar 2.5GB para Redis.


maxmemory 2.5gb
2.2. Política de expulsión (maxmemory-policy)

Cuando Redis alcanza maxmemory, necesita decidir qué datos eliminar para liberar espacio para los nuevos. Existen diferentes políticas de expulsión:

  • noeviction: No se aceptan nuevas entradas si la memoria está llena.
  • allkeys-lru: Elimina las claves menos recientemente usadas (LRU) de todo el conjunto.
  • volatile-lru: Elimina las claves LRU solo de aquellas que tienen TTL (tiempo de vida).
  • allkeys-lfu: Elimina las claves menos frecuentemente usadas (LFU) de todo el conjunto.
  • volatile-lfu: Elimina las claves LFU solo de aquellas que tienen TTL.
  • allkeys-random: Elimina claves aleatorias de todo el conjunto.
  • volatile-random: Elimina claves aleatorias solo de aquellas que tienen TTL.
  • volatile-ttl: Elimina las claves con el TTL restante más bajo.

Para una caché, allkeys-lru o allkeys-lfu suelen ser buenas opciones.


maxmemory-policy allkeys-lru
2.3. Persistencia (Persistence)

Redis puede guardar datos en el disco para que no se pierdan al reiniciar el servidor. Hay dos mecanismos principales:

  • RDB (Redis Database Backup): Realiza instantáneas de los datos a intervalos definidos. Es rápido para la recuperación, pero puede llevar a la pérdida de datos escritos entre instantáneas.
    
    # Guardar si al menos 10000 claves cambiaron en 60 segundos
    save 60 10000
    # Guardar si al menos 1000 claves cambiaron en 300 segundos
    save 300 1000
    # Guardar si al menos 1 clave cambió en 900 segundos
    save 900 1
    
  • AOF (Append Only File): Registra cada operación de escritura en un archivo de log. Proporciona una mejor persistencia de datos, pero puede ser más lento y consumir más espacio en disco.
    
    appendonly yes
    appendfsync everysec # Guardar AOF en disco cada segundo
    

Puede utilizar ambos mecanismos simultáneamente. Para una máxima persistencia de datos, se recomienda AOF con appendfsync everysec. Para una caché pura que puede ser reconstruida desde otra fuente, la persistencia puede deshabilitarse (comentar todas las líneas save y establecer appendonly no).

3. Registro (Logging)

Asegúrese de que el registro (logging) esté configurado para rastrear los eventos de Redis.


logfile /var/log/redis/redis-server.log
loglevel notice

Asegúrese de que el directorio /var/log/redis/ exista y que Redis tenga permisos de escritura sobre él. Si no, créelo:


sudo mkdir -p /var/log/redis
sudo chown redis:redis /var/log/redis

4. Guardar y reiniciar Redis

Después de realizar todos los cambios en redis.conf, guarde el archivo (Ctrl+O, Enter) y salga (Ctrl+X). Luego, reinicie el servicio de Redis para aplicar las nuevas configuraciones.


sudo systemctl restart redis-server
# Reinicia el servicio de Redis

5. Verificación de la operatividad con la nueva configuración

Después de reiniciar, verifique el estado del servicio y asegúrese de que Redis esté funcionando sin errores.


sudo systemctl status redis-server

Ahora intente conectarse con la contraseña a través de redis-cli:


redis-cli -a ВАШ_СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_REDIS ping
# Se conecta a Redis con autenticación y envía PING

Debería recibir PONG. Si ha renombrado o deshabilitado comandos, asegúrese de que se comporten como se espera.


# Intento de ejecutar un comando deshabilitado (debería generar un error)
redis-cli -a ВАШ_СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_REDIS FLUSHALL

# Intento de ejecutar un comando renombrado (debería generar un error)
redis-cli -a ВАШ_СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_REDIS CONFIG GET 
# Llamada correcta al comando renombrado
redis-cli -a ВАШ_СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_REDIS CONFIG_HIDDEN GET 

Si Redis está configurado para escuchar una IP privada, asegúrese de poder conectarse desde otro servidor utilizando esa IP y el puerto 6379, así como la contraseña.

Copias de seguridad y mantenimiento

Diagrama: Copias de seguridad y mantenimiento
Diagrama: Copias de seguridad y mantenimiento

Las copias de seguridad fiables y el mantenimiento regular son aspectos clave de cualquier sistema en producción. Para Redis, esto es especialmente importante, ya que los datos se almacenan en la memoria RAM y su pérdida puede ser catastrófica.

1. Qué respaldar

Para Redis, es necesario hacer copias de seguridad regularmente de:

  • Archivos de persistencia de Redis:
    • dump.rdb: Archivo de instantánea de la base de datos RDB. Contiene el estado completo de los datos de Redis en el momento de la instantánea.
    • appendonly.aof: Archivo AOF. Contiene una secuencia de comandos que pueden reproducirse para restaurar el estado.
    Estos archivos suelen encontrarse en el directorio de datos de Redis, especificado en dir en redis.conf (por ejemplo, /var/lib/redis/6379 o /var/lib/redis).
  • Archivos de configuración de Redis:
    • /etc/redis/redis.conf (o /etc/redis/6379.conf): Archivo de configuración principal.
  • Otros archivos importantes: Si utiliza Redis para fines específicos, asegúrese de hacer copias de seguridad de todos los scripts, configuraciones o datos relacionados.

2. Script sencillo de copia de seguridad automática

Crearemos un script sencillo que copiará los archivos de persistencia y configuración de Redis. Este script se puede ejecutar programado usando cron.

Cree un directorio para las copias de seguridad:


sudo mkdir -p /var/backups/redis
sudo chown redisadmin:redisadmin /var/backups/redis

Cree el script de copia de seguridad:


sudo nano /usr/local/bin/backup_redis.sh

Pegue el siguiente contenido. Asegúrese de que las rutas a los archivos RDB/AOF y de configuración coincidan con su instalación.


#!/bin/bash

# Configuración
REDIS_DATA_DIR="/var/lib/redis" # Directorio donde se encuentran dump.rdb y appendonly.aof
REDIS_CONF_FILE="/etc/redis/redis.conf" # Archivo de configuración de Redis
BACKUP_DIR="/var/backups/redis" # Directorio para almacenar las copias de seguridad
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
BACKUP_NAME="redis_backup_${TIMESTAMP}.tar.gz"

# Verificar que Redis esté en ejecución y guardar RDB antes de la copia de seguridad
echo "Saving Redis RDB to disk..."
redis-cli -a ВАШ_СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_REDIS BGSAVE
# Damos a Redis un poco de tiempo para guardar
sleep 10

echo "Starting Redis backup..."

# Creación del archivo
sudo tar -czf "${BACKUP_DIR}/${BACKUP_NAME}" \
    -C "${REDIS_DATA_DIR}" dump.rdb appendonly.aof \
    "${REDIS_CONF_FILE}" \
    --remove-files-from "${REDIS_DATA_DIR}" # Opcional: si desea eliminar los RDB/AOF antiguos después de la copia

# Verificación de éxito
if [ $? -eq 0 ]; then
    echo "Redis backup created successfully: ${BACKUP_DIR}/${BACKUP_NAME}"
    # Limpieza de copias de seguridad antiguas (por ejemplo, mantener solo las de los últimos 7 días)
    find "${BACKUP_DIR}" -type f -name 'redis_backup_*.tar.gz' -mtime +7 -delete
    echo "Old backups cleaned up."
else
    echo "Error creating Redis backup."
fi

# Si utiliza AOF, puede forzar su reescritura para reducir el tamaño
# echo "Rewriting AOF file..."
# redis-cli -a ВАШ_СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_REDIS BGREWRITEAOF

echo "Backup script finished."

Haga el script ejecutable:


sudo chmod +x /usr/local/bin/backup_redis.sh

3. Configuración de Cron para la ejecución automática de copias de seguridad

Agregue el script a cron para que se ejecute automáticamente. Por ejemplo, todos los días a las 03:00 de la mañana.


sudo crontab -e

Agregue la siguiente línea al final del archivo:


0 3 * * * /usr/local/bin/backup_redis.sh >> /var/log/redis_backup.log 2>&1

Esta entrada significa: "A las 03:00 todos los días, todos los meses, todos los días de la semana, ejecutar /usr/local/bin/backup_redis.sh y redirigir toda la salida a /var/log/redis_backup.log".

4. Dónde almacenar las copias de seguridad (S3 externo / VPS separado)

Almacenar las copias de seguridad en el mismo servidor que los datos originales es arriesgado. Si el servidor falla (fallo de hardware, robo, incendio), perderá tanto los datos como las copias de seguridad. Siempre almacene las copias de seguridad críticas de forma remota:

  • Almacenamiento en la nube (compatible con S3): Amazon S3, DigitalOcean Spaces, Backblaze B2 o servicios similares. Para ello, puede modificar el script de copia de seguridad añadiendo el comando aws s3 cp (si AWS CLI está instalado) o rclone copy para subir el archivo a la nube.
    
    # Ejemplo de adición al script backup_redis.sh
    # Después de crear el archivo con éxito:
    # aws s3 cp "${BACKUP_DIR}/${BACKUP_NAME}" s3://your-s3-bucket/redis-backups/
    
  • VPS separado o servidor dedicado: Puede usar rsync o scp para copiar las copias de seguridad a otro de sus servidores.
    
    # Ejemplo de adición al script backup_redis.sh
    # Después de crear el archivo con éxito:
    # scp "${BACKUP_DIR}/${BACKUP_NAME}" user@remote_server:/path/to/remote/backups/
    
  • Herramientas especializadas: Como Restic o BorgBackup, que proporcionan deduplicación, cifrado y copias de seguridad incrementales. Requieren una configuración más compleja, pero son muy eficientes.

5. Actualizaciones: rolling vs maintenance window

La actualización de Redis y del sistema operativo es una parte importante del mantenimiento. Enfoques para la actualización:

  • Maintenance Window (Ventana de mantenimiento): Un enfoque tradicional en el que el servidor o la aplicación se desconecta temporalmente, se realizan las actualizaciones y luego todo vuelve a funcionar.
    • Ventajas: Más fácil de implementar, menor riesgo de problemas imprevistos durante la operación.
    • Desventajas: Tiempo de inactividad del servicio.
    Para Redis, esto puede incluir detener el servicio, actualizar, verificar y reiniciar.
  • Rolling Updates (Actualizaciones graduales): Se aplica en configuraciones de clúster o de alta disponibilidad, donde los nodos individuales se actualizan uno por uno, sin interrumpir el funcionamiento de todo el servicio.
    • Ventajas: Sin tiempo de inactividad.
    • Desventajas: Significativamente más complejo de implementar, requiere múltiples instancias de Redis y mecanismos de replicación/tolerancia a fallos (Redis Sentinel, Redis Cluster).

Para una única instancia de Redis en un VPS, como en nuestro caso, se suele utilizar el enfoque de ventana de mantenimiento. Planifique las actualizaciones para momentos de mínima carga. ¡Siempre haga una copia de seguridad completa antes de actualizar!

Proceso de actualización de Redis (desde repositorios):


sudo systemctl stop redis-server # Detener Redis
sudo apt update && sudo apt upgrade -y # Actualizar el sistema y Redis
sudo systemctl start redis-server # Iniciar Redis
sudo systemctl status redis-server # Verificar estado

Al compilar desde el código fuente, el proceso de actualización incluirá la descarga de nuevas fuentes, la compilación y la reinstalación, y luego el reinicio del servicio.

Solución de problemas + Preguntas frecuentes

En esta sección, abordaremos los problemas comunes que pueden surgir al trabajar con Redis y proporcionaremos respuestas a las preguntas frecuentes.

1. Redis no se inicia o no responde

Error: Después de la instalación o el reinicio, systemctl status redis-server muestra "failed" o "inactive".

Qué verificar:

  • Registros de Redis: El primer lugar para buscar pistas. Verifique el archivo de registros de Redis especificado en redis.conf (por defecto /var/log/redis/redis-server.log o /var/log/redis_6379.log).
  • Registros del sistema: Verifique los registros de systemd: sudo journalctl -u redis-server.service.
  • Archivo de configuración: Asegúrese de que no haya errores de sintaxis en /etc/redis/redis.conf. Cualquier error tipográfico puede impedir el inicio.
  • Disponibilidad del puerto: Es posible que otro proceso ya esté ocupando el puerto 6379. Verifique: sudo ss -tulpn | grep 6379.
  • Permisos de acceso: Asegúrese de que el usuario de Redis tenga permisos para leer el archivo de configuración, escribir en el directorio de registros y en el directorio de datos (dir en redis.conf).

Cómo solucionarlo: Corrija los errores en la configuración, libere el puerto o cambie el puerto de Redis, otorgue los permisos necesarios. Después de cada cambio, intente reiniciar Redis: sudo systemctl restart redis-server.

2. "Connection refused" al conectarse a Redis

Error: Al intentar conectarse con redis-cli o desde una aplicación, recibe "Could not connect to Redis at 127.0.0.1:6379: Connection refused".

Qué verificar:

  • Estado de Redis: Asegúrese de que Redis esté en ejecución: sudo systemctl status redis-server.
  • Configuración de bind: Verifique el parámetro bind en redis.conf. Si está configurado como 127.0.0.1, solo podrá conectarse desde el mismo servidor. Si intenta conectarse desde otro servidor, bind debe configurarse con la dirección IP privada del servidor Redis o 0.0.0.0 (lo que requiere una configuración cuidadosa del firewall).
  • Firewall (UFW): Asegúrese de que el firewall no esté bloqueando la conexión al puerto 6379. Verifique el estado de UFW: sudo ufw status. Si Redis debe ser accesible desde otras IP, asegúrese de que la regla allow 6379 o allow from X.X.X.X to any port 6379 esté activa.

Cómo solucionarlo: Inicie Redis, ajuste bind en redis.conf y/o las reglas del firewall. No olvide reiniciar Redis después de cambiar la configuración: sudo systemctl restart redis-server.

3. "NOAUTH Authentication required"

Error: Recibe este error al intentar ejecutar comandos de Redis.

Qué verificar: Ha configurado una contraseña (requirepass) en redis.conf, pero no la ha proporcionado al conectarse.

Cómo solucionarlo: Proporcione la contraseña al conectarse a través de redis-cli -a SU_CONTRASEÑA o configure su aplicación para usar la contraseña.

4. Redis consume demasiada memoria

Error: Redis ocupa más memoria de lo esperado o se acerca al límite de maxmemory.

Qué verificar:

  • maxmemory y maxmemory-policy: Asegúrese de que estos parámetros estén configurados correctamente en redis.conf.
  • Uso de memoria: Utilice el comando redis-cli info memory para obtener información detallada sobre el consumo de memoria de Redis. Preste atención a used_memory_human y used_memory_peak_human.
  • Estructuras de datos: Verifique qué estructuras de datos se almacenan en Redis y qué tan grandes son. El comando redis-cli --scan o MEMORY USAGE key (Redis 4.0+) puede ayudar.
  • Fragmentación de memoria: mem_fragmentation_ratio en redis-cli info memory. Un coeficiente alto (más de 1.5) puede indicar fragmentación, lo que aumenta el consumo de memoria.

Cómo solucionarlo: Aumente maxmemory (si hay RAM disponible), cambie maxmemory-policy, optimice el almacenamiento de datos en Redis, utilice estructuras de datos más compactas. Reiniciar Redis puede reducir temporalmente la fragmentación.

5. ¿Qué configuración mínima de VPS es adecuada?

Para tareas básicas, como el almacenamiento en caché de un sitio web pequeño o colas pequeñas, la configuración mínima es de 1 vCPU, 1 GB de RAM y 20 GB de SSD. Esto será suficiente para Redis, que almacena varios cientos de megabytes de datos. Sin embargo, para proyectos más serios, se recomiendan 2 vCPU, 4 GB de RAM y 80 GB de SSD.

6. ¿Qué elegir: VPS o dedicado para esta tarea?

La elección entre un VPS y un servidor dedicado depende de la escala de su tarea, los requisitos de rendimiento y el presupuesto. Para la mayoría de los proyectos medianos y pequeños (sitios web, SaaS pequeños, servidores de juegos para amigos, nodos personales), un VPS será una solución más que suficiente y económicamente ventajosa. Un servidor dedicado se vuelve necesario cuando el volumen de datos en Redis se cuenta en decenas de gigabytes, se requiere una previsibilidad absoluta del rendimiento sin "ruido de vecinos", o cuando tiene requisitos de hardware muy específicos.

7. ¿Cómo monitorear Redis?

Para monitorear Redis, puede usar el comando redis-cli info (por ejemplo, redis-cli info memory, redis-cli info clients, redis-cli info persistence). Para un monitoreo más avanzado, se recomienda usar herramientas como Prometheus con Grafana, utilizando el exportador de Redis, o soluciones especializadas de monitoreo de servidores que recopilan métricas de Redis (por ejemplo, Netdata).

8. ¿Redis Cluster vs Redis Sentinel?

Redis Sentinel proporciona alta disponibilidad, cambiando automáticamente a una réplica en caso de fallo del maestro. Está diseñado para la tolerancia a fallos. Redis Cluster, por otro lado, proporciona escalabilidad y alta disponibilidad, permitiendo distribuir datos entre varios nodos y fragmentarlos automáticamente. Si solo necesita tolerancia a fallos para una única instancia de Redis, Sentinel es su elección. Si necesita escalar datos y consultas a través de múltiples nodos, use Cluster.

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

¡Felicidades! Ha instalado y configurado Redis con éxito en su VPS o servidor dedicado, asegurando un nivel básico de seguridad y rendimiento. Ahora tiene una potente herramienta para el almacenamiento en caché, la gestión de sesiones, las colas de mensajes y muchas otras tareas, lista para integrarse con sus aplicaciones.

Los siguientes pasos para optimizar y escalar su instalación de Redis pueden incluir:

  • Configuración del monitoreo: Integre Redis con un sistema de monitoreo (por ejemplo, Prometheus + Grafana, Netdata) para rastrear el uso de memoria, el número de solicitudes, las latencias y otras métricas clave. Esto ayudará a identificar problemas antes de que afecten a sus usuarios.
  • Optimización del rendimiento de la aplicación: Asegúrese de que su aplicación utilice Redis de manera eficiente, minimizando el número de solicitudes, utilizando las estructuras de datos correctas y evitando operaciones de bloqueo prolongadas.
  • Escalabilidad y alta disponibilidad: Si su proyecto crece, considere configurar Redis Sentinel para la tolerancia a fallos automática o Redis Cluster para la escalabilidad horizontal y la distribución de carga.

Continúe experimentando con las diversas funciones de Redis e integrándolo en sus proyectos para liberar todo el potencial de esta increíble herramienta.

¿Te fue útil esta guía?

Tus comentarios nos ayudan a mejorar nuestras guías.

Compartir esta publicación:

Envía esta guía a alguien a quien pueda resultarle útil.

Telegram VKVK WhatsApp Facebook LinkedIn XX

instalación y configuración de Redis en VPS: seguridad y alto rendimiento
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.