Skip to content

Commit 4ea6097

Browse files
committed
LRU
1 parent e718fb4 commit 4ea6097

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import datetime
2+
3+
class LruCache:
4+
def __init__(self, limit):
5+
if limit < 1:
6+
raise ValueError("Cache limit should be more than or equal to 1")
7+
self.cache = []
8+
self.limit = limit
9+
10+
def set(self, key, value):
11+
while len(self.cache) >= self.limit:
12+
oldest = min(self.cache, key=lambda data: data["time"])
13+
self.cache.remove(oldest)
14+
self.cache.append({key: value, "time": datetime.datetime.now()})
15+
16+
def get(self, key):
17+
for data in self.cache:
18+
if key in data:
19+
data["time"] = datetime.datetime.now()
20+
return data[key]

0 commit comments

Comments
 (0)