Create cache.py
Browse files
cache.py
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import redis, hashlib, json, os
|
| 2 |
+
r = redis.Redis.from_url(os.getenv("REDIS_URL", "redis://localhost:6379/0"))
|
| 3 |
+
|
| 4 |
+
def cached(key: str, fn):
|
| 5 |
+
h = hashlib.sha256(key.encode()).hexdigest()
|
| 6 |
+
if (val := r.get(h)):
|
| 7 |
+
return json.loads(val)
|
| 8 |
+
out = fn()
|
| 9 |
+
r.setex(h, 3600, json.dumps(out))
|
| 10 |
+
return out
|