第12篇:redis用作缓存
流程
- 见第11篇
- cache配置类
- 使用
2. cache配置类
key生成策略:类名+方法名+参数名
注解:@EnableCaching
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public KeyGenerator keyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object o, Method method, Object... objects) {
StringBuilder sb = new StringBuilder();
sb.append(o.getClass().getName())
.append(method.getName());
for (Object object : objects) {
sb.append(object.toString());
}
return sb.toString();
}
};
}
}
3. 使用
@Cacheable(value = "cache-key")
@CachePut
每次都会触发真实方法调用
@CachEvict
清空缓存
@Service
public class CountServiceImpl implements CountService {
@Autowired
private CountMapper countMapper;
@Override
@Cacheable(value = "'count-' + '#pageNo' + '-' + '#pageSize'")
public PageInfo<Count> getAllCount(int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
PageInfo<Count> pageInfo = new PageInfo<>(countMapper.getAllCount());
return pageInfo;
}
}