diff --git a/aredis_om/checks.py b/aredis_om/checks.py index 00c5084..a274f14 100644 --- a/aredis_om/checks.py +++ b/aredis_om/checks.py @@ -5,18 +5,16 @@ from aredis_om.connections import get_redis_connection @lru_cache(maxsize=None) -async def get_modules(conn) -> List[str]: - modules = await conn.execute_command("module", "list") - return [m[1] for m in modules] - +async def check_for_command(conn, cmd): + cmd_info = await conn.execute_command("command", "info", cmd) + return not None in cmd_info @lru_cache(maxsize=None) async def has_redis_json(conn=None): if conn is None: conn = get_redis_connection() - names = await get_modules(conn) - return b"ReJSON" in names or "ReJSON" in names - + command_exists = await check_for_command(conn, "json.set") + return command_exists @lru_cache(maxsize=None) async def has_redisearch(conn=None): @@ -24,5 +22,5 @@ async def has_redisearch(conn=None): conn = get_redis_connection() if has_redis_json(conn): return True - names = await get_modules(conn) - return b"search" in names or "search" in names + command_exists = await check_for_command(conn, "ft.search") + return command_exists