Infraestrutura
VPS para Redis e cache: guia de CPU, RAM e rede
Guia para escolher VPS para Redis: RAM, CPU, disco e rede em cache, sessões e filas, com sizing prático e alertas de produção sem promessas irreais hoje.
Resposta direta
Para hospedar Redis em uma VPS, comece pelo volume real de dados em memória e não apenas pelo número de usuários. Um ambiente simples de cache pode rodar com 1 vCPU, 1 GB de RAM e SSD, desde que o Redis tenha limite de memória, política de expulsão e monitoramento. Para sessões, filas e cache de aplicações em produção, uma base mais segura costuma ser 2 vCPUs, 4 GB de RAM, disco SSD ou NVMe e rede estável com baixa latência entre aplicação e Redis. Se o Redis guardar dados importantes, ative persistência RDB ou AOF, teste restauração e separe backup da VPS. Em workloads com muitos comandos por segundo, filas grandes ou múltiplas aplicações, prefira uma VPS dedicada ao Redis e deixe margem de 30% a 50% de RAM livre.
Resumo rápido
- Redis é rápido porque trabalha principalmente em memória, mas ainda depende de CPU, rede e disco quando há persistência.
- Para produção básica, use pelo menos 2 vCPUs, 4 GB de RAM e disco SSD, ajustando conforme volume de chaves.
- Cache efêmero aceita perda controlada de dados, mas sessão e fila exigem cuidado maior com persistência e backup.
- Latência entre aplicação e Redis deve ficar baixa, idealmente na mesma região ou no mesmo datacenter.
- Defina
maxmemory, escolha uma política comoallkeys-lruouvolatile-lrue monitore evictions. - Não exponha Redis na internet pública sem firewall, autenticação forte e rede privada quando disponível.
- VPS com NVMe pode ajudar em RDB, AOF e reinicializações, mas não compensa RAM mal dimensionada.
Como o Redis usa CPU, RAM, disco e rede
Redis costuma ser descrito como um banco em memória, mas essa frase só conta metade da história. A maior parte das operações realmente acontece na RAM, por isso leituras e escritas simples podem ter latência muito baixa. Só que a VPS ainda precisa de CPU para processar comandos, rede para transportar requisições e disco para persistir dados quando RDB ou AOF estão ativos. Quando alguém escolhe uma VPS apenas olhando o preço ou o tamanho do disco, o risco é contratar um servidor que parece suficiente no painel, mas começa a sofrer quando o tráfego cresce.
Memória vem antes de tudo
O primeiro cálculo deve ser o tamanho dos dados. Se sua aplicação guarda 300 mil sessões com média de 2 KB cada, o volume bruto chega a cerca de 600 MB. Redis adiciona overhead por chave, estrutura interna, expiração e metadados. Na prática, esse mesmo cenário pode consumir algo entre 800 MB e 1,2 GB. Por isso, uma VPS de 1 GB fica apertada. O sistema operacional, logs, agentes de monitoramento e eventuais processos da aplicação também disputam memória. Um dimensionamento mais saudável colocaria esse workload em 2 GB no mínimo, com limite maxmemory abaixo do total físico.
CPU e rede aparecem quando a latência aperta
Redis executa boa parte dos comandos em uma thread principal. Isso não significa que CPU seja irrelevante. Comandos caros, conexões simultâneas, TLS, persistência e pipelines grandes podem pressionar o processador. Uma aplicação Laravel, Node.js ou Django que usa Redis para cache e filas pode gerar milhares de comandos por minuto mesmo com tráfego moderado. A rede também entra no cálculo. Se a aplicação está em São Paulo e o Redis em uma região distante, cada operação paga latência. Para entender melhor como CPU, RAM e armazenamento se combinam em uma VPS, o guia de como escolher CPU, RAM e NVMe ajuda a montar uma base antes de escolher o plano.
Dimensionamento de RAM para cache, sessões e filas
O erro mais comum em Redis é tratar memória como um número fixo e esquecer o comportamento da aplicação. Cache de página, cache de consulta, sessão de usuário, rate limiting e fila usam padrões bem diferentes. Um cache com TTL curto pode crescer até um teto e estabilizar. Sessões tendem a acompanhar usuários ativos. Filas podem ficar quase vazias durante o dia e explodir quando um serviço externo fica lento. A VPS precisa acomodar esses picos sem entrar em swap, porque swap em Redis quase sempre vira latência alta e comportamento imprevisível.
Cache com expiração
Para cache de aplicação, calcule primeiro o conjunto de dados quente. Imagine um e-commerce pequeno com 20 mil produtos, páginas de categoria, menus e consultas frequentes. Se cada item de cache tem 5 KB e apenas 30 mil chaves ficam ativas no horário de pico, o volume bruto seria de 150 MB. Com overhead, expiração e fragmentação, faz sentido reservar 300 MB a 500 MB para esse cache. Em uma VPS de 2 GB, você poderia configurar maxmemory 1024mb, deixando espaço para sistema, buffers e persistência. A política allkeys-lru é comum quando todo dado pode ser descartado e reconstruído.
Sessões e filas
Sessões exigem outro raciocínio. Se perder sessão derruba usuários logados, a aplicação precisa lidar bem com expiração, fallback e persistência. Para 50 mil usuários ativos com sessão média de 4 KB, o volume bruto seria de 200 MB, mas o consumo real pode passar de 350 MB. Filas também merecem folga. Um worker parado por 20 minutos pode acumular 100 mil jobs. Se cada job serializado tem 8 KB, são 800 MB antes do overhead. Nesse caso, 4 GB de RAM deixam de ser luxo e passam a ser uma margem operacional. Em produtos SaaS, filas de e-mail, webhooks e relatórios podem crescer rápido, então vale relacionar o Redis ao desenho maior da infraestrutura, como no guia de VPS para SaaS no Brasil.
Uma regra prática ajuda no início: some o volume estimado de dados, multiplique por 2 para overhead e crescimento, depois adicione 30% de folga. Se o resultado ficar perto do total de RAM da VPS, suba um plano. Redis deve ter teto de memória definido, mas a VPS não pode viver no limite. Alertas de uso acima de 75% por longos períodos, aumento de mem_fragmentation_ratio e evictions inesperadas indicam que o sizing precisa ser revisto.
CPU, latência e rede em workloads de Redis
Como Redis entrega respostas rápidas, muita gente presume que qualquer vCPU serve. Em ambientes pequenos, isso até pode ser verdade. Um blog WordPress com cache de objeto, poucas sessões e tráfego baixo pode funcionar bem com 1 vCPU compartilhada. O cenário muda quando Redis vira peça central de filas, rate limiting, carrinhos, permissões e cache de consultas. A CPU passa a processar muitas conexões curtas, serialização, comandos de escrita e tarefas de persistência. Se a VPS também roda aplicação, banco e servidor web, a disputa fica clara nos horários de pico.
Quando 1 vCPU deixa de bastar
Considere uma API que recebe 80 requisições por segundo. Se cada requisição faz 6 operações no Redis, são 480 comandos por segundo sem contar workers e tarefas agendadas. Isso ainda é modesto para Redis bem configurado, mas pode pressionar uma VPS pequena se houver comandos pesados, payloads grandes ou TLS com muitos handshakes. Para produção básica, 2 vCPUs dão margem para Redis, sistema operacional, monitoramento e picos curtos. Em filas intensivas, 4 vCPUs podem ser necessárias, não porque Redis use tudo o tempo inteiro, mas porque workers, compressão, logs e persistência competem pelo mesmo host.
Latência entre aplicação e Redis
A rede é decisiva. Redis é sensível a round trips, especialmente quando a aplicação faz muitos comandos pequenos sem pipeline. Uma latência de 1 ms entre aplicação e Redis parece ótima. Uma latência de 40 ms pode transformar seis chamadas sequenciais em atraso perceptível. Se o público e a aplicação estão no Brasil, escolher uma região brasileira ou próxima pode reduzir tempo de resposta, desde que o provedor ofereça a localidade desejada no plano escolhido. Provedores como DigitalOcean, Vultr, Linode, AWS Lightsail, Hostinger, Locaweb e LetsCloud devem ser avaliados por região, rede privada, tipo de armazenamento e limites de banda nas páginas oficiais, com revisão humana antes de publicar qualquer preço ou disponibilidade.
Algumas otimizações dependem mais da aplicação do que da VPS. Use pooling de conexões, pipeline quando fizer sentido e evite comandos como KEYS em produção. Prefira SCAN para varreduras graduais. Monitore instantaneous_ops_per_sec, latência de comandos e quantidade de conexões. Se a aplicação faz cache de consultas de banco, confira também a estratégia do banco principal. O artigo sobre VPS para banco PostgreSQL complementa essa análise, porque Redis não corrige consulta SQL ruim nem índice ausente.
Disco, persistência e backup no Redis
Redis pode ser usado como cache descartável, mas também aparece em filas, sessões e dados temporários que não podem sumir sem impacto. A decisão sobre persistência muda o peso do disco na escolha da VPS. Quando RDB está ativo, Redis cria snapshots periódicos do dataset. Quando AOF está ativo, registra operações para reconstruir o estado. Cada abordagem tem custo e comportamento diferente. RDB tende a ser mais simples e eficiente para backups pontuais. AOF pode reduzir perda de dados, mas aumenta escrita em disco e exige atenção com reescrita do arquivo.
RDB, AOF e impacto no storage
Em uma VPS com 4 GB de RAM e dataset de 2 GB, um snapshot RDB pode exigir espaço livre suficiente para arquivo temporário, cópia e crescimento durante a operação. Se o disco tem apenas 20 GB e logs crescem sem rotação, a persistência pode falhar no pior momento. SSD é o mínimo recomendado para produção. NVMe pode reduzir tempo de escrita e carregamento, mas a disponibilidade varia por provedor, plano e localidade. Não dá para afirmar que todo plano oferece NVMe ou que isso resolverá gargalos de memória. O ganho aparece mais em reinicialização, AOF rewrite e operações de backup, não na leitura comum em memória.
Uma configuração prática para cache com tolerância a perda poderia usar RDB a cada 15 minutos e maxmemory bem definido. Para fila com jobs importantes, AOF com appendfsync everysec costuma equilibrar segurança e desempenho, aceitando perda aproximada de até um segundo em falha extrema. Para dados realmente críticos, Redis talvez não deva ser o sistema de registro principal. Use banco transacional para estado definitivo e Redis como aceleração, fila ou coordenação.
Snapshots da VPS não substituem teste de restauração
Snapshot do provedor é útil, mas não basta. Primeiro, snapshots podem ser cobrados separadamente ou depender do plano. Segundo, um snapshot de disco tirado sem cuidado pode capturar um estado inconsistente, principalmente em escrita intensa. Terceiro, backup que nunca foi restaurado é só esperança. Um procedimento básico inclui exportar RDB ou AOF para armazenamento externo, manter retenção de pelo menos 7 dias para ambientes pequenos e testar restauração em uma VPS separada uma vez por mês.
Também pense no tempo de recuperação. Se o dataset tem 20 GB, o Redis pode demorar para carregar após reinício. Durante esse tempo, a aplicação precisa degradar com elegância. Em cache, pode reconstruir aos poucos. Em sessão, pode pedir novo login. Em fila, precisa garantir idempotência para não processar cobrança, envio ou webhook duas vezes. Disco rápido ajuda, mas arquitetura e testes ajudam mais.
Arquitetura de implantação em VPS e Cloud Server
A escolha entre colocar Redis na mesma VPS da aplicação ou separá-lo em um servidor dedicado depende de tráfego, criticidade e orçamento. Para projetos pequenos, consolidar serviços reduz custo e simplifica operação. Para produção com crescimento, isolar Redis melhora previsibilidade, facilita upgrades e evita que um deploy ruim da aplicação consuma memória do cache. Também fica mais fácil aplicar firewall, monitorar recursos e reiniciar serviços sem derrubar tudo ao mesmo tempo.
Redis na mesma VPS da aplicação
Em um MVP, uma VPS com 2 vCPUs, 4 GB de RAM e 60 GB SSD pode hospedar Nginx, aplicação, Redis e um banco pequeno. Nesse modelo, defina limites desde o primeiro dia. Por exemplo, Redis com maxmemory 1024mb, PHP-FPM ou Node.js com workers limitados, banco com buffers conservadores e logs rotacionados. Essa configuração serve para validar produto, painel administrativo, automações internas e cache de sessão com tráfego moderado. O problema aparece quando tudo cresce junto. Um pico de workers pode consumir RAM, o sistema entra em pressão e Redis começa a expulsar chaves antes do esperado.
Redis em VPS dedicada
Separar Redis em uma VPS própria é o próximo passo natural. Um desenho comum usa uma VPS para aplicação, outra para banco e outra para Redis. O Redis pode ficar em rede privada, aceitando conexões apenas da aplicação. Em provedores que oferecem firewall de nuvem, regras por IP privado reduzem exposição. Se não houver rede privada, use firewall no sistema, bind em interface específica, autenticação forte e, quando necessário, túnel seguro. Nunca deixe a porta 6379 aberta para a internet.
Cloud Server ou cloud instance tende a facilitar upgrade vertical, troca de plano e criação de snapshots, mas os recursos variam bastante. VPS tradicional pode ser suficiente se a carga é previsível e o provedor entrega estabilidade. Para Redis, o mais importante é consistência de RAM, baixa latência e operação segura. Se o provedor tem datacenter no Brasil, isso pode ajudar aplicações brasileiras, mas a localidade real do plano precisa ser confirmada na página oficial. Dados de preço, região, banda, NVMe e backup mudam com frequência e devem passar por revisão humana antes de entrar em comparativos publicados.
Em arquiteturas mais maduras, considere réplica para leitura, failover gerenciado ou Redis Sentinel. Só adote cluster se houver motivo claro, como dataset maior que a memória de uma instância ou necessidade de distribuir escrita. Cluster adiciona complexidade, slots, clientes compatíveis e novas formas de falha. Para muitas equipes, uma VPS bem dimensionada com backup testado resolve mais do que uma arquitetura distribuída montada cedo demais.
Tabela comparativa de perfis de VPS para Redis
A tabela abaixo não é um comparativo de preços. Ela serve como referência técnica inicial para perfis comuns de uso. Ajuste os números com base no tamanho médio das chaves, quantidade de usuários simultâneos, TTL, volume de filas, política de persistência e localização da aplicação. Em produção, sempre faça teste de carga com tráfego próximo do real. Uma simulação com 100 requisições por segundo, payloads de 1 KB a 8 KB e workers ativos costuma revelar gargalos que um benchmark sintético não mostra.
| Perfil de uso | Recursos mínimos sugeridos | Configuração Redis típica | Persistência | Sinais de upgrade |
|---|---|---|---|---|
| Cache pequeno para site ou API | 1 vCPU, 1 a 2 GB RAM, 25 GB SSD | maxmemory 512mb, TTL em todas as chaves, allkeys-lru | RDB opcional se cache puder ser reconstruído | Evictions frequentes, swap, latência acima de 10 ms |
| Sessões, filas leves e cache de aplicação | 2 vCPUs, 4 GB RAM, 40 a 80 GB SSD | maxmemory 2gb, pooling de conexões, filas com retries | RDB ou AOF everysec conforme perda aceitável | Fila acumulada, CPU acima de 70%, conexões altas |
| SaaS em produção com workers e webhooks | 4 vCPUs, 8 a 16 GB RAM, SSD ou NVMe | Redis dedicado, rede privada, alertas, maxmemory com folga | AOF everysec mais backup externo testado | Dataset acima de 70%, AOF rewrite lento, failover necessário |
| Alto volume ou múltiplas aplicações | 4 a 8 vCPUs, 16 GB RAM ou mais, NVMe quando disponível | Instância dedicada, possível réplica, client com pipeline | Estratégia formal de RPO e RTO | Necessidade de sharding, indisponibilidade inaceitável |
Para transformar a tabela em decisão, responda três perguntas. Quanto dado fica em memória no pico? Quanto desse dado pode ser perdido? Qual latência a aplicação tolera? Um cache de catálogo pode perder chaves e reconstruir. Uma fila de cobrança não deveria depender só de Redis sem idempotência e registro em banco. Uma sessão de painel administrativo pode aceitar novo login em incidente, mas uma sessão de checkout talvez precise de tratamento mais cuidadoso.
Também compare o custo operacional. Uma VPS maior pode ser mais simples que três VPS pequenas mal monitoradas. Ao mesmo tempo, colocar aplicação, banco e Redis no mesmo host aumenta o raio de impacto de qualquer falha. O ponto certo costuma mudar ao longo do produto. Comece simples, mas deixe caminho claro para separar Redis quando uso de RAM, fila ou latência indicar.
Segurança, observabilidade e operação diária
Redis não foi pensado para ficar exposto diretamente na internet. A operação segura começa com rede e firewall. Em VPS pública, bloqueie a porta 6379 para qualquer origem que não seja a aplicação. Quando existir rede privada entre servidores, use essa rede. Configure bind para o endereço correto, ative protected-mode, use ACLs ou senha forte e evite credenciais em repositório. Variáveis de ambiente devem ficar no ambiente de deploy ou em cofre de segredos, nunca hardcoded no código.
Hardening básico
Uma configuração mínima inclui firewall com ufw ou regras equivalentes, usuário sem login desnecessário, atualizações de segurança e logs rotacionados. Se usar Docker, não publique 6379:6379 para todas as interfaces sem necessidade. Prefira rede interna do Docker ou bind em IP privado. Em ambientes com múltiplos serviços, separe usuários e permissões. Com Redis 6 ou superior, ACLs permitem criar usuários com comandos restritos. Isso é útil quando uma aplicação só precisa de cache, enquanto um worker precisa manipular filas.
TLS pode ser necessário em tráfego entre redes não confiáveis, mas também adiciona custo de CPU e complexidade. Se aplicação e Redis estão na mesma rede privada, firewall bem configurado pode ser suficiente para muitos cenários. Se o tráfego cruza internet pública, use túnel, VPN, TLS ou serviço gerenciado com criptografia. A escolha depende da ameaça real, do time e da criticidade dos dados.
Métricas que devem acender alerta
Monitoramento precisa ir além de saber se o processo está de pé. Acompanhe memória usada, maxmemory, número de chaves, evictions, hit rate, conexões, comandos por segundo, latência e tamanho de AOF. Um cache com hit rate muito baixo pode estar só ocupando RAM sem reduzir carga do banco. Uma fila que cresce continuamente indica workers insuficientes, erro em serviço externo ou payload grande demais. Latência subindo junto com AOF rewrite aponta para gargalo de disco ou CPU.
Alertas práticos: memória acima de 75% do limite por 30 minutos, qualquer uso de swap, evictions em cache que não deveria expulsar chaves, fila crescendo por mais de 10 minutos e falha de backup. Teste também reinício. Suba uma cópia da VPS, restaure dados e veja se a aplicação volta. Esse exercício mostra dependências escondidas, credenciais antigas e jobs não idempotentes. Operação de Redis boa não é só escolher VPS forte. É saber como o serviço falha e como voltar sem improviso.
Recomendações por perfil
Dev solo e projetos pequenos
Para um dev solo, o melhor caminho costuma ser simplicidade controlada. Uma VPS de 2 vCPUs, 2 GB a 4 GB de RAM e SSD já permite rodar aplicação, Redis e serviços auxiliares com folga moderada. Configure maxmemory entre 512 MB e 1 GB, use TTL em todas as chaves de cache e evite usar Redis como banco principal. Se o projeto é um painel interno, bot, API pequena ou WordPress com cache de objeto, esse desenho reduz custo e complexidade. O cuidado principal é não deixar Redis aberto na internet e criar um backup básico, mesmo que o cache seja reconstruível.
Times com produto em crescimento
Times com tráfego crescente devem separar Redis quando a aplicação começa a depender de filas, sessões e cache para manter tempo de resposta. Um perfil comum é uma VPS dedicada com 2 vCPUs, 4 GB ou 8 GB de RAM, SSD e rede privada com a aplicação. Defina painéis de monitoramento desde o início. A equipe precisa ver hit rate, memória, evictions e tamanho de fila sem acessar o servidor por SSH toda vez. Também vale padronizar payloads de jobs, retries e dead letter em nível de aplicação. Quando um serviço externo cai, a fila cresce. Sem limite e alerta, o Redis vira o primeiro lugar onde o problema aparece.
Produção crítica e SaaS
Para produção crítica, Redis deve ser tratado como componente de infraestrutura, não como utilitário escondido no mesmo servidor. Comece com 4 vCPUs, 8 GB a 16 GB de RAM, disco rápido e backup externo testado. Use rede privada, firewall restritivo, ACLs, persistência alinhada ao RPO e plano de restauração documentado. Se a indisponibilidade derruba checkout, autenticação ou processamento financeiro, avalie réplica, Sentinel, serviço gerenciado ou arquitetura com fallback. Em SaaS multi-tenant, separe filas por prioridade e evite que um cliente gere payloads capazes de consumir toda a memória. O objetivo não é ter o Redis mais sofisticado possível. É ter previsibilidade quando o tráfego foge do normal.
Perguntas frequentes
Qual é a configuração mínima de VPS para Redis em produção?
Para produção básica, uma configuração segura costuma começar em 2 vCPUs, 4 GB de RAM e 40 GB de disco SSD. Isso atende cache de aplicação, sessões moderadas e filas leves, desde que o Redis tenha `maxmemory`, TTL e monitoramento. Projetos muito pequenos podem rodar com 1 vCPU e 1 GB ou 2 GB de RAM, mas a margem fica limitada. Se houver filas importantes, webhooks, workers ou sessões críticas, reserve folga de memória e evite colocar banco, aplicação e Redis no mesmo host por muito tempo.
Redis precisa de NVMe ou SSD já é suficiente?
SSD é suficiente para muitos ambientes Redis, especialmente quando o uso principal é cache em memória. NVMe pode ajudar em snapshots RDB, reescrita de AOF, carregamento após reinício e workloads com persistência mais intensa. Mesmo assim, disco rápido não corrige falta de RAM, comandos ruins ou aplicação com excesso de round trips. Antes de escolher NVMe, confirme se o provedor oferece esse storage no plano e na localidade desejada. Também teste restauração, porque backup lento pode ser um gargalo maior que a escrita normal do Redis.
Posso rodar Redis na mesma VPS da aplicação?
Pode, principalmente em MVPs, sites pequenos e APIs com tráfego moderado. O cuidado é limitar o consumo do Redis com `maxmemory`, controlar workers da aplicação e monitorar uso de RAM para evitar swap. Uma VPS com 2 vCPUs e 4 GB de RAM costuma ser uma base razoável para começar. Quando filas, sessões ou cache viram parte crítica do produto, separar Redis em uma VPS dedicada melhora previsibilidade. Essa separação também facilita firewall, upgrade, backup e reinício sem afetar todos os serviços ao mesmo tempo.
Qual política de maxmemory devo usar no Redis?
Depende do tipo de dado. Para cache em que qualquer chave pode ser recriada, `allkeys-lru` ou `allkeys-lfu` costuma fazer sentido. Para cenários onde apenas chaves com TTL podem ser removidas, `volatile-lru` é mais conservadora. Se o Redis guarda filas ou sessões que não podem ser descartadas, expulsão automática pode causar perda de dados e precisa ser tratada com cuidado. O ideal é separar workloads por instância ou database lógico quando possível, aplicar TTL de forma consistente e criar alertas para evictions inesperadas.
Redis pode substituir PostgreSQL ou MySQL?
Na maioria dos casos, não. Redis é excelente para cache, sessão, fila, rate limiting, contadores e dados temporários de alta velocidade. Bancos como PostgreSQL e MySQL continuam mais adequados para dados transacionais, consultas complexas, integridade relacional e histórico permanente. Usar Redis como fonte principal de verdade exige desenho cuidadoso, persistência, backup e tolerância a falhas bem definidos. Para aplicações comuns, o melhor padrão é manter o banco relacional como registro definitivo e usar Redis para acelerar leituras, reduzir carga e processar tarefas assíncronas.
Como saber quando preciso aumentar a VPS do Redis?
Os sinais mais claros são uso de memória acima de 75% por períodos longos, evictions inesperadas, qualquer uso de swap, latência crescente, filas acumulando e AOF rewrite demorando demais. CPU sustentada acima de 70% também merece investigação, principalmente se houver TLS, muitos clientes ou comandos pesados. Antes de subir plano, confira se a aplicação usa pipeline, TTL, payloads pequenos e pooling de conexões. Se o dataset cresceu de forma legítima ou a fila ganhou volume real, aumentar RAM e separar Redis em uma VPS dedicada costuma ser o próximo passo.
Fontes consultadas
- Redis Documentation · coletado em 17/06/2026
- Redis Persistence Documentation · coletado em 17/06/2026
- Redis Memory Optimization · coletado em 17/06/2026
- Redis Security Documentation · coletado em 17/06/2026