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