15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
31.10.2024
1 +1

Como Instalar e Configurar Redis no Linux: Um Guia Completo Passo a Passo

Redis é um poderoso armazenamento de estrutura de dados em memória, de código aberto, amplamente utilizado como banco de dados, cache e intermediário de mensagens. Renomado pelo seu desempenho excepcional e versatilidade, Redis é a solução preferida para desenvolvedores que procuram acelerar dramaticamente as aplicações armazenando em cache dados frequentemente solicitados, gerenciando sessões e tratando análises em tempo real. Quer esteja executando uma aplicação web de alto tráfego num plano de VPS Hosting ou gerenciando uma infraestrutura dedicada, este guia abrangente o orienta em cada etapa da instalação, configuração e segurança do Redis num sistema Linux.

O que é Redis e por que deveria usá-lo?

Antes de mergulhar no processo de instalação, vale a pena entender o que torna Redis tão popular:

  • Armazenamento em memória: Redis armazena dados em RAM, tornando as operações de leitura e escrita extremamente rápidas — frequentemente completadas em menos de um milissegundo.
  • Estruturas de dados versáteis: Suporta strings, hashes, listas, conjuntos, conjuntos ordenados, bitmaps e muito mais.
  • Opções de persistência: Apesar de ser em memória, Redis pode persistir dados em disco para sobreviver a reinicializações.
  • Mensagens Pub/Sub: Redis suporta padrões de mensagens publicar/subscrever para comunicação em tempo real entre serviços.
  • Amplo suporte de linguagem: Bibliotecas de cliente oficiais existem para Python, PHP, Node.js, Java, Ruby, Go e muitas outras.

Redis é especialmente valioso em ambientes onde o desempenho da aplicação é crítico — por exemplo, quando seu backend está hospedado num Servidor Dedicado servindo milhões de solicitações por dia.

Pré-requisitos

Antes de começar, certifique-se de que tem:

  • Um servidor Linux executando Ubuntu/Debian ou CentOS/RHEL
  • Acesso root ou sudo ao servidor
  • Uma compreensão básica da linha de comando Linux
  • Uma conexão ativa à Internet para descarregar pacotes

Passo 1: Atualizar o seu Sistema

Comece sempre atualizando o índice de pacotes do seu sistema e atualizando os pacotes instalados para as suas versões mais recentes. Isto garante compatibilidade e segurança:

sudo apt update && sudo apt upgrade -y

Para sistemas CentOS/RHEL:

sudo yum update -y

Manter o seu servidor atualizado é uma prática fundamental de segurança, especialmente em ambientes de produção.

Passo 2: Instalar Redis

A maioria das principais distribuições Linux inclui Redis nos seus repositórios de pacotes oficiais, tornando a instalação simples.

Em Ubuntu / Debian

sudo apt install redis-server -y

Em CentOS / RHEL

Os sistemas CentOS/RHEL requerem que o repositório EPEL (Extra Packages for Enterprise Linux) seja ativado primeiro:

sudo yum install epel-release -y
sudo yum install redis -y

> Nota: Em versões mais recentes do CentOS/RHEL (8+), pode usar dnf em vez de yum:

> “`bash

> sudo dnf install redis -y

> “`

Passo 3: Verificar a Instalação

Após a conclusão da instalação, confirme que Redis foi instalado corretamente verificando a sua versão:

redis-server --version

Saída esperada (exemplo):

Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=...

Se vir um número de versão, Redis foi instalado com sucesso no seu sistema.

Passo 4: Iniciar e Ativar o Serviço Redis

Após a instalação, precisa iniciar o serviço Redis e configurá-lo para ser lançado automaticamente no arranque do sistema.

Em Ubuntu / Debian

sudo systemctl start redis
sudo systemctl enable redis

Em CentOS / RHEL

sudo systemctl start redis
sudo systemctl enable redis

Verificar se Redis está em Execução

sudo systemctl status redis

Saída esperada:

● redis.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis.service; enabled)
   Active: active (running) since ...

Um estado active (running) verde confirma que Redis está a funcionar corretamente.

Passo 5: Configurar Redis

O comportamento do Redis é controlado pelo seu ficheiro de configuração principal:

  • Ubuntu/Debian: /etc/redis/redis.conf
  • CentOS/RHEL: /etc/redis.conf

Abra o ficheiro de configuração com um editor de texto:

