0.0.1
This commit is contained in:
96
app/utils/redis_tool.py
Normal file
96
app/utils/redis_tool.py
Normal file
@@ -0,0 +1,96 @@
|
||||
import redis
|
||||
from loguru import logger
|
||||
|
||||
|
||||
class RedisClient:
|
||||
def __init__(self, host: str = 'localhost', port: int = 6379, password: str = None):
|
||||
self.host = host
|
||||
self.port = port
|
||||
self.password = password
|
||||
self.browser_client = None
|
||||
self.task_client = None
|
||||
self.cache_client = None
|
||||
self.ok_client = None
|
||||
self.init()
|
||||
|
||||
# 初始化
|
||||
def init(self):
|
||||
"""
|
||||
初始化Redis客户端
|
||||
:return:
|
||||
"""
|
||||
if self.browser_client is None:
|
||||
self.browser_client = redis.Redis(host=self.host, port=self.port, password=self.password, db=0,
|
||||
decode_responses=True)
|
||||
|
||||
if self.task_client is None:
|
||||
self.task_client = redis.Redis(host=self.host, port=self.port, password=self.password, db=1,
|
||||
decode_responses=True)
|
||||
|
||||
if self.cache_client is None:
|
||||
self.cache_client = redis.Redis(host=self.host, port=self.port, password=self.password, db=2,
|
||||
decode_responses=True)
|
||||
|
||||
if self.ok_client is None:
|
||||
self.ok_client = redis.Redis(host=self.host, port=self.port, password=self.password, db=3,
|
||||
decode_responses=True)
|
||||
|
||||
logger.info("Redis连接已初始化")
|
||||
|
||||
# 关闭连接
|
||||
def close(self):
|
||||
self.browser_client.close()
|
||||
self.task_client.close()
|
||||
self.cache_client.close()
|
||||
self.ok_client.close()
|
||||
logger.info("Redis连接已关闭")
|
||||
|
||||
"""browser_client"""
|
||||
|
||||
# 写入浏览器信息
|
||||
async def set_browser(self, browser_id: str, data: dict):
|
||||
try:
|
||||
# 处理None值,将其转换为空字符串
|
||||
processed_data = {}
|
||||
for key, value in data.items():
|
||||
if value is None:
|
||||
processed_data[key] = ""
|
||||
else:
|
||||
processed_data[key] = value
|
||||
|
||||
self.browser_client.hset(browser_id, mapping=processed_data)
|
||||
logger.info(f"写入浏览器信息: {browser_id} - {processed_data}")
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error(f"写入浏览器信息失败: {browser_id} - {e}")
|
||||
return False
|
||||
|
||||
# 获取浏览器信息
|
||||
async def get_browser(self, browser_id: str = None):
|
||||
try:
|
||||
if browser_id is None:
|
||||
# 获取全部数据
|
||||
data = self.browser_client.hgetall()
|
||||
else:
|
||||
data = self.browser_client.hgetall(browser_id)
|
||||
logger.info(f"获取浏览器信息: {browser_id} - {data}")
|
||||
return data
|
||||
except Exception as e:
|
||||
logger.error(f"获取浏览器信息失败: {browser_id} - {e}")
|
||||
|
||||
|
||||
async def main():
|
||||
host = '183.66.27.14'
|
||||
port = 50086
|
||||
password = 'redis_AdJsBP'
|
||||
redis_client = RedisClient(host, port, password)
|
||||
# await redis_client.set_browser('9eac7f95ca2d47359ace4083a566e119', {'status': 'online', 'current_task_id': None})
|
||||
await redis_client.get_browser('9eac7f95ca2d47359ace4083a566e119')
|
||||
# 关闭连接
|
||||
redis_client.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import asyncio
|
||||
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user