Eu trabalhei bastante com o memcached nas últimas semanas e acabei de descobrir sobre o Redis. Quando li essa parte do leia-me, de repente tive uma sensação quente e aconchegante no estômago:
Redis pode ser usado como um memcached em esteróides porque é tão rápido quanto o memcached, mas com vários recursos a mais. Como o memcached, o Redis também suporta a configuração de tempos limites para chaves, para que essa chave seja removida automaticamente quando um determinado período de tempo passar.
Isso parece incrível. Eu também encontrei esta página com referências: http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
Então, honestamente - o memcache é realmente aquele velho dinousaur que é uma má escolha do ponto de vista de desempenho quando comparado a esse novato chamado Redis?
Não ouvi muito sobre Redis anteriormente, portanto, a abordagem para minha pergunta!
fonte
Respostas:
Memcache é uma excelente ferramenta ainda e MUITO confiável.
em vez de analisar esse problema da perspectiva de diminuir quem é mais rápido na faixa de <100 ms, observe o desempenho por "classe" do software.
fonte
Depende do que você precisa, em geral, acho que:
Sem um caso de uso, é difícil escolher o momento, mas acho que, para muitas coisas, o Redis faz sentido, pois mesmo quando você não deseja usá-lo como um banco de dados, sendo muito mais capaz, você pode resolver mais problemas, não apenas cache, mas também mensagens, classificação e assim por diante.
Ps, claro, eu poderia ser tendencioso, já que sou o principal desenvolvedor do projeto Redis.
fonte
Redis
tem muito mais funcionalidade;Redis
também é muito mais fácil. Não são necessárias dependências;Redis
também é melhor;memcached
é um pouco mais rápido queRedis
. Não toca no disco;Redis
é melhor produto do quememcached
.fonte
O que o memcached faz que o Redis não faz é o despejo de valores menos usado recentemente do cache. Com o memcached, você pode definir com segurança quantos valores desejar e, quando eles excederem a memória, os que você não usou recentemente serão excluídos. Com o Redis, você só pode aproximar isso definindo um tempo limite para tudo; quando precisar liberar memória, examinará três chaves aleatórias e excluirá a que estiver mais próxima de expirar.
Essa é a principal diferença, se você estiver usando apenas como cache.
fonte
Você também pode querer olhar para Membase.
http://www.northscale.com/products/membase_server.html
Eu não o usei, mas parece ser semelhante ao Redis, pois é um armazenamento KV centrado na memória com persistência. As principais diferenças do que eu posso ver são:
O Redis possui uma única camada de transferência de dados para o disco (VM) com base em um algoritmo híbrido que considera a LRU e o tamanho do objeto.
Membase usa o protocolo de conexão em cache memcached - útil como um caminho de atualização para aplicativos existentes
A escolha pode depender do grau em que seu aplicativo pode aproveitar a funcionalidade extra de manipulação de dados no Redis.
fonte
Hazelcast suporta nativamente o protocolo memcached
https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html
e, portanto, é uma alternativa moderna ao memcached. Você deve tentar todas as soluções para ver o que funciona melhor para você.
fonte