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 Deprecated Methods Modifier and Type Method Description default AutoSuggestCommands<String>
autosuggest()
Gets the object to emit commands from theauto-suggest
group.<K> AutoSuggestCommands<K>
autosuggest(Class<K> redisKeyType)
Gets the object to emit commands from theauto-suggest
group.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.<K,V>
BloomCommands<K,V>bloom(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Bloom filters.default <V> BloomCommands<String,V>
bloom(Class<V> valueType)
Gets the object to manipulate Bloom filters.<K,V>
CountMinCommands<K,V>countmin(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Count-Min sketches.default <V> CountMinCommands<String,V>
countmin(Class<V> valueType)
Gets the object to manipulate Count-Min sketches.<K,V>
CuckooCommands<K,V>cuckoo(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Cuckoo filters.default <V> CuckooCommands<String,V>
cuckoo(Class<V> valueType)
Gets the object to manipulate Cuckoo filters.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()
default GraphCommands<String>
graph()
Gets the object to manipulate graphs.<K> GraphCommands<K>
graph(Class<K> redisKeyType)
Gets the object to manipulate graphs.<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 JsonCommands<String>
json()
Gets the object to manipulate JSON values.<K> JsonCommands<K>
json(Class<K> redisKeyType)
Gets the object to manipulate JSON values.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.default SearchCommands<String>
search()
Gets the object to emit commands from thesearch
group.<K> SearchCommands<K>
search(Class<K> redisKeyType)
Gets the object to emit commands from thesearch
group.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)
Deprecated.Usevalue(Class, Class)
insteaddefault <V> StringCommands<String,V>
string(Class<V> valueType)
Deprecated.Usevalue(Class)
insteaddefault TimeSeriesCommands<String>
timeseries()
Gets the object to emit commands from thetime series
group.<K> TimeSeriesCommands<K>
timeseries(Class<K> redisKeyType)
Gets the object to emit commands from thetime series
group.<K,V>
TopKCommands<K,V>topk(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Top-K list.default <V> TopKCommands<String,V>
topk(Class<V> valueType)
Gets the object to manipulate Top-K list.<K,V>
ValueCommands<K,V>value(Class<K> redisKeyType, Class<V> valueType)
Gets the object to execute commands manipulating stored strings.default <V> ValueCommands<String,V>
value(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
).<I> OptimisticLockingTransactionResult<I>
withTransaction(Function<RedisDataSource,I> preTxBlock, BiConsumer<I,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.
-
withTransaction
<I> OptimisticLockingTransactionResult<I> withTransaction(Function<RedisDataSource,I> preTxBlock, BiConsumer<I,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 emits thenull
item.This variant also allows executing code before the transaction gets started but after the key being watched:
WATCH key // preTxBlock element = ZRANGE k 0 0 // TxBlock MULTI ZREM k element EXEC
The
preTxBlock
returns aRedisDataSource
. The produced value is received by thetx
block, which can use that value to execute the appropriate operation in the transaction. The produced value can also be retrieved from the producedOptimisticLockingTransactionResult
. Commands issued in thepreTxBlock
must used the passed (single-connection)RedisDataSource
instance.If the
preTxBlock
throws an exception, the transaction is not executed, and the returnedOptimisticLockingTransactionResult
is empty.This construct allows implementing operation relying on optimistic locking. The results of the commands are retrieved using the produced
OptimisticLockingTransactionResult
.The user can discard a transaction using the
TransactionalRedisDataSource.discard()
method. In this case, the producedOptimisticLockingTransactionResult
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.
-
value
<K,V> ValueCommands<K,V> value(Class<K> redisKeyType, Class<V> valueType)
Gets the object to execute commands manipulating stored strings.NOTE: Instead of
string
, this group is namedvalue
to avoid the confusion with the Java String type. Indeed, Redis strings can be strings, numbers, byte arrays...- 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.
-
value
default <V> ValueCommands<String,V> value(Class<V> valueType)
Gets the object to execute commands manipulating stored strings.NOTE: Instead of
string
, this group is namedvalue
to avoid the confusion with the Java String type. Indeed, Redis strings can be strings, numbers, byte arrays...- 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.
-
string
@Deprecated <K,V> StringCommands<K,V> string(Class<K> redisKeyType, Class<V> valueType)
Deprecated.Usevalue(Class, Class)
insteadGets 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
@Deprecated default <V> StringCommands<String,V> string(Class<V> valueType)
Deprecated.Usevalue(Class)
insteadGets 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.
-
json
default JsonCommands<String> json()
Gets the object to manipulate JSON values. This group requires the RedisJSON module.- Returns:
- the object to manipulate JSON values.
-
json
<K> JsonCommands<K> json(Class<K> redisKeyType)
Gets the object to manipulate JSON values. This group requires the RedisJSON module.- Type Parameters:
K
- the type of keys- Returns:
- the object to manipulate JSON values.
-
bloom
default <V> BloomCommands<String,V> bloom(Class<V> valueType)
Gets the object to manipulate Bloom filters. This group requires the RedisBloom module.- Type Parameters:
V
- the type of the values added into the Bloom filter- Returns:
- the object to manipulate bloom filters.
-
bloom
<K,V> BloomCommands<K,V> bloom(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Bloom filters. This group requires the RedisBloom module.- Type Parameters:
K
- the type of keysV
- the type of the values added into the Bloom filter- Returns:
- the object to manipulate bloom filters.
-
cuckoo
default <V> CuckooCommands<String,V> cuckoo(Class<V> valueType)
Gets the object to manipulate Cuckoo filters. This group requires the RedisBloom module (including the Cuckoo filter support).- Type Parameters:
V
- the type of the values added into the Cuckoo filter- Returns:
- the object to manipulate Cuckoo filters.
-
cuckoo
<K,V> CuckooCommands<K,V> cuckoo(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Cuckoo filters. This group requires the RedisBloom module (including the Cuckoo filter support).- Type Parameters:
K
- the type of keysV
- the type of the values added into the Cuckoo filter- Returns:
- the object to manipulate Cuckoo filters.
-
countmin
default <V> CountMinCommands<String,V> countmin(Class<V> valueType)
Gets the object to manipulate Count-Min sketches. This group requires the RedisBloom module (including the count-min sketches support).- Type Parameters:
V
- the type of the values added into the count-min sketches- Returns:
- the object to manipulate count-min sketches.
-
countmin
<K,V> CountMinCommands<K,V> countmin(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Count-Min sketches. This group requires the RedisBloom module (including the count-min sketches support).- Type Parameters:
K
- the type of keysV
- the type of the values added into the count-min sketches- Returns:
- the object to manipulate count-min sketches.
-
topk
default <V> TopKCommands<String,V> topk(Class<V> valueType)
Gets the object to manipulate Top-K list. This group requires the RedisBloom module (including the top-k list support).- Type Parameters:
V
- the type of the values added into the top-k lists- Returns:
- the object to manipulate top-k lists.
-
topk
<K,V> TopKCommands<K,V> topk(Class<K> redisKeyType, Class<V> valueType)
Gets the object to manipulate Top-K list. This group requires the RedisBloom module (including the top-k list support).- Type Parameters:
K
- the type of keysV
- the type of the values added into the top-k lists- Returns:
- the object to manipulate top-k lists.
-
graph
@Experimental("The Redis graph support is experimental") default GraphCommands<String> graph()
Gets the object to manipulate graphs. This group requires the RedisGraph module.- Returns:
- the object to manipulate graphs.
-
graph
@Experimental("The Redis graph support is experimental") <K> GraphCommands<K> graph(Class<K> redisKeyType)
Gets the object to manipulate graphs. This group requires the RedisGraph module.- Type Parameters:
K
- the type of keys- Returns:
- the object to manipulate graphs lists.
-
search
@Experimental("The Redis search support is experimental") <K> SearchCommands<K> search(Class<K> redisKeyType)
Gets the object to emit commands from thesearch
group. This group requires the RedisSearch module.- Type Parameters:
K
- the type of keys- Returns:
- the object to search documents
-
search
@Experimental("The Redis Search support is experimental") default SearchCommands<String> search()
Gets the object to emit commands from thesearch
group. This group requires the RedisSearch module.- Returns:
- the object to search documents
-
autosuggest
@Experimental("The Redis auto-suggest support is experimental") <K> AutoSuggestCommands<K> autosuggest(Class<K> redisKeyType)
Gets the object to emit commands from theauto-suggest
group. This group requires the RedisSearch module.- Type Parameters:
K
- the type of keys- Returns:
- the object to get suggestions
-
autosuggest
@Experimental("The Redis auto-suggest support is experimental") default AutoSuggestCommands<String> autosuggest()
Gets the object to emit commands from theauto-suggest
group. This group requires the RedisSearch module.- Returns:
- the object to get suggestions
-
timeseries
@Experimental("The Redis time series support is experimental") <K> TimeSeriesCommands<K> timeseries(Class<K> redisKeyType)
Gets the object to emit commands from thetime series
group. This group requires the Redis Time Series module.- Type Parameters:
K
- the type of keys- Returns:
- the object to manipulate time series
-
timeseries
@Experimental("The Redis time series support is experimental") default TimeSeriesCommands<String> timeseries()
Gets the object to emit commands from thetime series
group. This group requires the Redis Time Series module.- Returns:
- the object to manipulate time series
-
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.
-
-