二十三、Spring Boot自定义Redis实现缓存机制
2017-04-20 23:49
951 查看
基于spring-date的已经实现了 CacheManager缓存管理器和caceh等,具体使用参考:http://blog.csdn.net/l_sail/article/details/70306339
其他文件参看:http://blog.csdn.net/l_sail/article/details/70306339
工程结构
maven依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lf</groupId> <artifactId>cache-RedisTemplate</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>cache-RedisTemplate</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--添加spring对cache的支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
自定义缓存管理
package com.lf.redisConfig; import com.lf.config.RedisObjectSerializer; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; /** * Created by LF on 2017/4/20. */ @Configuration public class RedisCacheConfig extends CachingConfigurerSupport { @Bean public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) { CacheManager cacheManager = new RedisCacheManager(redisTemplate); return cacheManager; } @Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>(); redisTemplate.setConnectionFactory(factory); //key序列化方式;(不然会出现乱码;) //如果实现了key的自定义方式 方法上有Long等非String类型的话,会报类型转换错误; //则要实现RedisSerializer的序列化, redisTemplate.setKeySerializer(new RedisObjectSerializer()); redisTemplate.setValueSerializer(new RedisObjectSerializer()); return redisTemplate; } //自定义key的实现方式 @Override public KeyGenerator keyGenerator() { System.out.println("RedisCacheConfig.keyGenerator()"); return (o, method, objects) -> { StringBuilder sb = new StringBuilder(); sb.append(o.getClass().getName()); sb.append(method.getName()); for (Object obj : objects) { sb.append(obj.toString()); } System.out.println("keyGenerator=" + sb.toString()); return sb.toString(); }; } }
其他文件参看:http://blog.csdn.net/l_sail/article/details/70306339
相关文章推荐
- 35. Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- Spring Boot集成Redis实现缓存机制
- (35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- Spring Boot 集成 Redis 实现缓存机制
- 整合SpringBoot+Mysql+Redis实现缓存机制的一个Demo
- (35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- spring boot整合redis实现缓存机制
- 35. Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
- SpringBoot+Redis+Nginx实现负载均衡以及Session缓存共享
- SpringBoot集成Redis来实现缓存技术方案
- spring+ehCache+redis多级缓存自定义实现
- SpringBoot集成Redis来实现缓存技术方案
- springboot利用springsession实现redis共享session,并且自定义sessionid
- SpringBoot中使用Redis实现缓存
- SpringBoot 整合redis实现缓存 记录@CachePut值为1
- spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
- 使用 SpringBoot 之 JPA 整合 Redis 实现缓存
- Spring Boot集成Redis实现缓存机制(从零开始学Spring Boot)
- Spring Boot项目利用Redis实现集中式缓存