A biblioteca do cliente Memcached foi lançada recentemente como estável. Ele está sendo usado pelo digg (desenvolvido para o digg por Andrei Zmievski, agora não mais com o digg) e implementa muito mais do protocolo memcached do que o cliente memcache mais antigo. Os recursos mais importantes que o memcached possui são:
- Tokens de Cas . Isso tornou minha vida muito mais fácil e é um sistema preventivo fácil para dados obsoletos. Sempre que você extrai algo do cache, pode receber com ele um token cas (um número duplo). Você pode usar esse token para salvar seu objeto atualizado. Se ninguém mais atualizou o valor enquanto seu encadeamento estava em execução, a troca será bem-sucedida. Caso contrário, um token de cas mais recente foi criado e você é obrigado a recarregar os dados e salvá-los novamente com o novo token.
- Retornos de chamada lidos são a melhor coisa desde pão fatiado. Simplificou muito do meu código.
- getDelayed () é um recurso interessante que pode reduzir o tempo que o script precisa aguardar para que os resultados retornem do servidor.
- Embora o servidor memcached deva ser muito estável, ele não é o mais rápido. Você pode usar o protocolo binário em vez do ASCII com o cliente mais recente.
- Sempre que você salva dados complexos no memcached, o cliente costumava fazer sempre a serialização do valor (o que é lento), mas agora com o cliente memcached você tem a opção de usar o igbinary . Até agora, não tive a chance de testar o quanto isso pode ser um ganho de desempenho.
Todos esses pontos foram suficientes para eu mudar para o cliente mais novo e posso dizer que funciona como um encanto. Existe essa dependência externa na biblioteca libmemcached , mas conseguiu instalá-la no Ubuntu e no Mac OSX, então não há problemas até agora.
Se você decidir atualizar para a biblioteca mais recente, sugiro que você atualize para a versão mais recente do servidor, além de alguns recursos interessantes. Você precisará instalar o libevent para compilar, mas no Ubuntu não houve muitos problemas.
Eu não vi nenhuma estrutura pegar o novo cliente armazenado em cache até agora (embora eu não os acompanhe), mas presumo que o Zend entrará em breve.
ATUALIZAR
O Zend Framework 2 possui um adaptador para o Memcached, que pode ser encontrado aqui