首先應該確保項目已經成功集成了redis進行緩存管理,集成方式可參考springboot2.x集成redis進行緩存管理
使用@Cacheable
/**
* 查詢多條數據
*
* @param offset 查詢起始位置
* @param limit 查詢條數
* @return 對象列表
*/
@Override
@Cacheable(value = {"imuser"},key = "'queryAllByLimit_'+#offset+'_'+#limit")
public List<ImUser> queryAllByLimit(int offset, int limit) {
PageHelper.startPage(offset, limit);
QueryWrapper<ImUser> wrapper = new QueryWrapper<>();
return imUserDao.selectList(wrapper);
}
執行該方法後,在redis中可以看到如下
該方法已經存儲。
在設置緩存時,可以指定key
Spring Expression Language (SpEL) expression for computing the key dynamically.
Spring Expression Language(SpEL)表達式,用於動態計算密鑰。
這裏我用的是字符串拼接,需要注意的一點就是雙引號中套單引號進行拼接
清除特定鍵值
@CacheEvict(value = {"imuser"},key = "'queryAllByLimit_'+#offset+'_'+#limit")
CacheEvict只能清除特定的鍵值,不能進行通配符清除,下面的寫法是無效的
@CacheEvict(value = {“imuser”},key = “‘queryAllByLimit_*’”)
上一篇文章中有個方法可以進行通配符清除
通配符刪除鍵
//僅針對這個util進行通配符清除
redisUtilService.evitCache("imuser","queryAllByLimit_*");