sudo nano /etc/redis/redis.conf

Abaixo estão as opções de configuração mais importantes que deve rever e ajustar.

5.1 Definir uma Palavra-passe (Autenticação)

Por padrão, Redis não requer autenticação. Para qualquer ambiente de produção, definir uma palavra-passe forte é essencial:

Encontre a linha contendo # requirepass e atualize-a:

requirepass your_strong_password_here

Escolha uma palavra-passe longa e gerada aleatoriamente. Redis é extremamente rápido, o que significa que ataques de força bruta podem tentar centenas de milhares de suposições por segundo sem limitação de taxa.

5.2 Vincular Endereço IP

Por padrão, Redis vincula-se apenas a 127.0.0.1 (localhost), o que impede o acesso externo. Esta é a configuração padrão mais segura.

Se a sua aplicação precisar de se conectar ao Redis a partir de outro servidor, pode vincular-se a um endereço IP adicional:

bind 127.0.0.1 192.168.1.100

> Aviso de Segurança: Nunca vincule Redis a 0.0.0.0 (todas as interfaces) num servidor voltado para o público sem regras de firewall adequadas. As instâncias Redis expostas são um vetor de ataque comum.

5.3 Alterar a Porta Padrão

Redis escuta na porta 6379 por padrão. Alterar esta porta adiciona uma camada de obscuridade:

port 6380

Lembre-se de atualizar as suas regras de firewall e strings de conexão de aplicação se alterar a porta.

5.4 Aplicar Alterações de Configuração

Após editar redis.conf, reinicie o serviço Redis para aplicar todas as alterações:

sudo systemctl restart redis

Passo 6: Testar a Instalação do Redis

Use a CLI (Interface de Linha de Comando) Redis integrada para verificar se Redis está funcionando corretamente:

redis-cli

Se definiu uma palavra-passe, autentique-se primeiro:

AUTH your_strong_password_here

Executar um Teste de Ping

ping

Resposta esperada:

PONG

Definir e Recuperar um Par Chave-Valor

SET mykey "Hello, Redis!"
GET mykey

Resposta esperada:

"Hello, Redis!"

Se Redis retornar o valor armazenado corretamente, a sua instalação está totalmente funcional e a base de dados está armazenando e recuperando dados conforme esperado.

Sair da CLI

exit

Passo 7: Configurar Redis como um Daemon em Segundo Plano (Opcional)

Se deseja que Redis seja executado como um processo daemon em segundo plano (em vez de um processo em primeiro plano), configure a opção daemonize em redis.conf:

daemonize yes

Após guardar o ficheiro, reinicie Redis:

sudo systemctl restart redis

Verifique se o serviço está em execução em segundo plano:

sudo systemctl status redis

Também pode confirmar se o processo Redis está ativo usando:

ps aux | grep redis

Passo 8: Ativar Persistência Redis (Opcional mas Recomendado)

Por padrão, Redis armazena dados apenas em memória, o que significa que os dados são perdidos se o servidor reiniciar. Redis fornece dois mecanismos de persistência para resolver isto:

Opção 1: RDB (Redis Database Backup) — Snapshots

RDB cria snapshots de ponto no tempo do seu conjunto de dados em intervalos especificados. Configure-o em redis.conf:

# Save a snapshot if at least 1 key changed in 900 seconds (15 minutes)
save 900 1

# Save a snapshot if at least 10 keys changed in 300 seconds (5 minutes)
save 300 10

# Save a snapshot if at least 10,000 keys changed in 60 seconds
save 60 10000

RDB é eficiente para backups e recuperação de desastres, mas pode perder dados escritos entre snapshots.

Opção 2: AOF (Append Only File) — Registo de Escrita

AOF regista cada operação de escrita num ficheiro, fornecendo garantias de durabilidade muito mais fortes:

appendonly yes

Também pode configurar a política de sincronização AOF:

# Options: always, everysec, no
appendfsync everysec
  • always — Mais seguro, mas mais lento (sincroniza após cada escrita)
  • everysec — Bom equilíbrio entre desempenho e segurança (sincroniza a cada segundo)
  • no — Mais rápido, mas depende do cronograma de flush do SO

> Melhor Prática: Para ambientes de produção, use RDB e AOF juntos para máxima durabilidade de dados.

Passo 9: Proteger Redis — Melhores Práticas

A segurança é crítica para qualquer implementação Redis. Siga estas melhores práticas para fortalecer a sua instância Redis:

