對於springboot中基於方法的緩存Caching來說,我們直接以聲明的方式添加,刪除這些緩存,而它們在redis這種持久化產品中,通過value::key
的方法組成一個redis.key,在業務方法中,可以通過這種key來手動獲取它們。
- 註解聲明
@CacheEvict(value = CacheConstants.USER_DETAILS, key = "#sysUser.username")
public Boolean removeUserById(SysUser sysUser) {
sysUserRoleMapper.deleteByUserId(sysUser.getUserId());
this.removeById(sysUser.getUserId());
return Boolean.TRUE;
}
- 業務代碼中獲取
Cache cache = cacheManager.getCache(CacheConstants.USER_DETAILS);
if (cache != null && cache.get(username) != null) {
return (PigUser) cache.get(username).get();
}
- redis中的存儲