Lettuce é um cliente Redis escalonável e seguro para thread para uso síncrono, assíncrono e reativo. Vários threads podem compartilhar uma conexão se evitarem operações de bloqueio e transacionais como BLPOP
e MULTI
/ EXEC
. A alface é feita com rede. Suporta recursos avançados do Redis, como modelos de dados Sentinel, Cluster, Pipelining, Auto-Reconnect e Redis.
Esta versão do Lettuce foi testada na versão mais recente do Redis source-build.
Consulte a documentação de referência e a Referência da API para obter mais detalhes.
Aprenda gratuitamente na Redis University
Experimente a nuvem Redis
Mergulhe nos tutoriais para desenvolvedores
Junte-se à comunidade Redis
Trabalhar na Redis
Binários e informações de dependência para Maven, Ivy, Gradle e outros podem ser encontrados em http://search.maven.org.
Versões de alface estão disponíveis no repositório Maven Central. Dê uma olhada também nos Lançamentos.
Exemplo para Maven:
< dependency >
< groupId >io.lettuce</ groupId >
< artifactId >lettuce-core</ artifactId >
< version >x.y.z</ version >
</ dependency >
Se você preferir os snapshots mais recentes da próxima versão principal, use nosso repositório de snapshots Maven e declare a versão de dependência apropriada.
< dependency >
< groupId >io.lettuce</ groupId >
< artifactId >lettuce-core</ artifactId >
< version >x.y.z.BUILD-SNAPSHOT</ version >
</ dependency >
< repositories >
< repository >
< id >sonatype-snapshots</ id >
< name >Sonatype Snapshot Repository</ name >
< url >https://oss.sonatype.org/content/repositories/snapshots/</ url >
< snapshots >
< enabled >true</ enabled >
</ snapshots >
</ repository >
</ repositories >
RedisClient client = RedisClient . create ( "redis://localhost" );
StatefulRedisConnection < String , String > connection = client . connect ();
RedisStringCommands sync = connection . sync ();
String value = sync . get ( "key" );
Cada comando Redis é implementado por um ou mais métodos com nomes idênticos ao nome do comando Redis em letras minúsculas. Comandos complexos com vários modificadores que alteram o tipo de resultado incluem o modificador CamelCased como parte do nome do comando, por exemplo, zrangebyscore e zrangebyscoreWithScores.
Consulte Uso básico para obter mais detalhes.
StatefulRedisConnection < String , String > connection = client . connect ();
RedisStringAsyncCommands < String , String > async = connection . async ();
RedisFuture < String > set = async . set ( "key" , "value" );
RedisFuture < String > get = async . get ( "key" );
LettuceFutures . awaitAll ( set , get ) == true
set . get () == "OK"
get . get () == "value"
Consulte API assíncrona para obter mais detalhes.
StatefulRedisConnection < String , String > connection = client . connect ();
RedisStringReactiveCommands < String , String > reactive = connection . reactive ();
Mono < String > set = reactive . set ( "key" , "value" );
Mono < String > get = reactive . get ( "key" );
set . subscribe ();
get . block () == "value"
Consulte API reativa para obter mais detalhes.
RedisPubSubCommands < String , String > connection = client . connectPubSub (). sync ();
connection . getStatefulConnection (). addListener ( new RedisPubSubListener < String , String >() { ... })
connection . subscribe ( "channel" );
A alface é construída com Apache Maven. Os testes requerem várias instâncias do Redis em execução para diferentes casos de teste configurados usando um Makefile
. Os testes são executados por padrão no Redis unstable
.
Para construir:
$ git clone https://github.com/redis/lettuce.git
$ cd lettuce/
$ make prepare ssl-keys
$ make test
redis
): make prepare
make ssl-keys
make test
make start
make stop
Para bugs, perguntas e discussões, use os problemas do GitHub.
Github é para codificação social: se você quiser escrever código, incentivo contribuições por meio de pull requests de forks deste repositório. Crie tickets no Github para bugs e novos recursos e comente aqueles que lhe interessam e dê uma olhada em CONTRIBUTING.md