Interface RedisDataSource
-
- All Known Implementing Classes:
BlockingRedisDataSourceImpl
public interface RedisDataSource
Synchronous / Blocking Redis Data Source.This class provides access to various groups of methods. Each method execute a Redis
command
. Groups and methods are type-safe. The decomposition follows the Redis API group.NOTE: Not all commands are exposed from this API. This is done on purpose. You can always use the low-level Redis client to execute others commands.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default BitMapCommands<String>
bitmap()
Gets the object to execute commands manipulating bitmap data structures.<K> BitMapCommands<K>
bitmap(Class<K> redisKeyType)
Gets the object to execute commands manipulating bitmap data structures.io.vertx.mutiny.redis.client.Response
execute(io.vertx.mutiny.redis.client.Command command, String... args)
Executes a command.io.vertx.mutiny.redis.client.Response
execute(io.vertx.redis.client.Command command, String... args)
Executes a command.io.vertx.mutiny.redis.client.Response
execute(String command, String... args)
Executes a command.void
flushall()
Execute the command FLUSHALL.<K,V>
GeoCommands<K,V>geo(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating geo items (a.k.a.default <V> GeoCommands<String,V>
geo(Class<V> memberType)
Gets the object to execute commands manipulating geo items (a.k.a.ReactiveRedisDataSource
getReactive()
<K,F,V>
HashCommands<K,F,V>hash(Class<K> redisKeyType, Class<F> typeOfField, Class<V> typeOfValue)
Gets the object to execute commands manipulating hashes (a.k.a.default <V> HashCommands<String,String,V>
hash(Class<V> typeOfValue)
Gets the object to execute commands manipulating hashes (a.k.a.<K,V>
HyperLogLogCommands<K,V>hyperloglog(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating hyperloglog data structures.default <V> HyperLogLogCommands<String,V>
hyperloglog(Class<V> memberType)
Gets the object to execute commands manipulating hyperloglog data structures.default KeyCommands<String>
key()
Gets the object to execute commands manipulating keys and expiration times.<K> KeyCommands<K>
key(Class<K> redisKeyType)
Gets the object to execute commands manipulating keys and expiration times.<K,V>
ListCommands<K,V>list(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating lists.default <V> ListCommands<String,V>
list(Class<V> memberType)
Gets the object to execute commands manipulating lists.<V> PubSubCommands<V>
pubsub(Class<V> messageType)
Gets the objects to publish and receive messages.void
select(long index)
Execute the command SELECT.<K,V>
SetCommands<K,V>set(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating sets.default <V> SetCommands<String,V>
set(Class<V> memberType)
Gets the object to execute commands manipulating sets.<K,V>
SortedSetCommands<K,V>sortedSet(Class<K> redisKeyType, Class<V> valueType)
Gets the object to execute commands manipulating sorted sets.default <V> SortedSetCommands<String,V>
sortedSet(Class<V> valueType)
Gets the object to execute commands manipulating sorted sets.<K,V>
StringCommands<K,V>string(Class<K> redisKeyType, Class<V> valueType)
Gets the object to execute commands manipulating stored strings.default <V> StringCommands<String,V>
string(Class<V> valueType)
Gets the object to execute commands manipulating stored strings.void
withConnection(Consumer<RedisDataSource> consumer)
Retrieves aRedisDataSource
using a single connection with the Redis server.TransactionResult
withTransaction(Consumer<TransactionalRedisDataSource> tx)
Retrieves aRedisDataSource
enqueuing commands in a Redis Transaction (MULTI
).TransactionResult
withTransaction(Consumer<TransactionalRedisDataSource> tx, String... watchedKeys)
Retrieves aRedisDataSource
enqueuing commands in a Redis Transaction (MULTI
).
-
-
-
Method Detail
-
withConnection
void withConnection(Consumer<RedisDataSource> consumer)
Retrieves aRedisDataSource
using a single connection with the Redis server. The connection is acquired from the pool, and released then the consumer completes.- Parameters:
consumer
- the consumer receiving the connection and returning when the connection can be released.
-
withTransaction
TransactionResult withTransaction(Consumer<TransactionalRedisDataSource> tx)
Retrieves aRedisDataSource
enqueuing commands in a Redis Transaction (MULTI
). Note that transaction acquires a single connection, and all the commands are enqueued in this connection. The commands are only executed when the passed block completes.The results of the commands are retrieved using the returned
TransactionResult
.The user can discard a transaction using the
TransactionalRedisDataSource.discard()
method. In this case, the producedTransactionResult
will be empty.- Parameters:
tx
- the consumer receiving the transactional redis data source. The enqueued commands are only executed at the end of the block.
-
withTransaction
TransactionResult withTransaction(Consumer<TransactionalRedisDataSource> tx, String... watchedKeys)
Retrieves aRedisDataSource
enqueuing commands in a Redis Transaction (MULTI
). Note that transaction acquires a single connection, and all the commands are enqueued in this connection. The commands are only executed when the passed block completes.The results of the commands are retrieved using the returned
TransactionResult
.The user can discard a transaction using the
TransactionalRedisDataSource.discard()
method. In this case, the producedTransactionResult
will be empty.- Parameters:
tx
- the consumer receiving the transactional redis data source. The enqueued commands are only executed at the end of the block.watchedKeys
- the keys to watch during the execution of the transaction. If one of these key is modified before the completion of the transaction, the transaction is discarded.
-
select
void select(long index)
Execute the command SELECT. Summary: Change the selected database for the current connection Group: connection Requires Redis 1.0.0This method is expected to be used inside a
withConnection(Consumer)
block.- Parameters:
index
- the database index.
-
flushall
void flushall()
Execute the command FLUSHALL. Summary: Remove all keys from all databases Group: server Requires Redis 1.0.0
-
hash
<K,F,V> HashCommands<K,F,V> hash(Class<K> redisKeyType, Class<F> typeOfField, Class<V> typeOfValue)
Gets the object to execute commands manipulating hashes (a.k.a.Map<F, V>
).If you want to use a hash of
<String -> Person>
stored using String identifier, you would use:hash(String.class, String.class, Person.class)
. If you want to use a hash of<String -> Person>
stored using UUID identifier, you would use:hash(UUID.class, String.class, Person.class)
.- Type Parameters:
K
- the type of the redis keyF
- the type of the fields (map's keys)V
- the type of the value- Parameters:
redisKeyType
- the class of the keystypeOfField
- the class of the fieldstypeOfValue
- the class of the values- Returns:
- the object to execute commands manipulating hashes (a.k.a.
Map<K, V>
).
-
hash
default <V> HashCommands<String,String,V> hash(Class<V> typeOfValue)
Gets the object to execute commands manipulating hashes (a.k.a.Map<String, V>
).This is a shortcut on
hash(String.class, String.class, V)
- Type Parameters:
V
- the type of the value- Parameters:
typeOfValue
- the class of the values- Returns:
- the object to execute commands manipulating hashes (a.k.a.
Map<String, V>
).
-
geo
<K,V> GeoCommands<K,V> geo(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating geo items (a.k.a.{longitude, latitude, member}
).V
represents the type of the member, i.e. the localized thing.- Type Parameters:
K
- the type of the redis keyV
- the type of the member- Parameters:
redisKeyType
- the class of the keysmemberType
- the class of the members- Returns:
- the object to execute geo commands.
-
geo
default <V> GeoCommands<String,V> geo(Class<V> memberType)
Gets the object to execute commands manipulating geo items (a.k.a.{longitude, latitude, member}
).V
represents the type of the member, i.e. the localized thing.- Type Parameters:
V
- the type of the member- Parameters:
memberType
- the class of the members- Returns:
- the object to execute geo commands.
-
key
<K> KeyCommands<K> key(Class<K> redisKeyType)
Gets the object to execute commands manipulating keys and expiration times.- Type Parameters:
K
- the type of the key- Parameters:
redisKeyType
- the type of the keys- Returns:
- the object to execute commands manipulating keys.
-
key
default KeyCommands<String> key()
Gets the object to execute commands manipulating keys and expiration times.- Returns:
- the object to execute commands manipulating keys.
-
sortedSet
<K,V> SortedSetCommands<K,V> sortedSet(Class<K> redisKeyType, Class<V> valueType)
Gets the object to execute commands manipulating sorted sets.- Type Parameters:
K
- the type of the keyV
- the type of the value- Parameters:
redisKeyType
- the type of the keysvalueType
- the type of the value sorted in the sorted sets- Returns:
- the object to manipulate sorted sets.
-
sortedSet
default <V> SortedSetCommands<String,V> sortedSet(Class<V> valueType)
Gets the object to execute commands manipulating sorted sets.- Type Parameters:
V
- the type of the value- Parameters:
valueType
- the type of the value sorted in the sorted sets- Returns:
- the object to manipulate sorted sets.
-
string
<K,V> StringCommands<K,V> string(Class<K> redisKeyType, Class<V> valueType)
Gets the object to execute commands manipulating stored strings.- Type Parameters:
K
- the type of the keyV
- the type of the value- Parameters:
redisKeyType
- the type of the keysvalueType
- the type of the value, often String, or the value are encoded/decoded using codecs.- Returns:
- the object to manipulate stored strings.
-
string
default <V> StringCommands<String,V> string(Class<V> valueType)
Gets the object to execute commands manipulating stored strings.- Type Parameters:
V
- the type of the value- Parameters:
valueType
- the type of the value, often String, or the value are encoded/decoded using codecs.- Returns:
- the object to manipulate stored strings.
-
set
<K,V> SetCommands<K,V> set(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating sets.- Type Parameters:
K
- the type of the keyV
- the type of the member- Parameters:
redisKeyType
- the type of the keysmemberType
- the type of the member stored in each set- Returns:
- the object to manipulate sets.
-
set
default <V> SetCommands<String,V> set(Class<V> memberType)
Gets the object to execute commands manipulating sets.- Type Parameters:
V
- the type of the member- Parameters:
memberType
- the type of the member stored in each set- Returns:
- the object to manipulate sets.
-
list
<K,V> ListCommands<K,V> list(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating lists.- Type Parameters:
K
- the type of the keyV
- the type of the member- Parameters:
redisKeyType
- the type of the keysmemberType
- the type of the member stored in each list- Returns:
- the object to manipulate sets.
-
list
default <V> ListCommands<String,V> list(Class<V> memberType)
Gets the object to execute commands manipulating lists.- Type Parameters:
V
- the type of the member- Parameters:
memberType
- the type of the member stored in each list- Returns:
- the object to manipulate sets.
-
hyperloglog
<K,V> HyperLogLogCommands<K,V> hyperloglog(Class<K> redisKeyType, Class<V> memberType)
Gets the object to execute commands manipulating hyperloglog data structures.- Type Parameters:
K
- the type of the keyV
- the type of the member- Parameters:
redisKeyType
- the type of the keysmemberType
- the type of the member stored in the data structure- Returns:
- the object to manipulate hyper log log data structures.
-
hyperloglog
default <V> HyperLogLogCommands<String,V> hyperloglog(Class<V> memberType)
Gets the object to execute commands manipulating hyperloglog data structures.- Type Parameters:
V
- the type of the member- Parameters:
memberType
- the type of the member stored in the data structure- Returns:
- the object to manipulate hyper log log data structures.
-
bitmap
<K> BitMapCommands<K> bitmap(Class<K> redisKeyType)
Gets the object to execute commands manipulating bitmap data structures.- Type Parameters:
K
- the type of the key- Parameters:
redisKeyType
- the type of the keys- Returns:
- the object to manipulate bitmap data structures.
-
bitmap
default BitMapCommands<String> bitmap()
Gets the object to execute commands manipulating bitmap data structures.- Returns:
- the object to manipulate bitmap data structures.
-
pubsub
<V> PubSubCommands<V> pubsub(Class<V> messageType)
Gets the objects to publish and receive messages.- Type Parameters:
V
- the type of message- Parameters:
messageType
- the type of message- Returns:
- the object to publish and subscribe to Redis channels
-
execute
io.vertx.mutiny.redis.client.Response execute(String command, String... args)
Executes a command. This method is used to execute commands not offered by the API.- Parameters:
command
- the command nameargs
- the parameters, encoded as String.- Returns:
- the response
-
execute
io.vertx.mutiny.redis.client.Response execute(io.vertx.mutiny.redis.client.Command command, String... args)
Executes a command. This method is used to execute commands not offered by the API.- Parameters:
command
- the commandargs
- the parameters, encoded as String.- Returns:
- the response
-
execute
io.vertx.mutiny.redis.client.Response execute(io.vertx.redis.client.Command command, String... args)
Executes a command. This method is used to execute commands not offered by the API.- Parameters:
command
- the commandargs
- the parameters, encoded as String.- Returns:
- the response
-
getReactive
ReactiveRedisDataSource getReactive()
- Returns:
- the reactive data source.
-
-