頁面通用邏輯:
當使用者的請求到達後端時,先去redis中查詢快取,如果快取中找不到,則進行資料庫邏輯操作,然後渲染,存入快取並返回給前端!如果在快取中找到了則直接返回給前段。儲存在redis快取中的頁面需要設定時間,根據資料變化是否頻繁進行調整,一般都是1、2min。
這種快取一般用於不會經常變動的資訊,並且訪問次數比較多的頁面,這樣就不用每次都動態載入了。
商品列表頁 頁面快取
當訪問list頁面時,從快取中取到就返回這個html,如果取不到,利用thymeleafviewresolver的gettemplateengine().process和我們獲取到的資料,渲染模板。
並存入快取,然後返回給前端
一般這個頁面快取,過期時間也不會很長,防止資料的時效性很低(設定為1min,讀到的是1min前的頁面)。
主要防止短時間內的大併發訪問。
/*手動渲染 利用thymeleaf 的 thymeleafviewresolver*/
springwebcontext ctx = new springwebcontext(request,response,request.getservletcontext(),request.getlocale(),
/*利用 gettemplateengine()方法的process() 方法,需要傳入模板名稱和context 變數*/
html = thymeleafviewresolver.gettemplateengine().process("goods_list",ctx);//ctx + 模板 返回原始碼
/*得到手動渲染的模板*/
if (!stringutils.isempty(html))
return html;
}物件快取
相比於頁面快取是更細粒度的快取 + 快取更新。
物件快取就是當用到使用者資料的時候,可以從快取中取出。如:更新使用者密碼
public miaoshauser getbyid(long id)
//取資料庫
user = miaoshauserdao.getbyid(id);
if(user != null)
return user;
}
* 同步資料庫和快取的資訊,不然會造成資料不一致的情況
* */
public boolean updatepassword(string token,long id,string formpassword)
// 更新資料庫 資訊
miaoshauser updateuser = new miaoshauser();
updateuser.setid(id);
/*設定密碼 到資料庫 ,這時候 應該是formpassword ,更新密碼一定是先在前端填入 密碼,然後前端做 一次 加密傳進來*/
updateuser.setpassword(md5util.formpasstodbpass(formpassword,user.getsalt()));
miaoshauserdao.updatepassword(updateuser);
// 更新完資料庫資訊,防止快取中資訊不一致,處理快取 且涉及到所有該物件的快取都需要處理
// 乙個 是 根據 token 獲取物件,所以需要更新 token key 的快取物件資料, 乙個是根據id 獲取物件,同理
/** 處理快取:
* 1. 刪除相關快取資料
* 2. 更新相關快取中的資料
* */
redisservice.delete(miaoshauserkey.getbyname,""+id);//該物件快取可以直接刪,因為沒有可以從資料取
//但是token 快取不能刪除,而是應該修改重新設定,不然就無法登陸了(因為我們登陸是從快取中取)
user.setpassword(updateuser.getpassword());
//將物件 攜帶新的密碼放入快取
redisservice.set(miaoshauserkey.token,token,user);
return true;
}原文:
頁面快取與資料快取
2018 1 25 ubuntu裡pwd檢視當前目錄什麼是redis?redis的全稱為remote dictionary server,即遠端資料服務,快取資料庫是由義大利人開發的一款記憶體高速,是用c語言編寫的,資料模型為key value,它支援豐富的資料型別,比如string,list,ha...
vue 刪除頁面快取 Vue實現頁面快取
在 使用vue開發時,當進行頁面之間的切換時,上乙個頁面將會被銷毀。但是當我們想節省效能以及保留使用者上次操作的結果或避免ajax重複請求的時候,需要把某些特定的頁面快取下來。在vue中,提供了內建元件keep alive 包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。和相似,是乙個抽象元...
頁面輸出快取
頁面輸出快取 最簡單的一種,下面的duration和varybyparam屬性是必須的 outputcache duration 10 varybyparam none 只使用.cs檔案來設定頁面輸出快取 通過web.config設定頁面輸出快取 中的配置 頁面檔案 outputcache cach...