1. 导入依赖

    <!--redis依赖-->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>   
    <!--springboot缓存依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <!--json依赖-->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
    <!--pool2依赖-->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
    </dependency>
    
  2. 配置yml文件

     #redis设置
      redis:
        #jedis:
        lettuce:
          pool:
            max-active: 100 #连接池最大连接数(使用负值表示没有限制)
            max-idle: 20 #连接池中的最大空闲连接数,空闲太多可能会销毁
            max-wait: 1000ms #连接池最大阻塞等待时间(使用负值表示没有限制)
            min-idle: 10 #连接池中的最小空闲连接,务必保持几个空闲连接
        sentinel:
          master: mymaster 
          nodes: IP:26379,IP:26380,(如127.0.0.1):26381 #使用集群时
        password: 123 #Redis服务器连接密码
        #数据库索引,默认为0
        database: 0
    
  3. 编写config类进行配置

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.cache.RedisCacheConfiguration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.RedisSerializationContext;
    import org.springframework.data.redis.serializer.RedisSerializer;
    
    /**
     * @description 注解标记配置类
     */
    @Configuration
    public class RedisConfig {
        /**
         * 设置redisTemplate的数据存储类型
         */
        @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory factory){
            //创建一个redisTemplate对象用于设置对所有的编码
            RedisTemplate redisTemplate=new RedisTemplate();
            //先设置连接工厂,方法参数对象
            redisTemplate.setConnectionFactory(factory);
            //设置常规key的类型为String
            redisTemplate.setKeySerializer(RedisSerializer.string());
            //设置常规的value类型为json
            redisTemplate.setValueSerializer(RedisSerializer.json());
            //设置hash的key值为String
            redisTemplate.setHashKeySerializer(RedisSerializer.string());
            //设置hash的value值为json
            redisTemplate.setHashValueSerializer(RedisSerializer.json());
            //返回设置好的对象
            return redisTemplate;
        }
    
        /**
         * 设置缓存的数据存储类型
         */
        @Bean
        public RedisCacheConfiguration redisCacheConfiguration(){
            //调用RedisCacheConfiguration配置类的静态方法创建对象
            RedisCacheConfiguration redisCacheConfiguration= RedisCacheConfiguration.defaultCacheConfig();
            RedisCacheConfiguration cacheConfiguration = redisCacheConfiguration
                    //设定key值为String类型
                    .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.string()))
                    //设定value值为json类型
                    .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.json()));
            //将定好的对象返回
            RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig();
            configuration = configuration.serializeKeysWith(RedisSerializationContext
                    .SerializationPair.fromSerializer(RedisSerializer.string()))
                    .serializeValuesWith(RedisSerializationContext.SerializationPair
                            .fromSerializer(RedisSerializer.json()));
            return cacheConfiguration;
        }
    }
    
  4. 在服务实现类中注入redisTemplate,并在方法上打上@Cacheable注解,这里要注意的是@Cacheable注解需要设置一个key值(需要唯一值以作区分)

    @Autowired
    RedisTemplate redisTemplate;
    @Override
        @Cacheable(value = "insurances", key = "#root.methodName+'-'+#INSURANCE_TYPE_ID")
        public List<Insurance> list(int INSURANCE_TYPE_ID) {
            
        }
    
  5. 在启动类上打上开启缓存注解

    @EnableCaching
    public class FinanceInsuranceApplication {
        public static void main(String[] args) {
            SpringApplication.run(FinanceInsuranceApplication.class,args);
        }
    }