024 引入Redis作为缓存

Posted trekxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了024 引入Redis作为缓存相关的知识,希望对你有一定的参考价值。

一 .概述

  在本节之中,我们引入Redis作为缓存的实现.


 二 .环境的搭建

  首先我们引入redis的场景启动器.

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

然后我们查看自动配置类:

@Configuration
@ConditionalOnClass({ JedisConnection.class, RedisOperations.class, Jedis.class })
@EnableConfigurationProperties(RedisProperties.class)
public class RedisAutoConfiguration {

我们发现,redis的配置是存放在RedisProperties类之中,我们查看此类.

@ConfigurationProperties(prefix = "spring.redis")
public class RedisProperties {

    private int database = 0;


    private String url;

  
    private String host = "localhost";

    private String password;

我们现在知道,我们的配置都存放在spring.redis之中,那么我们就进行配置.

spring:
redis: host:
127.0.0.1 port: 6379

下面我们进行测试: 

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {

    @Autowired
    private StringRedisTemplate redisTemplate;
    
    @Test
    public void test() {
        this.redisTemplate.opsForValue().set("name", "trek");
    }
}

我们打开我们的redis客户端进行查看,发现下面的结果:

技术分享图片


三 .CacheManager的测试

@RestController
public class CacheController {

    @Resource
    private CacheService cacheService;

    @RequestMapping("/cat/{id}")
    public Cat cat(@PathVariable("id")Integer id) {
        return this.cacheService.getCatById(id);
    }
}
@Service
@Slf4j
public class CacheService {
    
    @Cacheable(cacheNames= {"cat"},key="#id")
    public Cat getCatById(Integer id) {
        log.info("通过{}查询Person",id);
        return Cat.builder().name("trek").age(12).id(id).build();
    }
}

我们现在访问url,看看redis之中是否已经有了数据.

技术分享图片

我们发现数据已经存在了,但是存放的数据可能不是我们想要的结果.

下一节,我们就去实现我们的序列化的功能


以上是关于024 引入Redis作为缓存的主要内容,如果未能解决你的问题,请参考以下文章

Shiro整合Springboot缓存之Redis实现

SpringBoot整合Redis以及缓存穿透缓存雪崩缓存击穿的理解如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁

ELK 收集网络设备日志-----引入 redis进行缓存

Discuz!NT中的Redis架构设计

使用Redis做MyBatis的二级缓存

redis-- 缓存(redis作为缓存使用)