package com.lambdaworks.redis.api.sync;
import java.util.concurrent.TimeUnit;
import com.lambdaworks.redis.RedisConnection;
import com.lambdaworks.redis.api.StatefulRedisConnection;
import com.lambdaworks.redis.cluster.api.sync.RedisClusterCommands;
/**
*
* A complete synchronous and thread-safe Redis API with 400+ Methods.
*
* @param <K> Key type.
* @param <V> Value type.
* @author Mark Paluch
* @since 3.0
*/
public interface RedisCommands<K, V> extends RedisHashCommands<K, V>, RedisKeyCommands<K, V>, RedisStringCommands<K, V>,
RedisListCommands<K, V>, RedisSetCommands<K, V>, RedisSortedSetCommands<K, V>, RedisScriptingCommands<K, V>,
RedisServerCommands<K, V>, RedisHLLCommands<K, V>, BaseRedisCommands<K, V>, RedisClusterCommands<K, V>,
RedisTransactionalCommands<K, V>, RedisGeoCommands<K, V>, RedisConnection<K, V> {
/**
* Set the default timeout for operations.
*
* @param timeout the timeout value
* @param unit the unit of the timeout value
*/
void setTimeout(long timeout, TimeUnit unit);
/**
* Authenticate to the server.
*
* @param password the password
* @return String simple-string-reply
*/
String auth(String password);
/**
* Change the selected database for the current Commands.
*
* @param db the database number
* @return String simple-string-reply
*/
String select(int db);
/**
* @return the underlying connection.
*/
StatefulRedisConnection<K, V> getStatefulConnection();
}