Skip to content
Latchkey

Redis vs Memcached: qual store em memória?

Redis é um store de estruturas de dados em memória versátil, com persistência e replicação; Memcached é um cache key-value enxuto e multithread para cache simples de strings.

Redis suporta tipos ricos (listas, sets, sorted sets, hashes, streams), persistência opcional, pub/sub e replicação, servindo como cache, fila e banco de dados leve. Memcached faz uma coisa bem: um cache distribuído, rápido e multithread para pequenos blobs e strings, com gerenciamento de memória mais simples. Redis vence em recursos e durabilidade; Memcached pode superá-lo em throughput multithread bruto para cache puro.

RedisMemcached
Tipos de dadosMuitos (listas, sets, etc.)Somente strings
PersistênciaRDB / AOFNenhuma (volátil)
ThreadingMajoritariamente single-threadedMultithread
ExtrasPub/sub, streams, LuaCache puro
Melhor paraCache + estruturas de dadosCache simples de alto volume

Caso de uso e performance

Recorra ao Memcached quando você só precisa de um cache de strings grande, rápido e escalado horizontalmente, e quer throughput multithread por node. Recorra ao Redis quando precisa de estruturas de dados, operações atômicas, persistência ou pub/sub. Redis pode atuar como cache mais fila mais rate limiter, reduzindo o número de partes móveis.

Em CI e deploy

Ambos sobem facilmente como service containers para testes de integração. Redis é mais comum porque os testes costumam exercitar suas estruturas de dados; a configuração do Memcached é ainda mais simples. Qualquer um roda bem como serviço de CI em runners gerenciados, onde runners mais rápidos encurtam a inicialização dos containers e a execução dos testes.

O veredito

Precisa apenas de um cache de strings simples e de alto throughput: Memcached é enxuto e simples. Precisa de estruturas de dados, persistência, pub/sub ou um cache-mais-fila único: Redis. A maioria dos sistemas novos adota Redis como padrão pela versatilidade e recorre ao Memcached apenas para cache puro em escala.

Guias relacionados