Projects/ExpensiveQuerySimulation.py

33 lines
891 B
Python

import LRUCache
import time
def expensive_query(query):
print(f"Running query: {query}")
time.sleep(2) # Simulate delay
return f"Result for '{query}'"
class QueryEngine:
def __init__(self, cache_size=5):
self.cache = LRUCache(cache_size)
def run_query(self, query):
cached = self.cache.get(query)
if cached != -1:
print(f"Cache hit for: {query}")
return cached
result = expensive_query(query)
self.cache.put(query, result)
return result
engine = QueryEngine()
print(engine.run_query("SELECT * FROM users"))
print(engine.run_query("SELECT * FROM orders"))
print(engine.run_query("SELECT * FROM users")) # Cached!
print(engine.run_query("SELECT * FROM products"))
print(engine.run_query("SELECT * FROM inventory"))
print(engine.run_query("SELECT * FROM orders")) # Might be evicted