java和python哪個(gè)好 jave如何實(shí)現(xiàn)將數(shù)據(jù)庫數(shù)據(jù)存到內(nèi)存?
jave如何實(shí)現(xiàn)將數(shù)據(jù)庫數(shù)據(jù)存到內(nèi)存?我的理解是,你想做緩存,減少對數(shù)據(jù)庫的壓力。這個(gè)問題可以參考許多緩存框架的底層實(shí)現(xiàn)原則。從數(shù)據(jù)庫中找出數(shù)據(jù)后,使用地圖保存數(shù)據(jù)。當(dāng)然,如果對同步有要求,一般使用并
jave如何實(shí)現(xiàn)將數(shù)據(jù)庫數(shù)據(jù)存到內(nèi)存?
我的理解是,你想做緩存,減少對數(shù)據(jù)庫的壓力。
這個(gè)問題可以參考許多緩存框架的底層實(shí)現(xiàn)原則。從數(shù)據(jù)庫中找出數(shù)據(jù)后,使用地圖保存數(shù)據(jù)。當(dāng)然,如果對同步有要求,一般使用并發(fā)映射。鍵使用數(shù)據(jù)的主鍵,或者您定義一個(gè)主鍵以確保它在地圖中是唯一的,并且value是數(shù)據(jù)庫查詢的值。
這樣,當(dāng)您再次請求時(shí),可以直接從地圖中找到,如果有返回,如果沒有則從數(shù)據(jù)庫中查詢,然后放入地圖中。
如果您想做得更好,可以添加緩存過期時(shí)間。在外部配置了緩存過期時(shí)間之后,在保存映射時(shí),需要將當(dāng)前時(shí)間放入其中,或者啟動一個(gè)映射來存儲鍵和時(shí)間的對應(yīng)關(guān)系。每次查詢時(shí),首先檢查時(shí)間是否已過期。過期后,從兩個(gè)地圖中刪除數(shù)據(jù),然后檢查數(shù)據(jù)庫。
當(dāng)然,如果您想更高級,可以檢查用于熱數(shù)據(jù)緩存的LRU緩存失效方案。