xbackend/db/redisdb.py
2021-05-24 15:13:56 +08:00

33 lines
808 B
Python

from aredis import StrictRedis
import asyncio
class RedisDrive:
client: StrictRedis = None
# async def get_keys(self, *keys, prefix='') -> list:
# res = []
# for key in keys:
# key = prefix + key
# data = await self.client.get(key, encoding='utf8')
# res.append(data)
# return res
async def smembers_keys(self, *keys, prefix='') -> dict:
tasks = []
for key in keys:
task = asyncio.create_task(self.client.smembers(prefix + key))
tasks.append(task)
data = await asyncio.gather(*tasks)
return {k: v for k, v in zip(keys, data)}
def __getattr__(self, item):
return getattr(self.client, item)
rdb = RedisDrive()
def get_redis_pool() -> RedisDrive:
return rdb