40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
|
import json
|
||
|
|
||
|
from django_redis import get_redis_connection
|
||
|
|
||
|
|
||
|
class RedisUtils:
|
||
|
def __init__(self, cache='default'):
|
||
|
self.redis_conn = get_redis_connection(cache)
|
||
|
|
||
|
def write_value_as_string(self, key, value, ex=None):
|
||
|
if ex:
|
||
|
return self.set_ex(key, ex, json.dumps(value))
|
||
|
return self.set(key, json.dumps(value))
|
||
|
|
||
|
def read_value_to_object(self, key):
|
||
|
value = self.redis_conn.get(key)
|
||
|
if value:
|
||
|
return json.loads(value)
|
||
|
|
||
|
def set(self, key, value):
|
||
|
return self.redis_conn.set(key, value)
|
||
|
|
||
|
def get(self, key):
|
||
|
value = self.redis_conn.get(key)
|
||
|
if value:
|
||
|
return value.decode()
|
||
|
|
||
|
def set_ex(self, key, timeout, value):
|
||
|
return self.redis_conn.setex(key, time=timeout, value=value)
|
||
|
|
||
|
def hset(self, key, field, value):
|
||
|
return self.redis_conn.hset(key, field, value)
|
||
|
|
||
|
def hget(self, key, field):
|
||
|
value = self.redis_conn.hget(key, field)
|
||
|
return value and value.decode()
|
||
|
|
||
|
def delete(self, key):
|
||
|
return self.redis_conn.delete(key)
|