1001Ferramentas
🔴Geradores

Gerador de comando Redis CLI

Monta comandos redis-cli comuns (SET, GET, EXPIRE, KEYS, HSET, INCR) com TTL e parâmetros.


  

Redis: o servidor de estruturas de dados em memória

O Redis foi lançado por Salvatore Sanfilippo em 2009 como um data store em memória escrito em C99. É single-thread em torno de um event loop (epoll/kqueue) — um comando por vez, mas cada comando é atômico e o loop processa milhões de operações por segundo. A durabilidade é opcional via RDB (snapshot) e AOF (log append-only); dá para rodá-lo como cache puro, como banco persistente ou qualquer combinação dos dois.

Tipos de dado além de string

  • StringSET, GET, INCR, APPEND, EXPIRE. Contadores e valores de cache.
  • ListLPUSH, RPUSH, LRANGE, BLPOP. Perfeito para filas FIFO.
  • HashHSET, HGET, HMGET. Guarda objetos campo a campo, sem re-serializar.
  • SetSADD, SMEMBERS, SINTER. Membros únicos com interseção rápida.
  • Sorted SetZADD, ZRANGE, ZRANGEBYSCORE. Leaderboards e índices temporais.
  • HyperLogLogPFADD, PFCOUNT. Cardinalidade aproximada em ~12 KB para bilhões de itens.
  • GeoGEOADD, GEOSEARCH. Pares lat/long para busca espacial.
  • StreamsXADD, XREAD, consumer groups. Log estilo Kafka embutido no Redis.
  • Bitmap / Bitfield / Pub/Sub — feature flags, contadores de telemetria e fan-out de mensagens.

Persistência, replicação e alta disponibilidade

O RDB grava um snapshot binário do dataset em um instante (save 60 10000) — pequeno e rápido para recarregar. O AOF anexa cada escrita a um log com fsync configurável em always, everysec (recomendado) ou no. Para alta disponibilidade use Sentinel (monitora o primário e promove réplica em failover) ou Redis Cluster, que distribui chaves em 16384 hash slots via CRC16(chave) mod 16384 para escalonamento horizontal automático.

Expiração, eviction e pipelining

TTLs são definidos com EXPIRE chave segundos, EXPIREAT ou direto em SET chave valor EX 60; PERSIST remove e TTL/PTTL inspecionam. Ao bater o maxmemory, a política de eviction decide quem sai: noeviction, allkeys-lru, allkeys-lfu, volatile-ttl e companhia. Pipelining envia vários comandos sem aguardar a resposta de cada um — a latência cai para um único RTT e a vazão costuma multiplicar 5–10×. MULTI/EXEC agrupa em transação; WATCH habilita locking otimista. Para atomicidade do lado do servidor, EVAL roda script Lua 5.1 como comando único (o Redis 7+ ainda oferece Functions persistentes).

Casos de uso comuns

Aproximadamente 90% dos deploys de Redis funcionam como camada de cache na frente de um banco relacional, mas o mesmo engine atende session store, rate limiting (token bucket com INCR + EXPIRE), filas de background (List ou Streams), fan-out por pub/sub, leaderboards (Sorted Set) e analytics em tempo real. O ecossistema de módulos estende ainda mais: RediSearch (full-text e vetorial), RedisJSON, RedisBloom, RedisTimeSeries e RedisGraph.

Diagnóstico e pegadinhas

INFO mostra memória, persistência e replicação; CLIENT LIST lista conexões; SLOWLOG GET traz queries lentas; MONITOR faz streaming de todos os comandos em tempo real, mas é pesado — use rapidamente. O famoso KEYS pattern é O(N) e bloqueia o servidor — sempre prefira SCAN com cursor. Como o Redis é single-thread, um único comando lento (um LRANGE 0 -1 gigante, um script Lua em loop) congela todo o resto.

Perguntas frequentes

O Redis é persistente? Configurável. Com RDB e/ou AOF habilitados, sobrevive a reinício; com ambos desligados, vira cache puro.

Como deixá-lo em alta disponibilidade? Use Sentinel para topologia primário+réplica com failover, ou Redis Cluster para sharding com failover. Quase todos os serviços gerenciados (ElastiCache, Memorystore, Redis Cloud) embrulham uma dessas opções.

O Redis substitui meu banco principal? Raramente. Ele complementa um banco OLTP. Sem datasets do tamanho da RAM, transações ACID entre documentos e consultas complexas, o Redis serve para acelerar workloads específicos, não para guardar todos os seus dados.

O Redis continua open source? O Redis 7.4 migrou para a licença dual SSPL/RSAL em 2024, o que gerou o fork Valkey sob a Linux Foundation. Os dois falam o mesmo protocolo RESP e devem permanecer compatíveis no nível de comandos por bastante tempo.

Ferramentas Relacionadas