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作为缓存的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot整合Redis以及缓存穿透缓存雪崩缓存击穿的理解如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