卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

redis緩存淘汰原理 lru算法?

lru算法?LRU算法的設計原則是:如果一個數(shù)據(jù)最近一段時間沒有被訪問過,那么它在將來就不太可能被訪問。換言之,當有限的空間充滿數(shù)據(jù)時,應該消除最長時間未被訪問的數(shù)據(jù)。執(zhí)行LRU1。使用數(shù)組存儲數(shù)據(jù),

lru算法?

LRU算法的設計原則是:如果一個數(shù)據(jù)最近一段時間沒有被訪問過,那么它在將來就不太可能被訪問。換言之,當有限的空間充滿數(shù)據(jù)時,應該消除最長時間未被訪問的數(shù)據(jù)。

執(zhí)行LRU

1。使用數(shù)組存儲數(shù)據(jù),用訪問時間戳標記每個數(shù)據(jù)項。插入新數(shù)據(jù)項時,首先增加數(shù)組中現(xiàn)有數(shù)據(jù)項的時間戳,將新數(shù)據(jù)項的時間戳設置為0,然后將其插入數(shù)組中。每次訪問數(shù)組中的數(shù)據(jù)項時,所訪問數(shù)據(jù)項的時間戳都設置為0。當數(shù)組空間已滿時,時間戳最大的數(shù)據(jù)項將被刪除。

2. 使用鏈表實現(xiàn),每次插入新數(shù)據(jù)時,將新數(shù)據(jù)插入鏈表的頭部;每次緩存命中時,將數(shù)據(jù)移動到鏈表的頭部(即訪問數(shù)據(jù));然后在鏈表已滿時丟棄鏈表末尾的數(shù)據(jù)。

3. 使用鏈表和HashMap。當需要插入新數(shù)據(jù)項時,如果新數(shù)據(jù)項存在于鏈表中(通常稱為hit),請將節(jié)點移動到鏈表的頭部。如果不存在,則創(chuàng)建一個新節(jié)點并將其放在鏈表的頭部。如果緩存已滿,請刪除鏈表的最后一個節(jié)點。在訪問數(shù)據(jù)時,如果鏈表中存在該數(shù)據(jù)項,則節(jié)點會移到鏈表的頭,否則返回-1。這樣,鏈表末尾的節(jié)點就是最近不可訪問的數(shù)據(jù)項。

對于第一種方法,需要連續(xù)維護數(shù)據(jù)項的訪問時間戳。另外,在插入數(shù)據(jù)、刪除數(shù)據(jù)和訪問數(shù)據(jù)時,時間復雜度為O(n)。對于第二種方法,鏈表的時間復雜度為O(n)。所以一般來說,第三種方法是實現(xiàn)LRU算法。