Java的Redis客户端:Jedis、Lettuce和Redisson——概述与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Java的Redis客户端:热门库概览



Redis是一种高性能的键值存储数据库,广泛用于缓存、会话、队列和实时分析。在Java中与Redis交互,有几种成熟的客户端库。本文将介绍其中最流行的三种:Jedis、Lettuce和Redisson。它们各有特点、优势和适用场景。



1. Jedis——简单轻量的客户端



Jedis是一个极简的同步Redis客户端。它易于学习,非常适合不需要异步功能的小型项目和微服务。



Jedis的特点:

  • 同步API(阻塞调用)。
  • 支持连接池(JedisPool)。
  • 完全支持Redis命令。
  • 不支持异步或响应式操作。


连接和基本操作示例:

import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;

public class JedisExample { public static void main(String[] args) { // 创建连接池 try (JedisPool pool = new JedisPool("localhost", 6379); Jedis jedis = pool.getResource()) {

// 设置和获取值 jedis.set("user:100", "Alice"); String value = jedis.get("user:100"); System.out.println("Value: " + value); // 输出: Alice

// 操作列表 jedis.lpush("queue", "task1"); jedis.lpush("queue", "task2"); String task = jedis.rpop("queue"); System.out.println("Task from queue: " + task); // 输出: task1 } }}


何时选择Jedis:

  • 没有响应式需求的简单项目。
  • 需要最小依赖(单个jar包)。
  • 经典的阻塞操作。


2. Lettuce——异步和响应式客户端



Lettuce是一个基于Netty构建的现代客户端。它支持同步、异步和响应式(Reactive Streams)API。非常适合高负载系统。



Lettuce的特点:

  • 异步和响应式API(基于Project Reactor)。
  • 支持Redis集群、Sentinel、SSL。
  • 非阻塞操作——高吞吐量。
  • 支持Redis Pub/Sub、Streams、事务。


异步使用示例:

import io.lettuce.core.RedisClient;import io.lettuce.core.api.StatefulRedisConnection;import io.lettuce.core.api.async.RedisAsyncCommands;

public class LettuceAsyncExample { public static void main(String[] args) { RedisClient client = RedisClient.create("redis://localhost:6379"); try (StatefulRedisConnection<String, String> connection = client.connect()) { RedisAsyncCommands<String, String> async = connection.async();

// 异步设置 async.set("key:1", "Hello, Lettuce!");

// 带回调的异步获取 async.get("key:1").thenAccept(value -> System.out.println("Received: " + value) );

// 短暂延迟以完成异步操作 try { Thread.sleep(100); } catch (InterruptedException e) { } } client.shutdown(); }}


何时选择Lettuce:

  • 请求量大的高负载系统。
  • 需要异步或响应式编程。
  • 使用Redis集群或Sentinel。


3. Redisson——功能扩展的客户端



Redisson不仅仅是一个客户端,而是一个完整的框架

推荐