Configuração do Redis
A configuração do Redis é flexível e poderosa. Esta lição aborda o arquivo de configuração e opções comuns.
Local do Arquivo de Configuração
Diferentes métodos de instalação colocam o arquivo de configuração em locais diferentes:
| Método de Instalação | Local do Arquivo de Configuração |
|---|---|
| apt (Ubuntu) | /etc/redis/redis.conf |
| yum (CentOS) | /etc/redis.conf |
| Código fonte | Diretório fonte redis.conf, deve copiar manualmente |
| Homebrew (Mac) | /usr/local/etc/redis.conf |
| Windows | Diretório de instalação redis.windows.conf |
Criando Arquivo de Configuração Após Instalação por Código Fonte
BASH
# Criar diretório de configuração
sudo mkdir -p /etc/redis
# Copiar arquivo de configuração
sudo cp /tmp/redis-7.0.11/redis.conf /etc/redis/redis.conf
# Criar diretório de dados
sudo mkdir -p /var/lib/redis
sudo chown redis:redis /var/lib/redis
Formato do Arquivo de Configuração
Arquivos de configuração do Redis usam um formato simples de chave-valor:
CONF
# Isto é um comentário
# Formato básico
config-key valor
# Exemplo
port 6379
bind 127.0.0.1
daemonize yes
💡 Observação: Chaves e valores de configuração são separados por um espaço — não é necessário sinal de igual.
Opções Principais de Configuração
Configuração de Rede
CONF
# Vincular endereço IP
# 127.0.0.1 — acesso local apenas
# 0.0.0.0 — permitir todos os IPs (perigoso!)
# 192.168.1.100 — vincular a um IP específico
bind 127.0.0.1
# Porta de escuta
port 6379
# Modo protegido (recomendado manter ativado)
# yes: só permite conexões locais a menos que bind ou senha estejam definidos
# no: permite conexões remotas
protected-mode yes
# Tamanho da fila de backlog TCP
tcp-backlog 511
# Tempo limite de inatividade do cliente em segundos (0 significa nunca desconectar)
timeout 0
# Intervalo de keepalive TCP em segundos
tcp-keepalive 300
⚠️ Atenção:
bind 0.0.0.0 permite acesso de todos os IPs — você deve definir uma senha!
Configuração Geral
CONF
# Executar como daemon (segundo plano)
daemonize no
# Local do arquivo PID
pidfile /var/run/redis/redis-server.pid
# Nível de log
# debug: muita informação de depuração
# verbose: muita informação útil
# notice: moderadamente verboso (recomendado para produção)
# warning: apenas mensagens importantes
loglevel notice
# Local do arquivo de log
# String vazia significa saída para stdout
logfile /var/log/redis/redis-server.log
# Número de bancos de dados (padrão 16, numerados 0-15)
databases 16
Gerenciamento de Memória
CONF
# Uso máximo de memória
# Formato: 1kb, 5mb, 2gb, etc.
# 0 significa ilimitado (perigoso!)
maxmemory 256mb
# Política de remoção quando o limite de memória é atingido
# volatile-lru: remove chaves com TTL definido (algoritmo LRU)
# allkeys-lru: remove qualquer chave (algoritmo LRU)
# volatile-lfu: remove chaves com TTL definido (algoritmo LFU)
# allkeys-lfu: remove qualquer chave (algoritmo LFU)
# volatile-random: remove aleatoriamente chaves com TTL definido
# allkeys-random: remove aleatoriamente qualquer chave
# volatile-ttl: remove chaves com o menor TTL
# noeviction: não remove, retorna erro (padrão)
maxmemory-policy allkeys-lru
# Tamanho da amostra LRU/LFU
# Valores maiores são mais precisos mas usam mais CPU
maxmemory-samples 5
💡 Como escolher uma política de remoção?
- Cenários de cache:
allkeys-lruouallkeys-lfu - Cenários de persistência:
noevictionouvolatile-lru
Configuração de Persistência (RDB)
CONF
# Condições de disparo de snapshot RDB
# save <segundos> <alterações>
# Pelo menos 1 alteração em 900 segundos → dispara snapshot
save 900 1
save 300 10
save 60 10000
# Desabilitar RDB (comentar save ou definir como vazio)
# save ""
# Nome do arquivo RDB
dbfilename dump.rdb
# Diretório de armazenamento do arquivo RDB
dir /var/lib/redis
# Compressão RDB (recomendado manter ativado)
rdbcompression yes
# Checksum RDB (recomendado manter ativado)
rdbchecksum yes
Configuração de Persistência (AOF)
CONF
# Habilitar AOF
appendonly no
# Nome do arquivo AOF
appendfilename "appendonly.aof"
# Estratégia de sincronização AOF
# always: sincronizar em cada escrita (mais seguro, mais lento)
# everysec: sincronizar uma vez por segundo (recomendado)
# no: deixar o SO decidir (mais rápido, menos seguro)
appendfsync everysec
# Desabilitar fsync durante reescrita AOF
no-appendfsync-on-rewrite no
# Tamanho do arquivo AOF dispara reescrita
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
💡 RDB vs AOF:
- RDB: snapshot, arquivos pequenos, recuperação rápida, mas pode perder dados
- AOF: log, dados mais seguros, mas arquivos maiores, recuperação mais lenta
- Recomendação: habilitar ambos RDB e AOF
Configuração de Segurança
CONF
# Definir senha (antes do Redis 6.0)
requirepass sua_senha
# Renomear comandos perigosos
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command DEBUG ""
⚠️ Observação: Redis 6.0+ recomenda usar ACL para controle de acesso mais flexível e seguro.
Configuração de Limites
CONF
# Número máximo de conexões de cliente
# 10000 significa até 10000 clientes
maxclients 10000
# Buffer máximo de entrada
client-query-buffer-limit 1gb
# Buffer máximo de saída
# normal: clientes regulares
# replica: nós réplica
# pubsub: clientes pub/sub
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
Usando o Comando CONFIG
Você pode visualizar e modificar a configuração em tempo de execução.
Visualizar Configuração
REDIS
# Ver toda a configuração
CONFIG GET *
# Retorna lista alternada de chaves e valores de configuração
# Ver configuração específica
CONFIG GET port
1) "port"
2) "6379"
CONFIG GET maxmemory
1) "maxmemory"
2) "0"
# Ver múltiplas configurações (usando curinga)
CONFIG GET maxmemory*
1) "maxmemory"
2) "0"
3) "maxmemory-policy"
4) "noeviction"
5) "maxmemory-samples"
6) "5"
Modificar Configuração
REDIS
# Definir memória máxima
CONFIG SET maxmemory 256mb
OK
# Definir nível de log
CONFIG SET loglevel "debug"
OK
# Definir número de bancos de dados
CONFIG SET databases 32
OK
⚠️ Observação: Alterações feitas com CONFIG SET entram em vigor imediatamente mas são perdidas na reinicialização. Use CONFIG REWRITE para salvar no arquivo de configuração.
Salvar Configuração no Arquivo
REDIS
# Escrever configuração atual no arquivo de configuração
CONFIG REWRITE
OK
CONFIG REWRITE vai:
- Ler o arquivo de configuração original
- Substituir com a configuração atual em tempo de execução
- Preservar comentários e formatação
Redefinir Configuração
REDIS
# Redefinir estatísticas
CONFIG RESETSTAT
OK
Cenários Comuns de Configuração
Cenário 1: Ambiente de Desenvolvimento
CONF
bind 127.0.0.1
port 6379
daemonize no
logfile ""
databases 16
save ""
appendonly no
Cenário 2: Ambiente de Produção
CONF
bind 127.0.0.1
port 6379
daemonize yes
logfile /var/log/redis/redis.log
databases 16
# Gerenciamento de memória
maxmemory 2gb
maxmemory-policy allkeys-lru
# Persistência
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec
# Segurança
requirepass sua_senha_forte
rename-command FLUSHALL ""
rename-command FLUSHDB ""
Cenário 3: Configuração de Servidor Cache
CONF
bind 127.0.0.1
port 6379
daemonize yes
maxmemory 4gb
maxmemory-policy allkeys-lru
# Sem necessidade de persistência para cache
save ""
appendonly no
Cenário 4: Configuração de Fila de Mensagens
CONF
bind 127.0.0.1
port 6379
daemonize yes
maxmemory 1gb
maxmemory-policy noeviction
# Filas de mensagens precisam de persistência
appendonly yes
appendfsync everysec
Usando Argumentos de Linha de Comando
Você pode substituir valores de configuração ao iniciar o Redis:
BASH
# Substituir uma única configuração
redis-server --port 6380
redis-server --maxmemory 512mb
redis-server --requirepass minhasenha
# Substituir múltiplas configurações
redis-server --port 6380 --maxmemory 512mb --daemonize yes
# Usar arquivo de configuração + substituir algumas configurações
redis-server /etc/redis/redis.conf --port 6380
Ajuste Dinâmico de Configuração
Ajustando Limites de Memória
REDIS
# Verificar uso atual de memória
INFO memory
used_memory:1048576
used_memory_human:1.00M
# Ajustar memória máxima
CONFIG SET maxmemory 512mb
OK
# Salvar configuração
CONFIG REWRITE
OK
Ajustando Nível de Log
REDIS
# Habilitar temporariamente log de depuração
CONFIG SET loglevel debug
OK
# Restaurar após depuração
CONFIG SET loglevel notice
OK
Ajustando Log de Consultas Lentas
REDIS
# Definir limite de consulta lenta (microssegundos)
CONFIG SET slowlog-log-slower-than 10000
OK
# Definir máximo de entradas no log de consultas lentas
CONFIG SET slowlog-max-len 128
OK
# Ver log de consultas lentas
SLOWLOG GET 10
Verificação de Configuração
Verificar Sintaxe do Arquivo de Configuração
BASH
# Verificar na inicialização
redis-server /etc/redis/redis.conf --test-memory 100
Visualizar Configuração em Execução
BASH
# Visualizar a partir da linha de comando
redis-cli CONFIG GET maxmemory
# Visualizar toda a configuração
redis-cli CONFIG GET *
❓ Perguntas Frequentes
P Preciso reiniciar o Redis após alterar a configuração?
R Alterações de configuração via CONFIG SET entram em vigor imediatamente sem reinicialização. No entanto, elas são perdidas na reinicialização — use CONFIG REWRITE para persistí-las.
P Como vejo a configuração padrão do Redis?
R O arquivo
redis.conf na distribuição fonte do Redis tem configurações padrão detalhadas com explicações.P O que acontece se maxmemory for definido como 0?
R 0 significa memória ilimitada. Redis usará toda a memória disponível, o que pode levar a OOM e o sistema matar o processo.
P Como desabilito comandos perigosos?
R Use
rename-command FLUSHALL "" no arquivo de configuração para renomear um comando para uma string vazia.P Um arquivo de configuração pode incluir outros arquivos de configuração?
R Sim, use
include /caminho/para/outro.conf.📖 Resumo
- O local do arquivo de configuração varia conforme o método de instalação; instalações por código fonte precisam de cópia manual
- Áreas principais de configuração: rede, memória, persistência, segurança
- CONFIG GET/SET visualiza e modifica configuração em tempo de execução
- CONFIG REWRITE salva configuração no arquivo
- Diferentes cenários precisam de diferentes estratégias de configuração
- Sempre defina senhas e limites de memória em produção
📝 Atividades
- Ver configuração: Use CONFIG GET para verificar sua configuração Redis, encontre os valores de maxmemory e maxmemory-policy
- Modificar configuração: Use CONFIG SET para alterar maxmemory para 128mb, depois salve com CONFIG REWRITE
- Configuração de cenário: Escreva um arquivo de configuração Redis para um cenário de cache
- Desabilitar comandos: Desabilite os comandos FLUSHALL e FLUSHDB no arquivo de configuração
Próxima Lição
Na próxima lição, nós aprenderemos sobre Visão Geral dos Tipos de Dados do Redis, abordando os 5 tipos básicos de dados do Redis.



