io.quarkus.redis.datasource.graph.GraphCommands Maven / Gradle / Ivy
Show all versions of quarkus-redis-client Show documentation
package io.quarkus.redis.datasource.graph;
import java.time.Duration;
import java.util.List;
import java.util.Map;
import io.quarkus.redis.datasource.RedisCommands;
import io.smallrye.common.annotation.Experimental;
/**
* Allows executing commands from the {@code graph} group.
* These commands require the Redis Graph module to be installed in the
* Redis server.
*
* See the graph command list for further information about
* these commands.
*
*
* @param the type of the key
*/
@Experimental("The Redis graph support is experimental")
public interface GraphCommands extends RedisCommands {
/**
* Execute the command GRAPH.DELETE.
* Summary: Completely removes the graph and all of its entities.
* Group: graph
*
* @param key the key, must not be {@code null}
*/
void graphDelete(K key);
/**
* Execute the command GRAPH.EXPLAIN.
* Summary: Constructs a query execution plan but does not run it. Inspect this execution plan to better understand
* how your query will get executed.
* Group: graph
*
*
* @param key the key, must not be {@code null}
* @param query the query, must not be {@code null}
* @return the string representation of the query execution plan
*/
String graphExplain(K key, String query);
/**
* Execute the command GRAPH.LIST.
* Summary: Lists all graph keys in the keyspace.
* Group: graph
*
*
* @return the list of list of keys storing graphs
*/
List graphList();
/**
* Execute the command GRAPH.QUERY.
* Summary: Executes the given query against a specified graph.
* Group: graph
*
*
* @param key the key, must not be {@code null}
* @param query the query, must not be {@code null}
* @return a map, potentially empty, containing the requested items to return. The map is empty if
* the query does not have a {@code return} clause. For each request item, a {@link GraphQueryResponseItem} is
* returned. It can represent a scalar item
* ({@link io.quarkus.redis.datasource.graph.GraphQueryResponseItem.ScalarItem}),
* a node ({@link io.quarkus.redis.datasource.graph.GraphQueryResponseItem.NodeItem}, or a relation
* ({@link io.quarkus.redis.datasource.graph.GraphQueryResponseItem.RelationItem}).
*/
List