Jedis和Lettuce是两种常用的Java客户端库,用于与Redis服务器进行通信。它们的主要区别如下:
<!-- 集成redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 使用 Jedis 客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
spring:
redis:
host: localhost
database: 4
port: 6379
password: 123456
lettuce:
pool:
max-active: 8
max-idle: 10
max-wait: -1
min-idle: 0
#jedis 客户端配置
jedis:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
enabled: false
timeout: 10000
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.database}")
private int database;
@Bean
public JedisPool jedisPool() {
JedisPoolConfig poolConfig = new JedisPoolConfig();
JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379,100, "123456");
return jedisPool;
}
//redis 的序列化
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericToStringSerializer<>(Object.class));
// 设置其他序列化器和配置
return template;
}
用的时候直接注入 Bean 就 key 使用了