PaiGram/utils/redisdb.py
2022-08-04 21:01:46 +08:00

40 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import asyncio
import fakeredis.aioredis
from redis import asyncio as aioredis
from logger import Log
class RedisDB:
def __init__(self, host="127.0.0.1", port=6379, db=0, loop=None):
Log.debug(f'获取Redis配置 [host]: {host}')
Log.debug(f'获取Redis配置 [port]: {port}')
Log.debug(f'获取Redis配置 [db]: {db}')
self.client = aioredis.Redis(host=host, port=port, db=db)
self.ttl = 600
self.key_prefix = "paimon_bot"
self._loop = loop
if self._loop is None:
self._loop = asyncio.get_event_loop()
try:
Log.info("正在尝试建立与Redis连接")
self._loop.run_until_complete(self.ping())
except (KeyboardInterrupt, SystemExit):
pass
except BaseException as exc:
Log.warning("尝试连接Redis失败使用 fakeredis 模拟", exc)
self.client = fakeredis.aioredis.FakeRedis()
self._loop.run_until_complete(self.ping())
async def ping(self):
if await self.client.ping():
Log.info("连接Redis成功")
else:
Log.info("连接Redis失败")
raise RuntimeError("连接Redis失败")
async def close(self):
await self.client.close()