31 lines
996 B
Python
31 lines
996 B
Python
# study/jikimo_sf/sf_mrs_connect/models/redis_utils.py
|
|
import redis, json, logging
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
class RedisClient:
|
|
def __init__(self, host='localhost', port=6379, db=0):
|
|
try:
|
|
self.client = redis.Redis(host=host, port=port, db=db, decode_responses=True)
|
|
except Exception as e:
|
|
_logger.error(f"Redis init error: {e}")
|
|
self.client = None
|
|
|
|
def get_json(self, key):
|
|
if not self.client:
|
|
return None
|
|
try:
|
|
data = self.client.get(key)
|
|
return json.loads(data) if data else None
|
|
except Exception as e:
|
|
_logger.error(f"Redis GET error [{key}]: {e}")
|
|
return None
|
|
|
|
def set_json(self, key, value, ex=3600):
|
|
if not self.client:
|
|
return
|
|
try:
|
|
self.client.set(key, json.dumps(value, ensure_ascii=False), ex=ex)
|
|
except Exception as e:
|
|
_logger.error(f"Redis SET error [{key}]: {e}")
|