秒殺專案學習筆記 物件快取

2021-10-06 19:00:58 字數 1271 閱讀 1435

頁面快取,url快取快取時間短,內容多,適合變化不大的頁面。

物件快取,只快取乙個物件,時間長,經常設定為0,永久有效。

與頁面快取的最大區別是,當乙個物件快取發生了變動,與這個物件快取有關的快取都要更新,否則會出現資料不一致。比如,更新了更改了密碼,那麼就要取更新token這個快取。

建立乙個查詢登入物件的快取

miaoshauserservice的方法:getbyid

public miaoshauser getbyid

(long id)

//快取中找不到

user=miaoshauserdao.

getbyid

(id);if

(user!=null)

return user;

}

當有方法會改變資料庫的內容,使得資料庫內容與快取內容不一致是,需要更新快取。

比如修改使用者的密碼:

miaoshauserservice的方法:updatepassword

public

boolean

updatepassword

(string token,

long id,string passnew)

//2.更新密碼

miaoshauser toupdateuser=

newmiaoshauser()

; toupdateuser.

setid

(id)

; toupdateuser.

setpassword

(md5util.

inputpasstodbpass

(passnew, user.

getsalt()

)); miaoshauserdao.

update

(toupdateuser)

;//3.更新資料庫與快取,一定保證資料一致性,修改token關聯的物件以及id關聯的物件

redisservice.

delete(""

+id)

;//不能直接刪除token,刪除之後就不能登入了

user.

setpassword

(toupdateuser.

getpassword()

);redisservice.

set(token,user)

;return

true

;}

秒殺專案學習筆記 異常處理

目的 將校驗失敗的錯誤資訊在客戶端顯示出來。實現 新建乙個全域性異常 攔截繫結異常bindexception,輸出錯誤資訊,並且優化返回資訊的過程。globleexceptionhandler 類 controlleradvice responsebody public class globleex...

Hibernate 快取 學習筆記

一.什麼是快取 快取是位於應用程式與物理資料來源之間,用於臨時存放複製資料的記憶體區域,目的是為了減少應用程式對物理資料來源訪問的次數,從而提高應用程式的執行效能.hibernate在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入...

快取設計學習筆記

最近在 redis 開發與運維 這是在看11章時候記得筆記 先放個最簡單的圖,這裡面每一層都可以有快取 總之,請求的任何乙個環節都可以根據需要做快取 剔除演算法 lru lfu fifo 超時剔除 主動更新這個實際上就是快取內容的選擇問題,假設mongo裡有一條完整的記錄,我們是選擇全部資料都快取還...