Lettuce 是一个可扩展的线程安全 Redis 客户端,适用于同步、异步和反应式使用。如果多个线程避免阻塞和事务性操作(例如BLPOP
和MULTI
/ EXEC
,则它们可以共享一个连接。 Lettuce是用netty构建的。支持高级 Redis 功能,例如 Sentinel、集群、管道、自动重新连接和 Redis 数据模型。
此版本的 Lettuce 已针对最新的 Redis 源代码版本进行了测试。
有关更多详细信息,请参阅参考文档和 API 参考。
在 Redis 大学免费学习
尝试 Redis 云
深入了解开发者教程
加入 Redis 社区
在 Redis 工作
Maven、Ivy、Gradle 等的二进制文件和依赖信息可以在 http://search.maven.org 找到。
Maven 中央存储库中提供了 Lettuce 的版本。另请查看发布版本。
Maven 示例:
< dependency >
< groupId >io.lettuce</ groupId >
< artifactId >lettuce-core</ artifactId >
< version >x.y.z</ version >
</ dependency >
如果您希望获得即将发布的主要版本的最新快照,请使用我们的 Maven 快照存储库并声明适当的依赖项版本。
< 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" );
每个 Redis 命令都由一个或多个方法实现,其名称与小写 Redis 命令名称相同。具有多个更改结果类型的修饰符的复杂命令包括 CamelCased 修饰符作为命令名称的一部分,例如 zrangebyscore 和 zrangebyscoreWithScores。
有关更多详细信息,请参阅基本用法。
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"
有关更多详细信息,请参阅异步 API。
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"
有关更多详细信息,请参阅反应式 API。
RedisPubSubCommands < String , String > connection = client . connectPubSub (). sync ();
connection . getStatefulConnection (). addListener ( new RedisPubSubListener < String , String >() { ... })
connection . subscribe ( "channel" );
Lettuce 是使用 Apache Maven 构建的。这些测试需要针对使用Makefile
配置的不同测试用例运行多个 Redis 实例。默认情况下针对 Redis unstable
运行测试。
构建:
$ 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
对于错误、问题和讨论,请使用 GitHub 问题。
Github 用于社交编码:如果您想编写代码,我鼓励通过来自此存储库的分支的拉取请求进行贡献。创建 Bug 和新功能的 Github 票证,并对您感兴趣的内容进行评论,并查看 CONTRIBUTING.md