35 lines
644 B
Python
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
|