頁面快取 url快取 物件快取

2021-09-11 13:58:36 字數 2472 閱讀 4473

頁面通用邏輯:

當使用者的請求到達後端時,先去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...