code: async def exists(self, key, namespace=None, _conn=None):
          
          start = time.monotonic()
          ns_key = self.build_key(key, namespace=namespace)
          ret = await self._exists(ns_key, _conn=_conn)
          logger.debug("EXISTS %s %d (%.4f)s", ns_key, ret, time.monotonic() - start)
          return ret
docs: Check key exists in the cache.
  
          :param key: str key to check
          :param namespace: str alternative namespace to use
          :param timeout: int or float in seconds specifying maximum timeout
              for the operations to last
          :returns: True if key exists otherwise False
          :raises: :class:`asyncio.TimeoutError` if it lasts more than self.timeout