java如何调用redis
使用 Jedis 客户端连接 Redis
Jedis 是 Redis 官方推荐的 Java 客户端之一,提供了完整的 Redis 命令支持。需要在项目中引入 Jedis 依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
创建连接并操作 Redis:
// 创建连接
Jedis jedis = new Jedis("localhost", 6379);
// 存储数据
jedis.set("key", "value");
// 获取数据
String value = jedis.get("key");
// 关闭连接
jedis.close();
使用 Lettuce 客户端连接 Redis
Lettuce 是基于 Netty 的异步 Redis 客户端,支持响应式编程。引入 Lettuce 依赖:
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
<version>6.2.3.RELEASE</version>
</dependency>
异步操作示例:
RedisClient client = RedisClient.create("redis://localhost");
StatefulRedisConnection<String, String> connection = client.connect();
RedisCommands<String, String> syncCommands = connection.sync();
syncCommands.set("key", "value");
String value = syncCommands.get("key");
connection.close();
client.shutdown();
使用 Spring Data Redis 集成
Spring Data Redis 提供了更高层次的抽象,简化了 Redis 操作。添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置 application.properties:
spring.redis.host=localhost
spring.redis.port=6379
通过 RedisTemplate 操作:
@Autowired
private RedisTemplate<String, String> redisTemplate;
public void setValue(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public String getValue(String key) {
return redisTemplate.opsForValue().get(key);
}
连接池配置
对于生产环境,建议配置连接池以提高性能。以 Jedis 为例:
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(128);
poolConfig.setMaxIdle(64);
JedisPool jedisPool = new JedisPool(poolConfig, "localhost");
try (Jedis jedis = jedisPool.getResource()) {
jedis.set("pooledKey", "pooledValue");
}
处理 Redis 数据结构
不同数据结构的操作示例:
// 哈希
jedis.hset("user:1", "name", "Alice");
Map<String, String> user = jedis.hgetAll("user:1");
// 列表
jedis.lpush("messages", "msg1");
List<String> messages = jedis.lrange("messages", 0, -1);
// 集合
jedis.sadd("tags", "java");
Set<String> tags = jedis.smembers("tags");






