Java连接Redis的基础方法
在Java应用中连接Redis,通常使用官方推荐的Jedis客户端或Lettuce客户端,两者都是高性能的Redis连接库,但Lettuce基于Netty实现,支持异步和非阻塞操作,更适合高并发场景,本文以Jedis为例,介绍Java连接Redis的具体步骤和注意事项。

添加依赖配置
需要在项目中引入Jedis的依赖,以Maven项目为例,在pom.xml中添加以下依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version> <!-- 建议使用最新稳定版 -->
</dependency>
如果使用Gradle,则在build.gradle中添加:
implementation 'redis.clients:jedis:4.3.1'
建立Redis连接
连接Redis前,需确保Redis服务已启动(默认端口为6379),以下是创建Jedis连接的基本代码:
import redis.clients.jedis.Jedis;
public class RedisConnection {
public static void main(String[] args) {
// 创建Jedis实例,指定Redis服务器IP和端口
Jedis jedis = new Jedis("localhost", 6379);
// 测试连接是否成功
String response = jedis.ping();
System.out.println("Redis响应: " + response); // 输出: PONG表示连接成功
// 关闭连接
jedis.close();
}
}
若Redis设置了密码,需在连接后进行认证:

jedis.auth("your_password");
执行基本操作
连接成功后,可通过Jedis提供的API对Redis进行数据操作,以下是常见操作示例:
-
字符串操作
jedis.set("name", "Java"); // 设置键值对 String value = jedis.get("name"); // 获取值 System.out.println("name: " + value); // 输出: Java jedis.del("name"); // 删除键 -
列表操作
jedis.lpush("list_key", "item1", "item2"); // 从左侧插入元素 List<String> list = jedis.lrange("list_key", 0, -1); // 获取列表所有元素 System.out.println("List: " + list); // 输出: [item2, item1] -
哈希操作

jedis.hset("hash_key", "field1", "value1"); // 设置哈希字段 String hashValue = jedis.hget("hash_key", "field1"); // 获取哈希字段值 System.out.println("Hash field1: " + hashValue); // 输出: value1
连接池优化
直接创建和关闭连接会影响性能,推荐使用Jedis连接池管理连接,以下是连接池配置示例:
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisPoolUtil {
private static JedisPool jedisPool;
static {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(100); // 最大连接数
config.setMaxIdle(20); // 最大空闲连接数
config.setMinIdle(5); // 最小空闲连接数
config.setTestOnBorrow(true); // 获取连接时测试有效性
jedisPool = new JedisPool(config, "localhost", 6379);
}
public static Jedis getResource() {
return jedisPool.getResource();
}
public static void closePool() {
if (jedisPool != null) {
jedisPool.close();
}
}
}
使用连接池时,通过getResource()获取连接,操作完成后无需手动关闭(连接池会回收)。
注意事项
- 异常处理:Redis操作可能抛出
JedisException,建议使用try-catch捕获异常,例如网络中断或Redis服务不可用。 - 连接超时:通过
JedisPoolConfig设置连接超时时间(setMaxWaitMillis),避免长时间阻塞。 - 数据序列化:Redis存储的是字节数组,若需存储Java对象,需使用JSON(如Jackson)或序列化工具(如Kryo)进行转换。
通过以上步骤,即可在Java应用中稳定连接并操作Redis,合理使用连接池和异常处理机制,能进一步提升应用的性能和可靠性。

















