Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.lambdaworks.redis.AbstractRedisReactiveCommands Maven / Gradle / Ivy
Go to download
Advanced and thread-safe Java Redis client for synchronous, asynchronous, and
reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs
and much more.
/*
* Copyright 2011-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.lambdaworks.redis;
import static com.lambdaworks.redis.protocol.CommandType.EXEC;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import com.lambdaworks.redis.GeoArgs.Unit;
import com.lambdaworks.redis.api.StatefulConnection;
import com.lambdaworks.redis.api.reactive.*;
import com.lambdaworks.redis.cluster.api.reactive.RedisClusterReactiveCommands;
import com.lambdaworks.redis.codec.RedisCodec;
import com.lambdaworks.redis.internal.LettuceAssert;
import com.lambdaworks.redis.output.*;
import com.lambdaworks.redis.protocol.*;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
/**
* A reactive and thread-safe API for a Redis connection.
*
* @param Key type.
* @param Value type.
* @author Mark Paluch
* @since 4.0
*/
public abstract class AbstractRedisReactiveCommands implements RedisHashReactiveCommands,
RedisKeyReactiveCommands, RedisStringReactiveCommands, RedisListReactiveCommands,
RedisSetReactiveCommands, RedisSortedSetReactiveCommands, RedisScriptingReactiveCommands,
RedisServerReactiveCommands, RedisHLLReactiveCommands, BaseRedisReactiveCommands,
RedisTransactionalReactiveCommands, RedisGeoReactiveCommands, RedisClusterReactiveCommands {
protected MultiOutput multi;
protected RedisCommandBuilder commandBuilder;
protected RedisCodec codec;
protected StatefulConnection connection;
/**
* Initialize a new instance.
*
* @param connection the connection to operate on
* @param codec the codec for command encoding
*/
public AbstractRedisReactiveCommands(StatefulConnection connection, RedisCodec codec) {
this.connection = connection;
this.codec = codec;
commandBuilder = new RedisCommandBuilder(codec);
}
@Override
public Mono append(K key, V value) {
return createMono(() -> commandBuilder.append(key, value));
}
@Override
public Mono auth(String password) {
return createMono(() -> commandBuilder.auth(password));
}
@Override
public Mono bgrewriteaof() {
return createMono(commandBuilder::bgrewriteaof);
}
@Override
public Mono bgsave() {
return createMono(commandBuilder::bgsave);
}
@Override
public Mono bitcount(K key) {
return createMono(() -> commandBuilder.bitcount(key));
}
@Override
public Mono bitcount(K key, long start, long end) {
return createMono(() -> commandBuilder.bitcount(key, start, end));
}
@Override
public Flux> bitfield(K key, BitFieldArgs args) {
return createDissolvingFlux(() -> commandBuilder.bitfieldValue(key, args));
}
@Override
public Mono bitpos(K key, boolean state) {
return createMono(() -> commandBuilder.bitpos(key, state));
}
@Override
public Mono bitpos(K key, boolean state, long start, long end) {
return createMono(() -> commandBuilder.bitpos(key, state, start, end));
}
@Override
public Mono bitopAnd(K destination, K... keys) {
return createMono(() -> commandBuilder.bitopAnd(destination, keys));
}
@Override
public Mono bitopNot(K destination, K source) {
return createMono(() -> commandBuilder.bitopNot(destination, source));
}
@Override
public Mono bitopOr(K destination, K... keys) {
return createMono(() -> commandBuilder.bitopOr(destination, keys));
}
@Override
public Mono bitopXor(K destination, K... keys) {
return createMono(() -> commandBuilder.bitopXor(destination, keys));
}
@Override
public Mono> blpop(long timeout, K... keys) {
return createMono(() -> commandBuilder.blpop(timeout, keys));
}
@Override
public Mono> brpop(long timeout, K... keys) {
return createMono(() -> commandBuilder.brpop(timeout, keys));
}
@Override
public Mono brpoplpush(long timeout, K source, K destination) {
return createMono(() -> commandBuilder.brpoplpush(timeout, source, destination));
}
@Override
public Mono clientGetname() {
return createMono(commandBuilder::clientGetname);
}
@Override
public Mono clientSetname(K name) {
return createMono(() -> commandBuilder.clientSetname(name));
}
@Override
public Mono clientKill(String addr) {
return createMono(() -> commandBuilder.clientKill(addr));
}
@Override
public Mono clientKill(KillArgs killArgs) {
return createMono(() -> commandBuilder.clientKill(killArgs));
}
@Override
public Mono clientPause(long timeout) {
return createMono(() -> commandBuilder.clientPause(timeout));
}
@Override
public Mono clientList() {
return createMono(commandBuilder::clientList);
}
@Override
public Flux command() {
return createDissolvingFlux(commandBuilder::command);
}
@Override
public Flux commandInfo(String... commands) {
return createDissolvingFlux(() -> commandBuilder.commandInfo(commands));
}
@Override
public Flux commandInfo(CommandType... commands) {
String[] stringCommands = new String[commands.length];
for (int i = 0; i < commands.length; i++) {
stringCommands[i] = commands[i].name();
}
return commandInfo(stringCommands);
}
@Override
public Mono commandCount() {
return createMono(commandBuilder::commandCount);
}
@Override
public Flux configGet(String parameter) {
return createDissolvingFlux(() -> commandBuilder.configGet(parameter));
}
@Override
public Mono configResetstat() {
return createMono(commandBuilder::configResetstat);
}
@Override
public Mono configSet(String parameter, String value) {
return createMono(() -> commandBuilder.configSet(parameter, value));
}
@Override
public Mono configRewrite() {
return createMono(commandBuilder::configRewrite);
}
@Override
public Mono dbsize() {
return createMono(commandBuilder::dbsize);
}
@Override
public Mono debugCrashAndRecover(Long delay) {
return createMono(() -> (commandBuilder.debugCrashAndRecover(delay)));
}
@Override
public Mono debugHtstats(int db) {
return createMono(() -> commandBuilder.debugHtstats(db));
}
@Override
public Mono debugObject(K key) {
return createMono(() -> commandBuilder.debugObject(key));
}
@Override
public Mono debugOom() {
return createMono(commandBuilder::debugOom).then();
}
@Override
public Mono debugReload() {
return createMono(() -> (commandBuilder.debugReload()));
}
@Override
public Mono debugRestart(Long delay) {
return createMono(() -> (commandBuilder.debugRestart(delay)));
}
@Override
public Mono debugSdslen(K key) {
return createMono(() -> (commandBuilder.debugSdslen(key)));
}
@Override
public Mono debugSegfault() {
return createFlux(commandBuilder::debugSegfault).then();
}
@Override
public Mono decr(K key) {
return createMono(() -> commandBuilder.decr(key));
}
@Override
public Mono decrby(K key, long amount) {
return createMono(() -> commandBuilder.decrby(key, amount));
}
@Override
public Mono del(K... keys) {
return createMono(() -> commandBuilder.del(keys));
}
public Mono del(Iterable keys) {
return createMono(() -> commandBuilder.del(keys));
}
@Override
public Mono unlink(K... keys) {
return createMono(() -> commandBuilder.unlink(keys));
}
public Mono unlink(Iterable keys) {
return createMono(() -> commandBuilder.unlink(keys));
}
@Override
public Mono discard() {
return createMono(commandBuilder::discard);
}
@Override
public Mono dump(K key) {
return createMono(() -> commandBuilder.dump(key));
}
@Override
public Mono echo(V msg) {
return createMono(() -> commandBuilder.echo(msg));
}
@Override
@SuppressWarnings("unchecked")
public Flux eval(String script, ScriptOutputType type, K... keys) {
return (Flux) createFlux(() -> commandBuilder.eval(script, type, keys));
}
@Override
@SuppressWarnings("unchecked")
public Flux eval(String script, ScriptOutputType type, K[] keys, V... values) {
return (Flux) createFlux(() -> commandBuilder.eval(script, type, keys, values));
}
@Override
@SuppressWarnings("unchecked")
public Flux evalsha(String digest, ScriptOutputType type, K... keys) {
return (Flux) createFlux(() -> commandBuilder.evalsha(digest, type, keys));
}
@Override
@SuppressWarnings("unchecked")
public Flux evalsha(String digest, ScriptOutputType type, K[] keys, V... values) {
return (Flux) createFlux(() -> commandBuilder.evalsha(digest, type, keys, values));
}
public Mono exists(K key) {
return createMono(() -> commandBuilder.exists(key));
}
@Override
public Mono exists(K... keys) {
return createMono(() -> commandBuilder.exists(keys));
}
public Mono exists(Iterable keys) {
return createMono(() -> commandBuilder.exists(keys));
}
@Override
public Mono expire(K key, long seconds) {
return createMono(() -> commandBuilder.expire(key, seconds));
}
@Override
public Mono expireat(K key, long timestamp) {
return createMono(() -> commandBuilder.expireat(key, timestamp));
}
@Override
public Mono expireat(K key, Date timestamp) {
return expireat(key, timestamp.getTime() / 1000);
}
@Override
public Mono exec() {
return createMono(EXEC, null, null);
}
@Override
public Mono flushall() {
return createMono(commandBuilder::flushall);
}
@Override
public Mono flushallAsync() {
return createMono(commandBuilder::flushallAsync);
}
@Override
public Mono flushdb() {
return createMono(commandBuilder::flushdb);
}
@Override
public Mono flushdbAsync() {
return createMono(commandBuilder::flushdbAsync);
}
@Override
public Mono get(K key) {
return createMono(() -> commandBuilder.get(key));
}
@Override
public Mono getbit(K key, long offset) {
return createMono(() -> commandBuilder.getbit(key, offset));
}
@Override
public Mono getrange(K key, long start, long end) {
return createMono(() -> commandBuilder.getrange(key, start, end));
}
@Override
public Mono getset(K key, V value) {
return createMono(() -> commandBuilder.getset(key, value));
}
@Override
public Mono hdel(K key, K... fields) {
return createMono(() -> commandBuilder.hdel(key, fields));
}
@Override
public Mono hexists(K key, K field) {
return createMono(() -> commandBuilder.hexists(key, field));
}
@Override
public Mono hget(K key, K field) {
return createMono(() -> commandBuilder.hget(key, field));
}
@Override
public Mono hincrby(K key, K field, long amount) {
return createMono(() -> commandBuilder.hincrby(key, field, amount));
}
@Override
public Mono hincrbyfloat(K key, K field, double amount) {
return createMono(() -> commandBuilder.hincrbyfloat(key, field, amount));
}
@Override
public Mono> hgetall(K key) {
return createMono(() -> commandBuilder.hgetall(key));
}
@Override
public Mono hgetall(KeyValueStreamingChannel channel, K key) {
return createMono(() -> commandBuilder.hgetall(channel, key));
}
@Override
public Flux hkeys(K key) {
return createDissolvingFlux(() -> commandBuilder.hkeys(key));
}
@Override
public Mono hkeys(KeyStreamingChannel channel, K key) {
return createMono(() -> commandBuilder.hkeys(channel, key));
}
@Override
public Mono hlen(K key) {
return createMono(() -> commandBuilder.hlen(key));
}
@Override
public Mono hstrlen(K key, K field) {
return createMono(() -> commandBuilder.hstrlen(key, field));
}
@Override
public Flux> hmget(K key, K... fields) {
return createDissolvingFlux(() -> commandBuilder.hmgetKeyValue(key, fields));
}
@Override
public Mono hmget(KeyValueStreamingChannel channel, K key, K... fields) {
return createMono(() -> commandBuilder.hmget(channel, key, fields));
}
@Override
public Mono hmset(K key, Map map) {
return createMono(() -> commandBuilder.hmset(key, map));
}
@Override
public Mono hset(K key, K field, V value) {
return createMono(() -> commandBuilder.hset(key, field, value));
}
@Override
public Mono hsetnx(K key, K field, V value) {
return createMono(() -> commandBuilder.hsetnx(key, field, value));
}
@Override
public Flux hvals(K key) {
return createDissolvingFlux(() -> commandBuilder.hvals(key));
}
@Override
public Mono hvals(ValueStreamingChannel channel, K key) {
return createMono(() -> commandBuilder.hvals(channel, key));
}
@Override
public Mono incr(K key) {
return createMono(() -> commandBuilder.incr(key));
}
@Override
public Mono incrby(K key, long amount) {
return createMono(() -> commandBuilder.incrby(key, amount));
}
@Override
public Mono incrbyfloat(K key, double amount) {
return createMono(() -> commandBuilder.incrbyfloat(key, amount));
}
@Override
public Mono info() {
return createMono(commandBuilder::info);
}
@Override
public Mono info(String section) {
return createMono(() -> commandBuilder.info(section));
}
@Override
public Flux keys(K pattern) {
return createDissolvingFlux(() -> commandBuilder.keys(pattern));
}
@Override
public Mono keys(KeyStreamingChannel channel, K pattern) {
return createMono(() -> commandBuilder.keys(channel, pattern));
}
@Override
public Mono lastsave() {
return createMono(commandBuilder::lastsave);
}
@Override
public Mono lindex(K key, long index) {
return createMono(() -> commandBuilder.lindex(key, index));
}
@Override
public Mono linsert(K key, boolean before, V pivot, V value) {
return createMono(() -> commandBuilder.linsert(key, before, pivot, value));
}
@Override
public Mono llen(K key) {
return createMono(() -> commandBuilder.llen(key));
}
@Override
public Mono lpop(K key) {
return createMono(() -> commandBuilder.lpop(key));
}
@Override
public Mono lpush(K key, V... values) {
return createMono(() -> commandBuilder.lpush(key, values));
}
@Override
public Mono lpushx(K key, V... values) {
return createMono(() -> commandBuilder.lpushx(key, values));
}
@Override
public Flux lrange(K key, long start, long stop) {
return createDissolvingFlux(() -> commandBuilder.lrange(key, start, stop));
}
@Override
public Mono lrange(ValueStreamingChannel channel, K key, long start, long stop) {
return createMono(() -> commandBuilder.lrange(channel, key, start, stop));
}
@Override
public Mono lrem(K key, long count, V value) {
return createMono(() -> commandBuilder.lrem(key, count, value));
}
@Override
public Mono lset(K key, long index, V value) {
return createMono(() -> commandBuilder.lset(key, index, value));
}
@Override
public Mono ltrim(K key, long start, long stop) {
return createMono(() -> commandBuilder.ltrim(key, start, stop));
}
@Override
public Mono migrate(String host, int port, K key, int db, long timeout) {
return createMono(() -> commandBuilder.migrate(host, port, key, db, timeout));
}
@Override
public Mono migrate(String host, int port, int db, long timeout, MigrateArgs migrateArgs) {
return createMono(() -> commandBuilder.migrate(host, port, db, timeout, migrateArgs));
}
@Override
public Flux> mget(K... keys) {
return createDissolvingFlux(() -> commandBuilder.mgetKeyValue(keys));
}
public Flux> mget(Iterable keys) {
return createDissolvingFlux(() -> commandBuilder.mgetKeyValue(keys));
}
@Override
public Mono mget(KeyValueStreamingChannel channel, K... keys) {
return createMono(() -> commandBuilder.mget(channel, keys));
}
public Mono mget(ValueStreamingChannel channel, Iterable keys) {
return createMono(() -> commandBuilder.mget(channel, keys));
}
public Mono mget(KeyValueStreamingChannel channel, Iterable keys) {
return createMono(() -> commandBuilder.mget(channel, keys));
}
@Override
public Mono move(K key, int db) {
return createMono(() -> commandBuilder.move(key, db));
}
@Override
public Mono multi() {
return createMono(commandBuilder::multi);
}
@Override
public Mono mset(Map map) {
return createMono(() -> commandBuilder.mset(map));
}
@Override
public Mono msetnx(Map map) {
return createMono(() -> commandBuilder.msetnx(map));
}
@Override
public Mono objectEncoding(K key) {
return createMono(() -> commandBuilder.objectEncoding(key));
}
@Override
public Mono objectIdletime(K key) {
return createMono(() -> commandBuilder.objectIdletime(key));
}
@Override
public Mono objectRefcount(K key) {
return createMono(() -> commandBuilder.objectRefcount(key));
}
@Override
public Mono persist(K key) {
return createMono(() -> commandBuilder.persist(key));
}
@Override
public Mono pexpire(K key, long milliseconds) {
return createMono(() -> commandBuilder.pexpire(key, milliseconds));
}
@Override
public Mono pexpireat(K key, Date timestamp) {
return pexpireat(key, timestamp.getTime());
}
@Override
public Mono pexpireat(K key, long timestamp) {
return createMono(() -> commandBuilder.pexpireat(key, timestamp));
}
@Override
public Mono ping() {
return createMono(commandBuilder::ping);
}
@Override
public Mono readOnly() {
return createMono(commandBuilder::readOnly);
}
@Override
public Mono readWrite() {
return createMono(commandBuilder::readWrite);
}
@Override
public Mono pttl(K key) {
return createMono(() -> commandBuilder.pttl(key));
}
@Override
public Mono publish(K channel, V message) {
return createMono(() -> commandBuilder.publish(channel, message));
}
@Override
public Flux pubsubChannels() {
return createDissolvingFlux(commandBuilder::pubsubChannels);
}
@Override
public Flux pubsubChannels(K channel) {
return createDissolvingFlux(() -> commandBuilder.pubsubChannels(channel));
}
@Override
public Mono> pubsubNumsub(K... channels) {
return createMono(() -> commandBuilder.pubsubNumsub(channels));
}
@Override
public Mono pubsubNumpat() {
return createMono(commandBuilder::pubsubNumpat);
}
@Override
public Mono quit() {
return createMono(commandBuilder::quit);
}
@Override
public Flux role() {
return createDissolvingFlux(commandBuilder::role);
}
@Override
public Mono randomkey() {
return createMono(commandBuilder::randomkey);
}
@Override
public Mono rename(K key, K newKey) {
return createMono(() -> commandBuilder.rename(key, newKey));
}
@Override
public Mono renamenx(K key, K newKey) {
return createMono(() -> commandBuilder.renamenx(key, newKey));
}
@Override
public Mono restore(K key, long ttl, byte[] value) {
return createMono(() -> commandBuilder.restore(key, ttl, value));
}
@Override
public Mono rpop(K key) {
return createMono(() -> commandBuilder.rpop(key));
}
@Override
public Mono rpoplpush(K source, K destination) {
return createMono(() -> commandBuilder.rpoplpush(source, destination));
}
@Override
public Mono rpush(K key, V... values) {
return createMono(() -> commandBuilder.rpush(key, values));
}
@Override
public Mono rpushx(K key, V... values) {
return createMono(() -> commandBuilder.rpushx(key, values));
}
@Override
public Mono sadd(K key, V... members) {
return createMono(() -> commandBuilder.sadd(key, members));
}
@Override
public Mono save() {
return createMono(commandBuilder::save);
}
@Override
public Mono scard(K key) {
return createMono(() -> commandBuilder.scard(key));
}
@Override
public Flux scriptExists(String... digests) {
return createDissolvingFlux(() -> commandBuilder.scriptExists(digests));
}
@Override
public Mono scriptFlush() {
return createMono(commandBuilder::scriptFlush);
}
@Override
public Mono scriptKill() {
return createMono(commandBuilder::scriptKill);
}
@Override
public Mono scriptLoad(V script) {
return createMono(() -> commandBuilder.scriptLoad(script));
}
@Override
public Flux sdiff(K... keys) {
return createDissolvingFlux(() -> commandBuilder.sdiff(keys));
}
@Override
public Mono sdiff(ValueStreamingChannel channel, K... keys) {
return createMono(() -> commandBuilder.sdiff(channel, keys));
}
@Override
public Mono sdiffstore(K destination, K... keys) {
return createMono(() -> commandBuilder.sdiffstore(destination, keys));
}
public Mono select(int db) {
return createMono(() -> commandBuilder.select(db));
}
public Mono swapdb(int db1, int db2) {
return createMono(() -> commandBuilder.swapdb(db1, db2));
}
@Override
public Mono set(K key, V value) {
return createMono(() -> commandBuilder.set(key, value));
}
@Override
public Mono set(K key, V value, SetArgs setArgs) {
return createMono(() -> commandBuilder.set(key, value, setArgs));
}
@Override
public Mono setbit(K key, long offset, int value) {
return createMono(() -> commandBuilder.setbit(key, offset, value));
}
@Override
public Mono setex(K key, long seconds, V value) {
return createMono(() -> commandBuilder.setex(key, seconds, value));
}
@Override
public Mono psetex(K key, long milliseconds, V value) {
return createMono(() -> commandBuilder.psetex(key, milliseconds, value));
}
@Override
public Mono setnx(K key, V value) {
return createMono(() -> commandBuilder.setnx(key, value));
}
@Override
public Mono setrange(K key, long offset, V value) {
return createMono(() -> commandBuilder.setrange(key, offset, value));
}
@Override
public Mono shutdown(boolean save) {
return createMono(() -> commandBuilder.shutdown(save)).then();
}
@Override
public Flux sinter(K... keys) {
return createDissolvingFlux(() -> commandBuilder.sinter(keys));
}
@Override
public Mono sinter(ValueStreamingChannel channel, K... keys) {
return createMono(() -> commandBuilder.sinter(channel, keys));
}
@Override
public Mono sinterstore(K destination, K... keys) {
return createMono(() -> commandBuilder.sinterstore(destination, keys));
}
@Override
public Mono sismember(K key, V member) {
return createMono(() -> commandBuilder.sismember(key, member));
}
@Override
public Mono smove(K source, K destination, V member) {
return createMono(() -> commandBuilder.smove(source, destination, member));
}
@Override
public Mono slaveof(String host, int port) {
return createMono(() -> commandBuilder.slaveof(host, port));
}
@Override
public Mono slaveofNoOne() {
return createMono(() -> commandBuilder.slaveofNoOne());
}
@Override
public Flux slowlogGet() {
return createDissolvingFlux(() -> commandBuilder.slowlogGet());
}
@Override
public Flux slowlogGet(int count) {
return createDissolvingFlux(() -> commandBuilder.slowlogGet(count));
}
@Override
public Mono slowlogLen() {
return createMono(() -> commandBuilder.slowlogLen());
}
@Override
public Mono slowlogReset() {
return createMono(() -> commandBuilder.slowlogReset());
}
@Override
public Flux smembers(K key) {
return createDissolvingFlux(() -> commandBuilder.smembers(key));
}
@Override
public Mono smembers(ValueStreamingChannel channel, K key) {
return createMono(() -> commandBuilder.smembers(channel, key));
}
@Override
public Flux sort(K key) {
return createDissolvingFlux(() -> commandBuilder.sort(key));
}
@Override
public Mono sort(ValueStreamingChannel channel, K key) {
return createMono(() -> commandBuilder.sort(channel, key));
}
@Override
public Flux sort(K key, SortArgs sortArgs) {
return createDissolvingFlux(() -> commandBuilder.sort(key, sortArgs));
}
@Override
public Mono sort(ValueStreamingChannel channel, K key, SortArgs sortArgs) {
return createMono(() -> commandBuilder.sort(channel, key, sortArgs));
}
@Override
public Mono sortStore(K key, SortArgs sortArgs, K destination) {
return createMono(() -> commandBuilder.sortStore(key, sortArgs, destination));
}
@Override
public Mono spop(K key) {
return createMono(() -> commandBuilder.spop(key));
}
@Override
public Flux spop(K key, long count) {
return createDissolvingFlux(() -> commandBuilder.spop(key, count));
}
@Override
public Mono srandmember(K key) {
return createMono(() -> commandBuilder.srandmember(key));
}
@Override
public Flux srandmember(K key, long count) {
return createDissolvingFlux(() -> commandBuilder.srandmember(key, count));
}
@Override
public Mono srandmember(ValueStreamingChannel channel, K key, long count) {
return createMono(() -> commandBuilder.srandmember(channel, key, count));
}
@Override
public Mono srem(K key, V... members) {
return createMono(() -> commandBuilder.srem(key, members));
}
@Override
public Flux sunion(K... keys) {
return createDissolvingFlux(() -> commandBuilder.sunion(keys));
}
@Override
public Mono sunion(ValueStreamingChannel channel, K... keys) {
return createMono(() -> commandBuilder.sunion(channel, keys));
}
@Override
public Mono sunionstore(K destination, K... keys) {
return createMono(() -> commandBuilder.sunionstore(destination, keys));
}
@Override
public Mono strlen(K key) {
return createMono(() -> commandBuilder.strlen(key));
}
@Override
public Mono touch(K... keys) {
return createMono(() -> commandBuilder.touch(keys));
}
public Mono touch(Iterable keys) {
return createMono(() -> commandBuilder.touch(keys));
}
@Override
public Mono ttl(K key) {
return createMono(() -> commandBuilder.ttl(key));
}
@Override
public Mono