SpringBoot整合redis实战演示
前言
Redis缓存技术是提升后端处理效率的重要支柱,采用的主要思想为:用内存的空间来减小处理的时间。一、使用步骤
1.配置工作
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
application.properties
spring.redis.host=192.168.43.247
main程序
@EnableCaching
开启redis注解模式
实体类:
public class Dht11 implements Serializable
继承Serializable接口
配置类(学习中):
@Configuration
public class MyRedisConfig {
@Bean
public RedisTemplate<Object, Dht11> empRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, Dht11> template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer<Dht11> ser = new Jackson2JsonRedisSerializer<Dht11>(Dht11.class);
template.setDefaultSerializer(ser);
return template;
}
@Bean
public CacheManager cacheManager(RedisConnectionFactory factory){
RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofDays(1))
.disableCachingNullValues()
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
return RedisCacheManager.builder(factory).cacheDefaults(cacheConfiguration).build();}
}
2.使用redis缓存数据
代码如下(示例):
@Autowired
RedisTemplate redisTemplate;
//get部分MyBatis代码
//@Cacheable(cacheNames = {"dht"})
public List<Dht11> getDao() {
List<Dht11> list1 = redisTemplate.opsForList().range("dhtlist",0,-1);
if(list1.size() != 0){
return list1;
}
List<Dht11> list = myBatisMapper.get();
//for(int i=0;i<list.size();i++) {
redisTemplate.opsForList().rightPushAll("dhtlist",list);
//}
//System.out.println("size="+list.size());
//System.out.println(list.get(13350));
return list;
}
@Autowired
RedisTemplate redisTemplate;
public Dht11 saveDao(Dht11 dht11) {
redisTemplate.opsForList().rightPush("dhtlist",dht11);
myBatisMapper.save(dht11);
return dht11;
}
利用RedisTemplate类,将得到的数据利用List保存起来,当再次访问数据时,如果存在缓存,则直接调用缓存的数据