2021-05-01

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保存起来,当再次访问数据时,如果存在缓存,则直接调用缓存的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值