SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis
在Spring Boot中,你可以使用StringRedisTemplate
或RedisTemplate
来操作Redis。以下是一些基本的操作示例:
首先,确保你的Spring Boot项目中包含了Spring Data Redis依赖,如使用Maven可以添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
然后,在你的应用程序中配置StringRedisTemplate
或RedisTemplate
:
@Configuration
public class RedisConfig {
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(new RedisStandaloneConfiguration("localhost", 6379));
}
@Bean
public StringRedisTemplate stringRedisTemplate(LettuceConnectionFactory connectionFactory) {
return new StringRedisTemplate(connectionFactory);
}
}
操作Redis的示例代码:
@Service
public class RedisService {
private final StringRedisTemplate stringRedisTemplate;
@Autowired
public RedisService(StringRedisTemplate stringRedisTemplate) {
this.stringRedisTemplate = stringRedisTemplate;
}
public void setKey(String key, String value) {
stringRedisTemplate.opsForValue().set(key, value);
}
public String getKey(String key) {
return stringRedisTemplate.opsForValue().get(key);
}
public void deleteKey(String key) {
stringRedisTemplate.delete(key);
}
public void setKeyWithExpirationTime(String key, String value, long timeout, TimeUnit unit) {
stringRedisTemplate.opsForValue().set(key, value, timeout, unit);
}
}
在上述代码中,StringRedisTemplate
提供了操作字符串类型键值对的方法,例如set
、get
和delete
。opsForValue()
方法用于操作字符串类型的数据。如果你需要操作其他类型的数据,如哈希、列表、集合等,可以使用opsForHash()
、opsForList()
、opsForSet()
、opsForZSet()
等方法。
如果你需要使用RedisTemplate
来操作对象,你需要配置RedisTemplate
的序列化器,因为默认的序列化器可能不支持对象序列化。
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
re
评论已关闭