Na verdade depende do caso de uso
Selecione Memcached se você tiver estes requisitos:
- Você quer o modelo mais simples possível.
- Você precisa executar nós grandes com vários núcleos ou threads.
- Você precisa da capacidade de expandir/diminuir,
- Adicionar e remover nós conforme a demanda em seu sistema aumenta e diminui.
- Você deseja particionar seus dados em vários fragmentos.
- Você precisa armazenar objetos em cache, como um banco de dados.
Selecione Redis se você tiver estes requisitos:
- Você precisa de tipos de dados complexos, como strings, hashes, listas e conjuntos.
- Você precisa classificar ou classificar conjuntos de dados na memória.
- Você quer persistência de seu armazenamento de chaves.
- Você deseja replicar seus dados do primário para uma ou mais réplicas de leitura para aplicativos de leitura intensa.
- Você precisa de failover automático se o nó principal falhar.
- Você deseja recursos de publicação e assinatura (pub/sub) para informar os clientes sobre eventos no servidor.
- Você deseja recursos de backup e restauração.
Aqui está um artigo interessante de aws https://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf