2021-11-03 12:37:09 -07:00
|
|
|
from functools import lru_cache
|
|
|
|
from typing import List
|
|
|
|
|
2021-11-09 15:59:10 -08:00
|
|
|
from aredis_om.connections import get_redis_connection
|
2021-11-03 12:37:09 -07:00
|
|
|
|
|
|
|
|
|
|
|
@lru_cache(maxsize=None)
|
2022-01-06 15:51:56 +00:00
|
|
|
async def check_for_command(conn, cmd):
|
2022-01-06 21:10:53 +00:00
|
|
|
cmd_info = await conn.execute_command("command", "info", cmd)
|
2022-01-13 17:10:51 +00:00
|
|
|
return None not in cmd_info
|
2021-11-03 12:37:09 -07:00
|
|
|
|
2022-01-13 17:08:46 +00:00
|
|
|
|
2021-11-03 12:37:09 -07:00
|
|
|
@lru_cache(maxsize=None)
|
2021-11-09 15:59:10 -08:00
|
|
|
async def has_redis_json(conn=None):
|
2021-11-03 12:37:09 -07:00
|
|
|
if conn is None:
|
|
|
|
conn = get_redis_connection()
|
2022-01-06 15:51:56 +00:00
|
|
|
command_exists = await check_for_command(conn, "json.set")
|
|
|
|
return command_exists
|
2021-11-03 12:37:09 -07:00
|
|
|
|
2022-01-13 17:08:46 +00:00
|
|
|
|
2021-11-03 12:37:09 -07:00
|
|
|
@lru_cache(maxsize=None)
|
2021-11-09 15:59:10 -08:00
|
|
|
async def has_redisearch(conn=None):
|
2021-11-03 12:37:09 -07:00
|
|
|
if conn is None:
|
|
|
|
conn = get_redis_connection()
|
|
|
|
if has_redis_json(conn):
|
|
|
|
return True
|
2022-01-06 15:51:56 +00:00
|
|
|
command_exists = await check_for_command(conn, "ft.search")
|
|
|
|
return command_exists
|