1. Ativar Autenticação por Palavra-passe

Conforme descrito no Passo 5.1, sempre defina um valor requirepass forte em redis.conf.

2. Restringir Acesso à Rede

  • Vincule Redis a 127.0.0.1 a menos que o acesso remoto seja explicitamente necessário.
  • Use uma rede privada ou VPN para comunicação Redis entre servidores.

3. Configurar Regras de Firewall

Permita tráfego Redis apenas a partir de endereços IP confiáveis. Usando ufw em Ubuntu:

sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379

Usando firewalld em CentOS/RHEL:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reload

4. Renomear ou Desativar Comandos Perigosos

Redis tem comandos administrativos poderosos (como FLUSHALL, CONFIG, DEBUG) que poderiam ser explorados. Renomeie ou desative-os em redis.conf:

rename-command FLUSHALL ""
rename-command CONFIG "SECURE_CONFIG_XYZ123"
rename-command DEBUG ""

5. Executar Redis como um Utilizador Não-Root

O pacote Redis na maioria das distribuições já cria um utilizador de sistema dedicado redis. Certifique-se de que Redis nunca é executado como root.

6. Manter Redis Atualizado

Atualize regularmente Redis para corrigir vulnerabilidades conhecidas:

sudo apt update && sudo apt upgrade redis-server -y

Passo 10: Integrar Redis com as suas Aplicações

Com Redis instalado e protegido, pode agora integrá-lo na sua stack de aplicação. Aqui está uma visão geral rápida das integrações de linguagem populares:

Python — redis-py

pip install redis
import redis

r = redis.Redis(host='127.0.0.1', port=6379, password='your_password', decode_responses=True)
r.set('greeting', 'Hello from Python!')
print(r.get('greeting'))

PHP — Extensão phpredis

sudo apt install php-redis -y
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('your_password');
$redis->set('greeting', 'Hello from PHP!');
echo $redis->get('greeting');
?>

Node.js — ioredis

npm install ioredis
const Redis = require('ioredis');
const redis = new Redis({ host: '127.0.0.1', port: 6379, password: 'your_password' });

redis.set('greeting', 'Hello from Node.js!');
redis.get('greeting').then(value => console.log(value));

Redis integra-se perfeitamente com praticamente todos os frameworks web modernos e CMS, incluindo WordPress, Laravel, Django e Express.js — tornando-o uma ferramenta inestimável para a stack de qualquer desenvolvedor.

Casos de Uso Comuns do Redis

Compreender onde Redis se destaca ajuda a obter o máximo da sua implementação:

Caso de UsoDescrição
Armazenamento de SessãoArmazene sessões de utilizador em Redis para acesso rápido e escalável em vários servidores de aplicação
Cache de Base de DadosColoque em cache resultados de consultas SQL dispendiosas para reduzir a carga da base de dados
Limitação de TaxaRastreie contagens de solicitações de API por utilizador/IP usando contadores Redis
Tabelas de Classificação em Tempo RealUse conjuntos ordenados para manter classificações ao vivo
Fila de MensagensUse listas Redis ou Pub/Sub para filas de tarefas leves
Pesquisa de Texto CompletoUse o módulo RediSearch para indexação de pesquisa rápida

Resolução de Problemas Comuns do Redis

Redis Falha ao Iniciar

Verifique os registos para erros:

sudo journalctl -u redis -n 50

As causas comuns incluem conflitos de porta, sintaxe redis.conf incorreta ou memória insuficiente.

Erro de Conexão Recusada

Verifique se Redis está escutando no endereço e porta esperados:

ss -tlnp | grep redis

Erros de Autenticação

Se receber NOAUTH Authentication required, certifique-se de que está a passar a palavra-passe correta na sua string de conexão do cliente ou via AUTH na CLI.

Uso Elevado de Memória

Configure um limite de memória em redis.conf para impedir que Redis consuma toda a RAM disponível:

maxmemory 256mb
maxmemory-policy allkeys-lru

A política allkeys-lru remove as chaves menos recentemente usadas quando o limite de memória é atingido — ideal para casos de uso de cache.

Hospedagem Redis: Escolher a Infraestrutura Certa

O desempenho da sua instância Redis está diretamente ligado à qualidade da sua infraestrutura de servidor subjacente. Para cargas de trabalho de produção, considere:

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar