pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
yml配置文件
spring
redis:
host: 39.97.98.67
port: 6379
password:
database: 0
timeout: 300000ms #连接超时
jedis:
pool:
max-active: 8 #连接池最大的连接数
max-wait: -1ms #连接池最大的阻塞等待时间(负值表示没有限制)
max-idle: 500 #连接池最大的空闲连接
配置类
/**
* redis 配置类
*
* @author lk
* @Date 2019/11/25 19:13
*/
@Configuration
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
@EnableCaching
public class RedisCacheConfig {
@Bean
@ConditionalOnMissingBean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException{
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
/**
* 自带的方法不好用,自己创建一个好用
*
*
* @Author lk
* @Date 2019/11/25 19:15
* @Param redisConnectionFactory
* @Return RedisTemplate<String, String>
*/
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
RedisSerializer stringSerializer = new StringRedisSerializer();
// key value序列化
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
// hash key value 序列化
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
工具类
@Component
public class RedisUtil {
@Autowired(required = false)
private RedisTemplate<String,String> redisTemplate;
// 简单写两个示范
/**
* 从缓存中获取值
*
* @Author lk
*/
public Object get(String key){
return key == null ? null : redisTemplate.opsForValue().get(key);
}
/**
* 普通缓存放入
*
* @Author lk
*/
public boolean set(String key, String value){
try{
redisTemplate.opsForValue().set(key,value);
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}
}
调用
@Autowired
private RedisUtil redisUtil;
@ApiOperation(value = "redis测试set", notes = "redis测试set")
@PostMapping(value = "/redisSet")
public Integer redisSet (@RequestParam String key ,@RequestParam String value){
redisUtil.set(key,value);
return 1;
}