diff --git a/aredis_om/checks.py b/aredis_om/checks.py
index 00c50844..a274f14b 100644
--- a/aredis_om/checks.py
+++ b/aredis_om/checks.py
@@ -5,18 +5,16 @@
 
 
 @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