Springboot2.x 集成redis

pom.xml 添加

<dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

yml 配置

spring: 
  redis:
    #数据库索引
    database: 0
    host: 118.24.11.111
    port: 6379
    password: 123456
    jedis:
      pool:
        #最大连接数
        max-active: 8
        #最大阻塞等待时间(负数表示没限制)
        max-wait: -1
        #最大空闲
        max-idle: 8
        #最小空闲
        min-idle: 0
    #连接超时时间
    timeout: 10000
RedisTemplate 配置,重写key和value的序列化

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        // 配置redisTemplate
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        RedisSerializer stringSerializer = new StringRedisSerializer();
        redisTemplate.setKeySerializer(stringSerializer); // key序列化
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // value序列化
        redisTemplate.setHashKeySerializer(stringSerializer); // Hash key序列化
        redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); // Hash value序列化
        redisTemplate.afterPropertiesSet();
        return redisTemplate;

    }

}

 

public interface RedisService {

    void setObj(String key, Object obj, long timeout);

    Object getObj(String key);

}

 

@Service("redisService")
public class RedisServiceImpl implements RedisService {
    @Resource
    private RedisTemplate redisTemplate;
    @Override
    public void setObj(final String key, Object obj, long timeout) {
        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
        operations.set(key, obj, timeout, TimeUnit.SECONDS);
    }
    @Override
    public Object getObj(final String key) {
        Object o = redisTemplate.opsForValue().get(key);
        return o;
    }


}

 

调用示例

@Override
    public User selectByPrimaryKey(Integer id) throws Exception {
        User user1 = (User)redisService.getObj("user" + id);
        if(user1 == null){
            User user = userMapper.selectByPrimaryKey(id);
            redisService.setObj("user" + id, user, 1000*60*2);
            return user;
        }
        return user1;
    }

 

posted @ 2019-01-30 12:00  咸鱼Boy  阅读(5550)  评论(0编辑  收藏  举报