-
导入依赖
<!--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> -
配置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 -
编写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; } } -
在服务实现类中注入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) { } -
在启动类上打上开启缓存注解
@EnableCaching public class FinanceInsuranceApplication { public static void main(String[] args) { SpringApplication.run(FinanceInsuranceApplication.class,args); } }
SpringBoot集成Redis
浙公网安备 33010602011771号