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