除了使用 Spring Data Redis
,Java 连接 Redis 还可以通过以下几种方式:
1. Jedis
Jedis 是一个流行的 Java Redis 客户端库,提供了简单的 API 来访问 Redis。
依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.3</version> <!-- 使用最新版本 -->
</dependency>
示例代码:
import redis.clients.jedis.Jedis;
public class JedisExample {
public static void main(String[] args) {
try (Jedis jedis = new Jedis("localhost", 6379)) {
jedis.set("key", "value");
System.out.println("Value: " + jedis.get("key"));
}
}
}
2. Lettuce
Lettuce 是另一个流行的 Java Redis 客户端库,支持异步和响应式操作。
依赖:
<dependency>
<groupId>io.lettuce.core</groupId>
<artifactId>lettuce-core</artifactId>
<version>6.2.2</version> <!-- 使用最新版本 -->
</dependency>
示例代码:
import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;
public class LettuceExample {
public static void main(String[] args) {
RedisClient redisClient = RedisClient.create("redis://localhost:6379");
try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {
RedisCommands<String, String> syncCommands = connection.sync();
syncCommands.set("key", "value");
System.out.println("Value: " + syncCommands.get("key"));
}
}
}
3. Redisson
Redisson 是一个高级 Redis 客户端,提供了丰富的功能和分布式对象。
依赖:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.16.5</version> <!-- 使用最新版本 -->
</dependency>
示例代码:
import org.redisson.Redisson;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
public class RedissonExample {
public static void main(String[] args) {
Config config = new Config();
config.useSingleServer().setAddress("redis://localhost:6379");
try (RedissonClient redisson = Redisson.create(config)) {
RBucket<String> bucket = redisson.getBucket("key");
bucket.set("value");
System.out.println("Value: " + bucket.get());
}
}
}
4. Spring Data Redis (非 Spring Boot)
即使不使用 Spring Boot,Spring Data Redis 也可以单独使用,以便在普通的 Spring 应用中连接 Redis。
依赖:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>3.6.0</version> <!-- 使用最新版本 -->
</dependency>
配置和使用:
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericToStringSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory("localhost", 6379);
}
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
template.setValueSerializer(new GenericToStringSerializer<>(Object.class));
return template;
}
}
总结
- Jedis:简单易用,适合大多数应用。
- Lettuce:支持异步和响应式操作,适合需要高性能的应用。
- Redisson:提供丰富的高级功能,如分布式锁和集合。
- Spring Data Redis:简化 Spring 应用中 Redis 的操作,与 Spring Boot 集成时非常方便。
选择适合你的项目需求的 Redis 客户端库。