Lettuce:Java 生态里最常用的 Redis 客户端
·
Lettuce:Java 生态里最常用的 Redis 客户端
Lettuce 在 GitHub 上有 5,756 个 Star,是 Java 生态里用得最多的 Redis 客户端之一。
它干的事情很专一:给 Java 应用提供连接 Redis 的能力。和 Jedis 不同,Lettuce 基于 Netty 做网络通信,天然支持异步和响应式调用,多个线程可以共享同一个连接。

1、 核心特性
Lettuce 提供三种 API 风格:同步、异步、响应式。同步 API 最简单,几行代码就能跑:
RedisClient client = RedisClient.create("redis://localhost");
StatefulRedisConnection<String, String> connection = client.connect();
String value = connection.sync().get("key");
异步和响应式的写法类似,返回值从 String 变成 RedisFuture 或 Mono。
在高并发场景下,异步 API 的优势比较明显。一个连接可以同时处理多个命令,不用每个线程都建一个连接池。这是 Netty 的事件循环模型带来的好处。

2、 高可用支持
Lettuce 对 Redis 的高可用方案做了完整封装:
- Redis Sentinel:自动故障转移,主节点挂了客户端自动切到新主节点
- Redis Cluster:自动路由命令到正确的分片,支持 MOVED 和 ASK 重定向
- 自动重连:连接断开后不需要手动重建,Lettuce 会自动恢复
这三项能力基本覆盖了生产环境的核心需求。
3、 扩展能力
除了基础的 Redis 命令,Lettuce 还支持 RediSearch 全文搜索、RedisJSON 原生操作、Redis Vector Sets 向量存储、Pub/Sub 发布订阅,以及自定义 Codec 来处理 UTF-8、JSON 等编解码。
4、 怎么引入
Maven 依赖:
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
<version>x.y.z</version>
</dependency>
Gradle 也可以,去 Maven Central 搜 io.lettuce 就行。兼容 Java 8 及以上版本。
5、 适合谁用
- 正在做 Java 后端服务、需要稳定连接 Redis 的开发者
- 项目从 Jedis 迁移、想要异步或响应式能力的团队
- 用了 Spring Data Redis 的项目,Spring 默认底层就是 Lettuce
应式能力的团队
- 用了 Spring Data Redis 的项目,Spring 默认底层就是 Lettuce
更多推荐
所有评论(0)