@CachePut 更新數據庫,更新緩存

關於更新緩存 ,要注意 得兩點:

1、java

@Cacheable 的key 要和 @CachePut 的key 一致

好比:redis

@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;


    }

2、@CachePut的  返回值 要和 @Cacheable 的返回值 同樣,若是@Cacheable 返回的是一個對象,@CachePut 返回也要是對象,不然會報類型轉換異常,如上代碼 返回的都是 Uuser.數據庫

相關文章
相關標籤/搜索