docs: async def connect(self):
          """
          Get an connection for the self instance
          """
  
          if isinstance(self.connection, dict):
              # a dict like {'host': 'localhost', 'port': 6379,
              #              'db': 0, 'password': 'pass'}
              kwargs = self.connection.copy()
              address = (
                  kwargs.pop('host', 'localhost'),
                  kwargs.pop('port', 6379)
              )
              redis_kwargs = kwargs
          elif isinstance(self.connection, aioredis.Redis):
              self._pool = self.connection
          else:
              # a tuple or list ('localhost', 6379)
              # a string "redis://host:6379/0?encoding=utf-8" or
              # a unix domain socket path "/path/to/redis.sock"
              address = self.connection
              redis_kwargs = {}
  
          if self._pool is None:
              async with self._lock:
                  if self._pool is None:
                      self.log.debug('Connecting %s', repr(self))
                      self._pool = await self._create_redis_pool(
                          address, **redis_kwargs,
                          minsize=1, maxsize=100)
  
          return await self._pool