def METHOD_NAME(self, db_name=None, sql="", limit_num=0, close_conn=True, **kwargs):
    """返回 ResultSet"""
    result_set = ResultSet(full_sql=sql)
    try:
        conn = self.get_connection(db_name=db_name)
        rows = conn.execute_command(*shlex.split(sql))
        result_set.column_list = ["Result"]
        if isinstance(rows, list) or isinstance(rows, tuple):
            if re.match(rf"^scan", sql.strip(), re.I):
                keys = [[row] for row in rows[1]]
                keys.insert(0, [rows[0]])
                result_set.rows = tuple(keys)
                result_set.affected_rows = len(rows[1])
            else:
                result_set.rows = tuple([row] for row in rows)
                result_set.affected_rows = len(rows)
        elif isinstance(rows, dict):
            result_set.column_list = ["field", "value"]
            result_set.rows = tuple([[k, v] for k, v in rows.items()])
            result_set.affected_rows = len(result_set.rows)
        else:
            result_set.rows = tuple([[rows]])
            result_set.affected_rows = 1 if rows else 0
        if limit_num > 0:
            result_set.rows = result_set.rows[0:limit_num]
    except Exception as e:
        logger.warning(f"Redis命令执行报错，语句：{sql}， 错误信息：{traceback.format_exc()}")
        result_set.error = str(e)
    return result_set