java中如何连接redis
连接 Redis 的方法
在 Java 中连接 Redis 通常使用 Jedis 或 Lettuce 客户端库。以下是两种常见方法的详细说明。
使用 Jedis 连接 Redis
Jedis 是一个轻量级的 Redis Java 客户端,适合快速开发和简单场景。
添加 Maven 依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.4.3</version>
</dependency>
创建连接并操作 Redis:
import redis.clients.jedis.Jedis;
public class RedisExample {
public static void main(String[] args) {
// 创建连接,默认连接到本地 6379 端口
Jedis jedis = new Jedis("localhost", 6379);
// 设置键值
jedis.set("key", "value");
// 获取键值
String value = jedis.get("key");
System.out.println(value);
// 关闭连接
jedis.close();
}
}
使用 Lettuce 连接 Redis
Lettuce 是一个高性能的 Redis Java 客户端,支持异步和响应式编程。
添加 Maven 依赖:
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
<version>6.2.6.RELEASE</version>
</dependency>
创建连接并操作 Redis:
import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;
public class RedisExample {
public static void main(String[] args) {
// 创建 RedisClient
RedisClient client = RedisClient.create("redis://localhost:6379");
// 建立连接
StatefulRedisConnection<String, String> connection = client.connect();
RedisCommands<String, String> commands = connection.sync();
// 设置键值
commands.set("key", "value");
// 获取键值
String value = commands.get("key");
System.out.println(value);
// 关闭连接
connection.close();
client.shutdown();
}
}
连接池配置
对于高并发场景,建议使用连接池管理 Redis 连接。
Jedis 连接池示例:
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class RedisPoolExample {
public static void main(String[] args) {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(10);
config.setMaxIdle(5);
JedisPool pool = new JedisPool(config, "localhost", 6379);
try (Jedis jedis = pool.getResource()) {
jedis.set("poolKey", "poolValue");
System.out.println(jedis.get("poolKey"));
}
pool.close();
}
}
连接 Redis 集群
如果需要连接 Redis 集群,可以使用 Jedis 或 Lettuce 的集群模式。
Jedis 集群示例:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
public class RedisClusterExample {
public static void main(String[] args) {
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("127.0.0.1", 7000));
nodes.add(new HostAndPort("127.0.0.1", 7001));
JedisCluster cluster = new JedisCluster(nodes);
cluster.set("clusterKey", "clusterValue");
System.out.println(cluster.get("clusterKey"));
cluster.close();
}
}
以上方法涵盖了 Java 中连接 Redis 的常见场景,可以根据具体需求选择合适的客户端和配置。







