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
- String —
SET,GET,INCR,APPEND,EXPIRE. Contadores e valores de cache. - List —
LPUSH,RPUSH,LRANGE,BLPOP. Perfeito para filas FIFO. - Hash —
HSET,HGET,HMGET. Guarda objetos campo a campo, sem re-serializar. - Set —
SADD,SMEMBERS,SINTER. Membros únicos com interseção rápida. - Sorted Set —
ZADD,ZRANGE,ZRANGEBYSCORE. Leaderboards e índices temporais. - HyperLogLog —
PFADD,PFCOUNT. Cardinalidade aproximada em ~12 KB para bilhões de itens. - Geo —
GEOADD,GEOSEARCH. Pares lat/long para busca espacial. - Streams —
XADD,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
Gerador de comando git rebase
Monte comandos git rebase com branch base, --interactive, --onto, --autosquash e --no-verify, prontos para colar.
Gerador de comando kubectl
Monta comandos kubectl comuns (get, apply, delete, logs, exec, scale) com namespace, rótulos e formatos de saída.
Gerador de comando AWS S3
Monta comandos aws s3 (cp, sync, ls, rm) com bucket, caminho, ACL, recursividade, classe de armazenamento e perfil.