1、引入常用maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、配置连接信息
#yml配置
spring:
redis:
host: 127.0.0.1
port: 6379
password: 123456
jedis:
pool:
max-active: 8
max-wait: -1
max-idle: 500
min-idle: 0
lettuce:
shutdown-timeout: 0
#properties配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=123456
spring.redis.jedis.pool.max-active=8
spring.redis.jedis.pool.max-wait=-1
spring.redis.jedis.pool.max-idle=500
spring.redis.jedis.pool.min-idle=0
spring.redis.lettuce.shutdown-timeout=0
3、配置序列化器(方便Spring容器扫描到)
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory factory){
factory.setDatabase(1);
factory.afterPropertiesSet();
RedisTemplate<String, Object> template=new RedisTemplate<>();
template.setConnectionFactory(factory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
return template;
}
}
4、用法示例
@RestController
@RequestMapping("/redis")
public class RedisController {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@GetMapping("getValue")
@ResponseBody
public Object getValue(@RequestParam(value = "value", required = false) String value){
boolean containsKey = redisTemplate.hasKey(value);
if(!containsKey){
Map<String, Object> map = new HashMap<>();
map.put("a", value);
map.put("b", new Date());
redisTemplate.opsForValue().set(value, map);
}
return redisTemplate.opsForValue().get(value);
}
@PostMapping("delValue")
@ResponseBody
public Object delValue(@RequestParam(value = "value", required = false) String value){
redisTemplate.delete(value);
redisTemplate.delete(redisTemplate.keys(value + ":*"));
redisTemplate.delete(redisTemplate.keys(value + "*"));
return "删除成功";
}
}