springboot整合redis

springboot整合redis1 关键依赖 redis dependency groupid org springframew boot groupid artifactid spring boot starter data redis artifactid dependency

大家好,我是讯享网,很高兴认识大家。
1.关键依赖 <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--common-poo12--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.67</version> </dependency>

讯享网

2.配置文件

讯享网server: port: 9999 servlet: context-path: /kgc spring: redis: port: 6379 host: localhost cache: type: redis # 缓存类型 cache-names: xxx,yyy redis: cache-null-values: true # 允许Redis缓存空值 key-prefix: dacai_ time-to-live: 0ms # 缓存超时时间戳,配置为0则永不过期 use-key-prefix: true # 启用Redis的键前缀 thymeleaf: cache: false datasource: username: root password: 1234 url: jdbc:mysql:///db2109 #type第三方连接池的主类 mvc: format: date: yyyy-MM-dd hiddenmethod: filter: enabled: true mybatis: mapper-locations: classpath:/mybatis/mapper/*.xml type-aliases-package: cn.kgc.*.entity configuration: map-underscore-to-camel-case: true logging: level: cn.kgc: debug

3.config.RedisConfig类

@Configuration @EnableCaching //启用缓存注解 public class RedisConfig extends CachingConfigurerSupport { /*@Autowired private RedisConnectionFactory connectionFactory;*/ @Bean public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory connectionFactory){ RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); // 指定k/v的序列化方式 redisTemplate.setKeySerializer(new StringRedisSerializer()); Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class); redisTemplate.setValueSerializer(serializer); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); om.setTimeZone(TimeZone.getDefault()); om.configure(MapperFeature.USE_ANNOTATIONS, false); om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); om.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); // 此项必须配置,否则会报java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to XXX //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);//过时方法,用activateDefaultTyping替代 om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance , ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); om.setSerializationInclusion(JsonInclude.Include.NON_NULL); serializer.setObjectMapper(om); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(serializer); return redisTemplate; } @Bean public RedisCacheManager redisCacheManager(RedisTemplate redisTemplate) { RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisTemplate.getConnectionFactory()); RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer())); return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration); } } 

4. service.xx类impl

讯享网@Autowired private RedisTemplate redisTemplate;

@Cacheable(cacheNames = "xxx",key = "'getEmpList'")
讯享网@Cacheable(cacheNames = "xxx",key = "'emp:id'+#id") 

增改


讯享网

@CachePut(cacheNames = "xxx",key = "'emp:id'+#shopping.id")

讯享网@CacheEvict(cacheNames = "xxx",key = "'emp:id'+#id") 

小讯
上一篇 2025-02-16 17:50
下一篇 2025-01-05 19:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/44492.html