Antes uma breve explanação sobre o Memcached.
Memcached
O Memcached é um sistema de cacheamento em memória, distribuído e de excelente performance. Ele trabalha em sistema chave/valor, onde você pode armazenar diversos tipos de conteúdo, como textos e objetos serializados. Para mais informações sobre o Memcached, compilação e instalação acesse o link abaixo. Uma versão compilada para Windows está disponível para download junto com a aplicação de exemplo no final do post.http://code.google.com/p/memcached
Xmemcached
O Xmemcached é um client Java para o Memcached com alta performance, principalmente em ambientes muti-thread, além de disponibilizar outros recursos interessantes, como adição dinâmica de servidores e configuração de pool de conexões.Abaixo, um link com um teste de performance comparando 3 clientes de Memcached:
http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html
Antes de mais nada, coloque o Memcached para rodar!
Linux:
memcached -p 11211
Windows:
memcached.exe -p 11211
Vão ser necessárias as seguintes dependências para construir o projeto Maven:
org.slf4j slf4j-api 1.7.2 com.googlecode.xmemcached xmemcached 1.3.8
Aplicação simples:
package com.xmemcachedexample; import net.rubyeye.xmemcached.MemcachedClient; import net.rubyeye.xmemcached.MemcachedClientBuilder; import net.rubyeye.xmemcached.XMemcachedClientBuilder; import net.rubyeye.xmemcached.utils.AddrUtil; public class App { public static void main(String[] args) throws Exception { MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("localhost:11211")); MemcachedClient client = builder.build(); //Classe deve implementar interface java.io.Serializable ExampleBean a = new ExampleBean(); a.setText("Me coloca no cache!"); //inserir objeto no cache por 30 segundos client.set("chave", 30, a); System.out.println(client.get("chave")); //remover objeto do cache client.delete("chave"); System.out.println(client.get("chave")); //contador client.incr("contador", 0); System.out.println(client.get("contador")); client.incr("contador", 2); client.incr("contador", 1); System.out.println(client.get("contador")); client.shutdown(); } }
Adicionar/Remover servidores dinamicamente:
MemcachedClient client = new XMemcachedClient(AddrUtil.getAddresses("server1:11211 server2:11211")); //adicionar servidor client.addServer("server3:11211"); //remover servidor client.removeServer("server1:11211");
Configurando um pool de conexões:
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("localhost:11211")); builder.setConnectionPoolSize(5);
Referências:
http://code.google.com/p/xmemcached
http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html
http://code.google.com/p/memcached
Código fonte: http://depositfiles.com/files/vs2kt05wv
É nóis, manow! Aqui é Java!
Nenhum comentário:
Postar um comentário