【Redis系列】Java操作Redis客户端

【Redis系列】Java 操作 Redis 的主流客户端(2025-2026 推荐方案)

目前(2025-2026 年)Java 生态操作 Redis 最主流的几种客户端,按实际生产使用占比社区活跃度排序如下:

排名客户端名称当前主流版本是否推荐新项目优点简述缺点 / 坑点典型使用场景
1Lettuce6.3.x / 6.4.x★★★★★Redis 官方推荐、支持响应式、线程安全、连接池优秀学习曲线稍陡,配置项较多Spring Boot 3.x 默认、微服务首选
2Jedis5.2.x / 5.3.x★★★☆☆API 最简单、最直观、文档最丰富非线程安全(需池化)、响应式支持差老项目、快速原型、教学场景
3Redisson3.32.x / 3.33.x★★★★☆功能最丰富(分布式锁、Map、Set、延迟队列等)包体积较大、侵入性强、学习成本高需要分布式数据结构的业务
4spring-data-redis3.2.x / 3.3.x★★★★★与 Spring 生态无缝集成、抽象层高底层还是 Lettuce 或 Jedis,性能取决于底层99% Spring Boot 项目
5lettuce + spring-data-redis★★★★★目前最推荐的组合Spring Boot 官方推荐组合

2025-2026 年最推荐的组合(强烈建议)

Spring Boot 项目(绝大多数场景)

依赖:
spring-boot-starter-data-redis     →  默认使用 Lettuce
# 如果你非常怀念 Jedis 的风格,可以显式切换
spring-boot-starter-data-redis + jedis(排除 lettuce)

非 Spring 项目 / 底层追求极致性能

推荐直接使用:Lettuce 6.3+(原生)
其次:Jedis 5.2+(加连接池)

一、最推荐写法:Spring Boot + Lettuce(2025-2026 主流)

# application.yml
spring:
  data:
    redis:
      host: 127.0.0.1
      port: 6379
      # password: 123456
      database: 0
      timeout: 2000ms
      lettuce:
        pool:
          max-active: 8      # 连接池最大连接数
          max-idle: 8
          min-idle: 0
          max-wait: -1ms     # -1 表示不限制等待

常用操作模板(推荐使用 RedisTemplateStringRedisTemplate

@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    @Autowired
    private StringRedisTemplate stringRedisTemplate;  // 专门处理 String 类型

    // ------------------ 字符串 ------------------
    public void set(String key, Object value, long timeout, TimeUnit unit) {
        redisTemplate.opsForValue().set(key, value, timeout, unit);
    }

    public Object get(String key) {
        return redisTemplate.opsForValue().get(key);
    }

    // ------------------ Hash ------------------
    public void hSet(String key, String field, Object value) {
        redisTemplate.opsForHash().put(key, field, value);
    }

    public Object hGet(String key, String field) {
        return redisTemplate.opsForHash().get(key, field);
    }

    // ------------------ 分布式锁(推荐使用 Redisson) ------------------
    // 或自己基于 setIfAbsent + Lua 脚本实现
}

二、纯 Lettuce 原生使用(非 Spring 项目)

<dependency>
    <groupId>io.lettuce</groupId>
    <artifactId>lettuce-core</artifactId>
    <version>6.4.0.RELEASE</version>
</dependency>
// 最推荐:使用连接池
RedisClient redisClient = RedisClient.create("redis://127.0.0.1:6379");
StatefulRedisConnection<String, String> connection = redisClient.connect();

RedisCommands<String, String> syncCommands = connection.sync();

syncCommands.set("key", "value");
syncCommands.expire("key", 60);

String value = syncCommands.get("key");

connection.close();
redisClient.shutdown();

异步 / 响应式写法(Lettuce 最大优势)

RedisAsyncCommands<String, String> async = connection.async();
RedisFuture<String> future = async.get("key");

future.thenAccept(value -> System.out.println(value));

三、Redisson 典型使用场景(当你需要分布式数据结构时)

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.33.0</version>
</dependency>
@Autowired
private RedissonClient redisson;

// 分布式锁
RLock lock = redisson.getLock("myLock");
lock.lock(10, TimeUnit.SECONDS);   // 自动续期
try {
    // 业务逻辑
} finally {
    lock.unlock();
}

// 分布式 Map
RMap<String, Object> map = redisson.getMap("userCache");
map.put("user:1001", user);

// 延迟队列
RBlockingQueue<String> queue = redisson.getBlockingQueue("delayQueue");
RDelayedQueue<String> delayedQueue = redisson.getDelayedQueue(queue);
delayedQueue.offer("task", 30, TimeUnit.SECONDS);  // 30秒后进入队列

四、2025-2026 年最常见的选型决策树

你是否使用 Spring Boot?
├── 是 ──> 直接使用 spring-boot-starter-data-redis(默认 Lettuce)
│
└── 否
    ├── 需要分布式锁、Map、Set、延迟队列、布隆过滤器等高级结构?
    │   └── 是 ──> 首选 Redisson
    │
    └── 只做基本的 get/set、incr、list、hash?
        ├── 对性能、响应式有较高要求? ──> Lettuce 原生
        └── 追求代码最简单、最熟悉? ──> Jedis + 连接池

五、总结一句话建议(2025-2026)

Spring Boot 项目spring-boot-starter-data-redis(Lettuce)
需要分布式数据结构Redisson
纯底层追求极致性能/响应式Lettuce 原生
老项目 / 追求最简单 APIJedis(加连接池)

有哪种具体场景你正在纠结用哪个客户端?
(比如 Spring Boot + 集群、响应式 WebFlux、分布式锁、缓存穿透防线等)
告诉我,我可以给你更针对性的代码示例和配置。

文章已创建 3958

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部