sprint/SprintLib/redis.py
2022-08-16 13:23:43 +03:00

35 lines
644 B
Python

import os
import redis
def get_redis():
password = os.getenv("REDIS_PASSWORD", None)
kwargs = {
"host": os.getenv("REDIS_HOST", "127.0.0.1")
}
if password:
kwargs['password'] = password
return redis.Redis(**kwargs)
def get(key):
with get_redis() as r:
return r.get(key)
def set(key, value):
with get_redis() as r:
return r.set(key, value)
def lock(name='lock'):
def dec(fun):
def wrapper(*args, **kwargs):
with get_redis() as r:
with r.lock(name):
return fun(*args, **kwargs)
return wrapper
return dec