Springboot2.x 集成redis

pom.xml 添加redis

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

yml 配置spring

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; }
相關文章
相關標籤/搜索