springboot2.x +RedisCacheManager + CacheManager +@Cacheable 实现注解化缓存管理

本文详细介绍如何在Spring Boot项目中使用Redis作为缓存,包括环境配置、使用@Cacheable、@CachePut、@CacheEvict注解进行高效缓存管理。


实际业务开发中,免不了会使用redis作为缓存,加快接口响应速度。一个典型的场景:前端请求到后端服务时,后端服务先查询redis缓存,如果查到则使用缓存数据,否则再查mysql数据库,完后放到redis中。

上面场景一般的实现过程,一般的都是:

//1.查询redis
//2.判断redis结果是否为空
//3.如果为空,则继续查mysql数据库
//4.mysql的结果放到redis中
//5.返回结果

上述步骤是比较繁琐的,也不优雅,我们可以使 用spring的@Cacheable、@CacheEvict、@CachePut 等注解来更优雅的实现上述过程。

一. 环境准备

1.1 引入redis starter依赖

因为是基于redis的缓存,因此要引入redis的依赖,外加redis基础配置,这个步骤就不详细展开了。

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

1.2 配置CacheManager

需要特别注意,此配置是对于springboot2.x版本和1.x,配置是完全不同的

1.2.1 springboot2.x

@EnableCaching
@Configuration
public class RedisConfig {
   
   
	
    @Bean("10m")
    public CacheManager cacheManager10m(RedisConnectionFactory redisConnectionFactory) {
   
   
        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration
                .defaultCacheConfig()
                .entryTtl(Duration.ofMinutes(10))
                //替换原来的cache name
//                .prefixKeysWith("QQQQ")
                .computePrefixWith(cacheName -> "yourappname".concat(":").concat(cacheName).concat(":"))
                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));

        return RedisCacheManager
                .builder(RedisCache
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值