Spring Boot使用redis做数据缓存
- - ITeye博客SysUser.class)); //请注意这里. 3 redis服务器配置. /**
*此处的dao操作使用的是spring data jpa,使用@Cacheable可以在任意方法上,*比如@Service或者@Controller的方法上
*/
public interface SysUserRepo1 extends CustomRepository {.
在pom.xml中添加
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency>
@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; } }
# 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
/** *此处的dao操作使用的是spring data jpa,使用@Cacheable可以在任意方法上,*比如@Service或者@Controller的方法上 */ public interface SysUserRepo1 extends CustomRepository<SysUser, Long> { @Cacheable(value = "usercache") public SysUser findByUsername(String username); }
@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"; } }
效果如图: