0
說我有一個應用程序試圖將一個字符串與一個int關聯起來。有很多字符串,我想保留已發生的前N個列表。加權LRU緩存。這個方法有沒有名字?
例如說琴絃是這樣的:
item 0 = "Foo"
item 1 = "Foo"
item 2 = "Boo"
item 3 = "Boo"
item 4 = "Bar"
item 5 = "Sar"
說我的緩存有3帽以下是我想要的行爲:
item 0 = TryGet "Foo" - Add. "Foo" occurrences = 1
item 1 = TryGet "Foo" - return. "Foo" occurrences = 2
item 2 = TryGet "Boo" - Add. "Boo" occurrences = 1
item 3 = TryGet "Boo" - return. "Boo" occurrences = 2
item 4 = TryGet "Bar" - Add. "Bar" occurrences = 1
item 5 = TryGet "Sar" - At capacity. Remove elem with lowest occurrences, "Bar". Add "Sar"
所以每個當前緩存項獲得一個重量和一個新物品的容量時發現,我們拋出出現次數最少的元素。這種緩存算法有沒有名字?
編輯: 我一直在尋找最頻繁使用的
https://en.wikipedia.org/wiki/Cache_replacement_policies#Least-Frequently_Used_.28LFU.29
這不正是[LRU(https://開頭恩.wikipedia.org/wiki/Cache_replacement_policies#Least_Recently_Used_.28LRU.29)(您自己使用的術語)是指? –
@ 500-InternalServerError:OP的所需緩存使用最不常用的逐出策略。一個LRU緩存清除了最近*使用的最少*。 –
您正在尋找LFU(Least Frequently Used)緩存:https://en.wikipedia.org/wiki/Cache_replacement_policies#Least-Frequently_Used_.28LFU.29 –