redis 在spring boot上的整合

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;
}
发布了214 篇原创文章 · 获赞 281 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/lk1822791193/article/details/103512102