Spring Boot使用redis做数据缓存
1 添加redis支持
在pom.xml中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
?
2 redis配置
@Configuration
@EnableCaching
public class RedisCacheConfig {
@Bean
public CacheManager cacheManager(
@SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {
return new RedisCacheManager(redisTemplate);
}
@Bean
public RedisTemplate<String, String> redisTemplate(
RedisConnectionFactory factory) {
final StringRedisTemplate template = new StringRedisTemplate(factory);
template.setValueSerializer(new Jackson2JsonRedisSerializer<SysUser>(
SysUser.class)); //请注意这里
return template;
}
}
?
3 redis服务器配置
# REDIS (RedisProperties) spring.redis.database= # database name spring.redis.host=localhost # server host spring.redis.password= # server password spring.redis.port=6379 # connection port spring.redis.pool.max-idle=8 # pool settings ... spring.redis.pool.min-idle=0 spring.redis.pool.max-active=8 spring.redis.pool.max-wait=-1 spring.redis.sentinel.master= # name of Redis server spring.redis.sentinel.nodes= # comma-separated list of host:port pairs
?
4 应用
/**
*此处的dao操作使用的是spring data jpa,使用@Cacheable可以在任意方法上,*比如@Service或者@Controller的方法上
*/
public interface SysUserRepo1 extends CustomRepository<SysUser, Long> {
@Cacheable(value = "usercache")
public SysUser findByUsername(String username);
}
?
5 检验
@Controller
public class TestController {
@Autowired
SysUserRepo1 sysUserRepo1;
@RequestMapping("/test")
public @ResponseBody String test(){
final SysUser loaded = sysUserRepo1.findByUsername("wyf");
final SysUser cached = sysUserRepo1.findByUsername("wyf");
return "ok";
}
}
?
效果如图:

?
文章来自:http://wiselyman.iteye.com/blog/2184884