Seção de Configuração de Rede
O parâmetro bind define os endereços IP que o servidor Redis irá aceitar conexões. Para aceitar conexões de qualquer interface, utilize bind 0.0.0.0. Para escutar apenas em localhost, use bind 127.0.0.1.
O modo protegido (protected-mode) é uma camada de segurança. Se ativado (valor yes) e nenhuma senha ou endereço IP específico for configurado, o Redis rejeitará conexões de hosts remotos.
O diretivo port define a porta TCP para escuta. O valor padrão é 6379. O tcp-backlog controla o tamanho da fila de conexões TCP pendentes.
timeout 0 desativa a desconexão automática por inatividade do cliente. O tcp-keepalive habilita pacotes keepalive TCP para detectar peers mortos.
# Exemplo de parâmetros de rede
bind 10.0.1.15 192.168.1.10
protected-mode no
port 6380
tcp-backlog 1024
timeout 300
tcp-keepalive 60
Configurações Gerais
O parâmetro daemonize controla se o Redis executa como um daemon em segundo plano. O arquivo pidfile especifica o local para o arquivo de ID do processo.
loglevel define a verbosidade dos logs (debug, verbose, notice, warning). logfile define o arquivo de saída dos logs; uma string vazia direciona para a saída padrão.
O parâmetro databases define a quantidade de bancos de dados isolados que o servidor pode abrigar.
Persistência com RDB (Snapshots)
As diretivas save determinam as condições para a geração automática de um snapshot RDB. A sintaxe é save <segundos> <alterações>.
stop-writes-on-bgsave-error define se o servidor deve continuar aceitando escritas após uma falha no processo de persistência em segundo plano.
rdbcompression ativa a compressão LZF no arquivo de dump. rdbchecksum adiciona uma soma de verificação CRC64 ao final do arquivo RDB.
dbfilename especifica o nome do arquivo de dump, e dir define o diretório de trabalho onde os arquivos de persistência são salvos.
# Exemplo de configuração de snapshot
save 1800 5
save 120 500
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum no
dbfilename backup_dump.rdb
dir /var/redis/data
Replicação (Master-Replica)
Para configurar uma instância como réplica, utilize a diretiva replicaof <ip-do-master> <porta-do-master>.
Se o master tiver uma senha configurada, use masterauth <senha> na réplica para autenticação.
replica-serve-stale-data controla se a réplica deve responder a comandos mesmo quando está dessincronizada do master.
replica-read-only define se a réplica deve ser somente leitura.
repl-diskless-sync determina se a sincronização inicial deve usar sockets (sem disco) ou arquivos em disco.
# Exemplo de configuração de replicação
replicaof 192.168.1.50 6379
masterauth "senha_segura"
replica-serve-stale-data no
replica-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 10
Segurança
O parâmetro requirepass define uma senha de autenticação para o servidor. Os clientes devem emitir o comando AUTH antes de outros comandos.
A diretiva rename-command permite renomear ou desativar comandos perigosos em ambientes compartilhados.
# Exemplo de configuração de segurança
requirepass "minhaSenhaFort3!"
rename-command DEBUG ""
Limites de Clientes e Memória
maxclients limita o número máximo de conexões simultâneas. maxmemory define o limite de memória para o servidor.
maxmemory-policy define a estratégia de evicção quando o limite de memória é atingido. Estratégias comuns incluem volatile-lru, allkeys-lru e noeviction.
# Exemplo de limites
maxclients 5000
maxmemory 4gb
maxmemory-policy allkeys-lfu
maxmemory-samples 10
Persistência com AOF (Append Only File)
appendonly ativa o modo de persistência AOF. appendfilename define o nome do arquivo AOF.
appendfsync define a política de sincronização do arquivo AOF com o disco: always, everysec (recomendado) ou no.
no-appendfsync-on-rewrite pode ser ativado para evitar que operações de fsync durante a reescrita do AOF causem atrasos.
auto-aof-rewrite-percentage e auto-aof-rewrite-min-size controlam quando o Redis deve iniciar automaticamente uma reescrita do arquivo AOF.
# Exemplo de configuração AOF
appendonly yes
appendfilename "appendonly.log"
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 150
auto-aof-rewrite-min-size 128mb
Scripting com Lua
lua-time-limit define o tempo máximo de execução, em milissegundos, para scripts Lua. O valor padrão é 5000 (5 segundos).
Configuração do Cluster
cluster-enabled ativa o modo cluster em um nó. cluster-config-file especifica o arquivo de configuração do cluster para o nó.
cluster-node-timeout define o tempo em milissegundos que um nó deve ficar inacessível para ser considerado falho.
# Exemplo de configuração de cluster
cluster-enabled yes
cluster-config-file "nodes-6380.conf"
cluster-node-timeout 20000
cluster-replica-validity-factor 5
Monitoramento e Logs
slowlog-log-slower-than define o limite em microssegundos para registrar comandos no log lento. slowlog-max-len define o tamanho máximo do log lento.
latency-monitor-threshold define o limiar para a coleta de métricas de latência. Valor 0 desativa o monitoramento.
notify-keyspace-events ativa e filtra as notificações de Pub/Sub sobre eventos no espaço de chaves.
# Exemplo de configuração de monitoramento
slowlog-log-slower-than 20000
slowlog-max-len 256
latency-monitor-threshold 5
notify-keyspace-events "Kg"
Otimizações Avançadas
Os parâmetros como hash-max-ziplist-entries, list-max-ziplist-size e zset-max-ziplist-entries controlam os limites para uso de estruturas de dados compactas, economizando memória.
activerehashing permite que o Redis realoque gradualmente as tabelas de hash em segundo plano para economizar memória.
client-output-buffer-limit configura os limites de memória para os buffers de saída de clientes, para desconectar clientes lentos.
# Exemplo de configurações avançadas
hash-max-ziplist-entries 256
list-max-ziplist-size -1
activerehashing yes
client-output-buffer-limit normal 256mb 128mb 30