File size: 1,056 Bytes
64d7755
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import time
class Cache:
    def __init__(self, max_size=5, ttl=60):
        self.store = {}
        self.max_size = max_size
        self.ttl = ttl

    def get(self, key):
        if key in self.store:
            data, timestamp, last_used = self.store[key]

            # TTL check
            if time.time() - timestamp > self.ttl:
                del self.store[key]
                return None

            # Update LRU
            self.store[key] = (data, timestamp, time.time())
            return data

        return None

    def set(self, key, data):
        # If cache full → remove LRU
        if key in self.store:
            self.store[key] = (data, time.time(), time.time())
            return
        if len(self.store) >= self.max_size:
            lru_key = min(self.store.items(), key=lambda x: x[1][2])[0]
            del self.store[lru_key]

        self.store[key] = (data, time.time(), time.time())

    def delete(self, key):
        if key in self.store:
            del self.store[key]