/*
 * Copyright 2019 Red Hat, Inc.
 * <p>
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 * <p>
 * The Eclipse Public License is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * <p>
 * The Apache License v2.0 is available at
 * http://www.opensource.org/licenses/apache2.0.php
 * <p>
 * You may elect to redistribute this code under either of these licenses.
 */
package io.vertx.redis.client;

import io.vertx.codegen.annotations.Fluent;
import io.vertx.codegen.annotations.Nullable;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.*;
import io.vertx.core.streams.ReadStream;

import java.util.List;

A simple Redis client.
/** * A simple Redis client. */
@VertxGen public interface RedisConnection extends ReadStream<Response> {
{@inheritDoc}
/** * {@inheritDoc} */
@Fluent @Override RedisConnection exceptionHandler(Handler<Throwable> handler);
{@inheritDoc}
/** * {@inheritDoc} */
@Fluent @Override RedisConnection handler(Handler<Response> handler);
{@inheritDoc}
/** * {@inheritDoc} */
@Fluent @Override RedisConnection pause();
{@inheritDoc}
/** * {@inheritDoc} */
@Fluent @Override RedisConnection resume();
{@inheritDoc}
/** * {@inheritDoc} */
@Fluent @Override RedisConnection fetch(long amount);
{@inheritDoc}
/** * {@inheritDoc} */
@Fluent @Override RedisConnection endHandler(@Nullable Handler<Void> endHandler);
Send the given command to the redis server or cluster.
Params:
  • command – the command to send
  • onSend – the asynchronous result handler.
Returns:fluent self.
/** * Send the given command to the redis server or cluster. * @param command the command to send * @param onSend the asynchronous result handler. * @return fluent self. */
@Fluent default RedisConnection send(Request command, Handler<AsyncResult<@Nullable Response>> onSend) { send(command).onComplete(onSend); return this; }
Send the given command to the redis server or cluster.
Params:
  • command – the command to send
Returns:a future with the result of the operation
/** * Send the given command to the redis server or cluster. * @param command the command to send * @return a future with the result of the operation */
Future<@Nullable Response> send(Request command);
Sends a list of commands in a single IO operation, this prevents any inter twinning to happen from other client users.
Params:
  • commands – list of command to send
  • onSend – the asynchronous result handler.
Returns:fluent self.
/** * Sends a list of commands in a single IO operation, this prevents any inter twinning to happen from other * client users. * * @param commands list of command to send * @param onSend the asynchronous result handler. * @return fluent self. */
@Fluent default RedisConnection batch(List<Request> commands, Handler<AsyncResult<List<@Nullable Response>>> onSend) { batch(commands).onComplete(onSend); return this; }
Sends a list of commands in a single IO operation, this prevents any inter twinning to happen from other client users.
Params:
  • commands – list of command to send
Returns:a future with the result of the operation
/** * Sends a list of commands in a single IO operation, this prevents any inter twinning to happen from other * client users. * * @param commands list of command to send * @return a future with the result of the operation */
Future<List<@Nullable Response>> batch(List<Request> commands);
Closes the connection or returns to the pool.
/** * Closes the connection or returns to the pool. */
void close();
Flag to notify if the pending message queue (commands in transit) is full. When the pending message queue is full and a new send command is issued it will result in a exception to be thrown. Checking this flag before sending can allow the application to wait before sending the next message.
Returns:true is queue is full.
/** * Flag to notify if the pending message queue (commands in transit) is full. * * When the pending message queue is full and a new send command is issued it will result in a exception to be thrown. * Checking this flag before sending can allow the application to wait before sending the next message. * * @return true is queue is full. */
boolean pendingQueueFull(); }