Lettuce操作redis 作者:马育民 • 2025-08-12 23:18 • 阅读:10012 # 介绍 Lettuce 是一款基于 Netty 的高性能 Redis 客户端,支持同步、异步、响应式操作模式,对 Redis 的各种特性(如集群、哨兵、流、ACL 等)有完善支持,尤其适合高并发、分布式场景。 Lettuce 凭借其高性能和丰富的特性,成为 Java 生态中操作 Redis 的首选客户端之一,尤其适合高并发、分布式系统场景。 ### 应用 spring-data-redis的驱动包替换为Lettuce ### 核心特性 1. **多编程模型支持** - **同步操作**:通过 `RedisCommands` 执行阻塞式命令。 - **异步操作**:通过 `AsyncRedisCommands` 执行非阻塞命令,返回 `CompletableFuture`。 - **响应式操作**:通过 `ReactiveRedisCommands` 支持响应式编程(适配 RxJava、Project Reactor)。 2. **高级特性支持** - 兼容 Redis 6+ 的 ACL 权限控制、SSL 加密。 - 支持 Redis 集群(自动分片、故障转移)、哨兵模式、主从复制。 - 支持 Stream 数据结构(消息队列功能)、Lua 脚本、管道(Pipeline)等。 3. **线程安全与高效性** - 基于 Netty 的事件驱动模型,单连接可支持多线程并发操作(无需为每个线程创建连接)。 - 内置连接池管理(可结合 `commons-pool2`),减少连接创建开销。 # 核心组件 - **`RedisClient`**:Redis 客户端入口,负责创建连接。 - **`StatefulRedisConnection`**:保持与 Redis 服务器的长连接,线程安全,可共享。 - **`RedisCommands`**:同步命令接口(如 `set`、`get`)。 - **`AsyncRedisCommands`**:异步命令接口(返回 `CompletableFuture`)。 - **`ReactiveRedisCommands`**:响应式命令接口(返回 `Mono`/`Flux`)。 ### 注意事项 - **线程安全**:`StatefulRedisConnection` 是线程安全的,可在多线程间共享,无需频繁创建。 - **资源释放**:`RedisClient` 和 `StatefulRedisConnection` 需在使用后关闭(推荐 try-with-resources 语法)。 - **版本兼容**:Lettuce 6.x 支持 Redis 6+ 的所有特性,若使用旧版 Redis,需选择对应兼容的 Lettuce 版本。 # 依赖 ```xml io.lettuce lettuce-core 6.2.4.RELEASE redis.clients jedis 3.3.0 ``` 原文出处:http://malaoshi.top/show_1GW1fGFgecKG.html