關於更新緩存 ,要注意 得兩點:
一、
@Cacheable 的key 要和 @CachePut 的key 一致
比如:
@Cacheable(key = "'userCache'") //緩存,
public Uuser findByEmail(String email) {
System.err.println("執行這里,說明緩存中讀取不到數據,直接讀取數據庫....");
return redisMapper.findByEmail(email);
}
@CachePut(key = "'userCache'") //userCache要加‘’單引號,表示這是一個字符串
public Uuser updateSelf(String nickname, String email) {
System.err.println("執行這里,更新數據庫,更新緩存....");
uuserMapper.updateSelf(nickname, email);
Uuser uuser = redisMapper.findByEmail(email);
return uuser;
}
二、@CachePut的 返回值 要和 @Cacheable 的返回值 一樣,如果@Cacheable 返回的是一個對象,@CachePut 返回也要是對象,否則會報類型轉換異常,如上代碼 返回的都是 Uuser.