pom.xml 添加
1<dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-data-redis</artifactId> 4</dependency>
yml 配置
1spring: 2 redis: 3 #数据库索引 4 database: 0 5 host: 118.24.11.111 6 port: 6379 7 password: 123456 8 jedis: 9 pool: 10 #最大连接数 11 max-active: 8 12 #最大阻塞等待时间(负数表示没限制) 13 max-wait: -1 14 #最大空闲 15 max-idle: 8 16 #最小空闲 17 min-idle: 0 18 #连接超时时间 19 timeout: 10000 20 21RedisTemplate 配置,重写key和value的序列化 22 23@Configuration 24public class RedisConfig { 25 @Bean 26 public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { 27 // 配置redisTemplate 28 RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>(); 29 redisTemplate.setConnectionFactory(redisConnectionFactory); 30 RedisSerializer stringSerializer = new StringRedisSerializer(); 31 redisTemplate.setKeySerializer(stringSerializer); // key序列化 32 redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // value序列化 33 redisTemplate.setHashKeySerializer(stringSerializer); // Hash key序列化 34 redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); // Hash value序列化 35 redisTemplate.afterPropertiesSet(); 36 return redisTemplate; 37 38 } 39 40} 41 42public interface RedisService { 43 44 void setObj(String key, Object obj, long timeout); 45 46 Object getObj(String key); 47 48} 49 50@Service("redisService") 51public class RedisServiceImpl implements RedisService { 52 @Resource 53 private RedisTemplate redisTemplate; 54 @Override 55 public void setObj(final String key, Object obj, long timeout) { 56 ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue(); 57 operations.set(key, obj, timeout, TimeUnit.SECONDS); 58 } 59 @Override 60 public Object getObj(final String key) { 61 Object o = redisTemplate.opsForValue().get(key); 62 return o; 63 } 64 65 66}
调用示例
1@Override 2 public User selectByPrimaryKey(Integer id) throws Exception { 3 User user1 = (User)redisService.getObj("user" + id); 4 if(user1 == null){ 5 User user = userMapper.selectByPrimaryKey(id); 6 redisService.setObj("user" + id, user, 1000*60*2); 7 return user; 8 } 9 return user1; 10 }