|
|
@ -15,18 +15,16 @@
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
package org.redisson;
|
|
|
|
package org.redisson;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
|
|
|
import java.util.concurrent.ConcurrentMap;
|
|
|
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.redisson.api.*;
|
|
|
|
import org.redisson.api.*;
|
|
|
|
import org.redisson.api.redisnode.*;
|
|
|
|
import org.redisson.api.redisnode.*;
|
|
|
|
import org.redisson.client.codec.Codec;
|
|
|
|
import org.redisson.client.codec.Codec;
|
|
|
|
import org.redisson.command.CommandExecutor;
|
|
|
|
import org.redisson.command.CommandAsyncExecutor;
|
|
|
|
|
|
|
|
import org.redisson.command.CommandSyncService;
|
|
|
|
import org.redisson.config.Config;
|
|
|
|
import org.redisson.config.Config;
|
|
|
|
import org.redisson.config.ConfigSupport;
|
|
|
|
import org.redisson.config.ConfigSupport;
|
|
|
|
import org.redisson.connection.ConnectionManager;
|
|
|
|
import org.redisson.connection.ConnectionManager;
|
|
|
|
import org.redisson.eviction.EvictionScheduler;
|
|
|
|
import org.redisson.eviction.EvictionScheduler;
|
|
|
|
|
|
|
|
import org.redisson.liveobject.core.RedissonObjectBuilder;
|
|
|
|
import org.redisson.redisnode.RedissonClusterNodes;
|
|
|
|
import org.redisson.redisnode.RedissonClusterNodes;
|
|
|
|
import org.redisson.redisnode.RedissonMasterSlaveNodes;
|
|
|
|
import org.redisson.redisnode.RedissonMasterSlaveNodes;
|
|
|
|
import org.redisson.redisnode.RedissonSentinelMasterSlaveNodes;
|
|
|
|
import org.redisson.redisnode.RedissonSentinelMasterSlaveNodes;
|
|
|
@ -34,6 +32,10 @@ import org.redisson.redisnode.RedissonSingleNode;
|
|
|
|
import org.redisson.remote.ResponseEntry;
|
|
|
|
import org.redisson.remote.ResponseEntry;
|
|
|
|
import org.redisson.transaction.RedissonTransaction;
|
|
|
|
import org.redisson.transaction.RedissonTransaction;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
|
|
|
import java.util.concurrent.ConcurrentMap;
|
|
|
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Main infrastructure class allows to get access
|
|
|
|
* Main infrastructure class allows to get access
|
|
|
|
* to all Redisson objects on top of Redis server.
|
|
|
|
* to all Redisson objects on top of Redis server.
|
|
|
@ -51,6 +53,7 @@ public class Redisson implements RedissonClient {
|
|
|
|
protected final EvictionScheduler evictionScheduler;
|
|
|
|
protected final EvictionScheduler evictionScheduler;
|
|
|
|
protected final WriteBehindService writeBehindService;
|
|
|
|
protected final WriteBehindService writeBehindService;
|
|
|
|
protected final ConnectionManager connectionManager;
|
|
|
|
protected final ConnectionManager connectionManager;
|
|
|
|
|
|
|
|
protected final CommandAsyncExecutor commandExecutor;
|
|
|
|
|
|
|
|
|
|
|
|
protected final ConcurrentMap<Class<?>, Class<?>> liveObjectClassCache = new ConcurrentHashMap<>();
|
|
|
|
protected final ConcurrentMap<Class<?>, Class<?>> liveObjectClassCache = new ConcurrentHashMap<>();
|
|
|
|
protected final Config config;
|
|
|
|
protected final Config config;
|
|
|
@ -61,17 +64,22 @@ public class Redisson implements RedissonClient {
|
|
|
|
this.config = config;
|
|
|
|
this.config = config;
|
|
|
|
Config configCopy = new Config(config);
|
|
|
|
Config configCopy = new Config(config);
|
|
|
|
|
|
|
|
|
|
|
|
connectionManager = ConfigSupport.createConnectionManager(configCopy, this);
|
|
|
|
connectionManager = ConfigSupport.createConnectionManager(configCopy);
|
|
|
|
evictionScheduler = new EvictionScheduler(connectionManager.getCommandExecutor());
|
|
|
|
RedissonObjectBuilder objectBuilder = null;
|
|
|
|
writeBehindService = new WriteBehindService(connectionManager.getCommandExecutor());
|
|
|
|
if (config.isReferenceEnabled()) {
|
|
|
|
|
|
|
|
objectBuilder = new RedissonObjectBuilder(this);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
commandExecutor = new CommandSyncService(connectionManager, objectBuilder);
|
|
|
|
|
|
|
|
evictionScheduler = new EvictionScheduler(commandExecutor);
|
|
|
|
|
|
|
|
writeBehindService = new WriteBehindService(commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public EvictionScheduler getEvictionScheduler() {
|
|
|
|
public EvictionScheduler getEvictionScheduler() {
|
|
|
|
return evictionScheduler;
|
|
|
|
return evictionScheduler;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public CommandExecutor getCommandExecutor() {
|
|
|
|
public CommandAsyncExecutor getCommandExecutor() {
|
|
|
|
return connectionManager.getCommandExecutor();
|
|
|
|
return commandExecutor;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ConnectionManager getConnectionManager() {
|
|
|
|
public ConnectionManager getConnectionManager() {
|
|
|
@ -86,11 +94,7 @@ public class Redisson implements RedissonClient {
|
|
|
|
public static RedissonClient create() {
|
|
|
|
public static RedissonClient create() {
|
|
|
|
Config config = new Config();
|
|
|
|
Config config = new Config();
|
|
|
|
config.useSingleServer()
|
|
|
|
config.useSingleServer()
|
|
|
|
.setTimeout(1000000)
|
|
|
|
|
|
|
|
.setAddress("redis://127.0.0.1:6379");
|
|
|
|
.setAddress("redis://127.0.0.1:6379");
|
|
|
|
// config.useMasterSlaveConnection().setMasterAddress("127.0.0.1:6379").addSlaveAddress("127.0.0.1:6389").addSlaveAddress("127.0.0.1:6399");
|
|
|
|
|
|
|
|
// config.useSentinelConnection().setMasterName("mymaster").addSentinelAddress("127.0.0.1:26389", "127.0.0.1:26379");
|
|
|
|
|
|
|
|
// config.useClusterServers().addNodeAddress("127.0.0.1:7000");
|
|
|
|
|
|
|
|
return create(config);
|
|
|
|
return create(config);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -125,7 +129,7 @@ public class Redisson implements RedissonClient {
|
|
|
|
return new RedissonRx(config);
|
|
|
|
return new RedissonRx(config);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Create Reactive Redisson instance with default config
|
|
|
|
* Create Reactive Redisson instance with default config
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -149,189 +153,189 @@ public class Redisson implements RedissonClient {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RTimeSeries<V> getTimeSeries(String name) {
|
|
|
|
public <V> RTimeSeries<V> getTimeSeries(String name) {
|
|
|
|
return new RedissonTimeSeries<>(evictionScheduler, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonTimeSeries<>(evictionScheduler, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RTimeSeries<V> getTimeSeries(String name, Codec codec) {
|
|
|
|
public <V> RTimeSeries<V> getTimeSeries(String name, Codec codec) {
|
|
|
|
return new RedissonTimeSeries<>(codec, evictionScheduler, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonTimeSeries<>(codec, evictionScheduler, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RStream<K, V> getStream(String name) {
|
|
|
|
public <K, V> RStream<K, V> getStream(String name) {
|
|
|
|
return new RedissonStream<K, V>(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonStream<K, V>(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RStream<K, V> getStream(String name, Codec codec) {
|
|
|
|
public <K, V> RStream<K, V> getStream(String name, Codec codec) {
|
|
|
|
return new RedissonStream<K, V>(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonStream<K, V>(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RBinaryStream getBinaryStream(String name) {
|
|
|
|
public RBinaryStream getBinaryStream(String name) {
|
|
|
|
return new RedissonBinaryStream(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonBinaryStream(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RGeo<V> getGeo(String name) {
|
|
|
|
public <V> RGeo<V> getGeo(String name) {
|
|
|
|
return new RedissonGeo<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonGeo<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RGeo<V> getGeo(String name, Codec codec) {
|
|
|
|
public <V> RGeo<V> getGeo(String name, Codec codec) {
|
|
|
|
return new RedissonGeo<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonGeo<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBucket<V> getBucket(String name) {
|
|
|
|
public <V> RBucket<V> getBucket(String name) {
|
|
|
|
return new RedissonBucket<V>(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonBucket<V>(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RRateLimiter getRateLimiter(String name) {
|
|
|
|
public RRateLimiter getRateLimiter(String name) {
|
|
|
|
return new RedissonRateLimiter(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonRateLimiter(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBucket<V> getBucket(String name, Codec codec) {
|
|
|
|
public <V> RBucket<V> getBucket(String name, Codec codec) {
|
|
|
|
return new RedissonBucket<V>(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonBucket<V>(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RBuckets getBuckets() {
|
|
|
|
public RBuckets getBuckets() {
|
|
|
|
return new RedissonBuckets(connectionManager.getCommandExecutor());
|
|
|
|
return new RedissonBuckets(commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RBuckets getBuckets(Codec codec) {
|
|
|
|
public RBuckets getBuckets(Codec codec) {
|
|
|
|
return new RedissonBuckets(codec, connectionManager.getCommandExecutor());
|
|
|
|
return new RedissonBuckets(codec, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RHyperLogLog<V> getHyperLogLog(String name) {
|
|
|
|
public <V> RHyperLogLog<V> getHyperLogLog(String name) {
|
|
|
|
return new RedissonHyperLogLog<V>(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonHyperLogLog<V>(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RHyperLogLog<V> getHyperLogLog(String name, Codec codec) {
|
|
|
|
public <V> RHyperLogLog<V> getHyperLogLog(String name, Codec codec) {
|
|
|
|
return new RedissonHyperLogLog<V>(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonHyperLogLog<V>(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RList<V> getList(String name) {
|
|
|
|
public <V> RList<V> getList(String name) {
|
|
|
|
return new RedissonList<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonList<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RList<V> getList(String name, Codec codec) {
|
|
|
|
public <V> RList<V> getList(String name, Codec codec) {
|
|
|
|
return new RedissonList<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonList<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RListMultimap<K, V> getListMultimap(String name) {
|
|
|
|
public <K, V> RListMultimap<K, V> getListMultimap(String name) {
|
|
|
|
return new RedissonListMultimap<K, V>(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonListMultimap<K, V>(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RListMultimap<K, V> getListMultimap(String name, Codec codec) {
|
|
|
|
public <K, V> RListMultimap<K, V> getListMultimap(String name, Codec codec) {
|
|
|
|
return new RedissonListMultimap<K, V>(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonListMultimap<K, V>(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, LocalCachedMapOptions<K, V> options) {
|
|
|
|
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, LocalCachedMapOptions<K, V> options) {
|
|
|
|
return new RedissonLocalCachedMap<K, V>(connectionManager.getCommandExecutor(), name,
|
|
|
|
return new RedissonLocalCachedMap<K, V>(commandExecutor, name,
|
|
|
|
options, evictionScheduler, this, writeBehindService);
|
|
|
|
options, evictionScheduler, this, writeBehindService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, Codec codec, LocalCachedMapOptions<K, V> options) {
|
|
|
|
public <K, V> RLocalCachedMap<K, V> getLocalCachedMap(String name, Codec codec, LocalCachedMapOptions<K, V> options) {
|
|
|
|
return new RedissonLocalCachedMap<K, V>(codec, connectionManager.getCommandExecutor(), name,
|
|
|
|
return new RedissonLocalCachedMap<K, V>(codec, commandExecutor, name,
|
|
|
|
options, evictionScheduler, this, writeBehindService);
|
|
|
|
options, evictionScheduler, this, writeBehindService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMap<K, V> getMap(String name) {
|
|
|
|
public <K, V> RMap<K, V> getMap(String name) {
|
|
|
|
return new RedissonMap<K, V>(connectionManager.getCommandExecutor(), name, this, null, null);
|
|
|
|
return new RedissonMap<K, V>(commandExecutor, name, this, null, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMap<K, V> getMap(String name, MapOptions<K, V> options) {
|
|
|
|
public <K, V> RMap<K, V> getMap(String name, MapOptions<K, V> options) {
|
|
|
|
return new RedissonMap<K, V>(connectionManager.getCommandExecutor(), name, this, options, writeBehindService);
|
|
|
|
return new RedissonMap<K, V>(commandExecutor, name, this, options, writeBehindService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RSetMultimap<K, V> getSetMultimap(String name) {
|
|
|
|
public <K, V> RSetMultimap<K, V> getSetMultimap(String name) {
|
|
|
|
return new RedissonSetMultimap<K, V>(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonSetMultimap<K, V>(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RSetMultimapCache<K, V> getSetMultimapCache(String name) {
|
|
|
|
public <K, V> RSetMultimapCache<K, V> getSetMultimapCache(String name) {
|
|
|
|
return new RedissonSetMultimapCache<K, V>(evictionScheduler, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonSetMultimapCache<K, V>(evictionScheduler, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RSetMultimapCache<K, V> getSetMultimapCache(String name, Codec codec) {
|
|
|
|
public <K, V> RSetMultimapCache<K, V> getSetMultimapCache(String name, Codec codec) {
|
|
|
|
return new RedissonSetMultimapCache<K, V>(evictionScheduler, codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonSetMultimapCache<K, V>(evictionScheduler, codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RListMultimapCache<K, V> getListMultimapCache(String name) {
|
|
|
|
public <K, V> RListMultimapCache<K, V> getListMultimapCache(String name) {
|
|
|
|
return new RedissonListMultimapCache<K, V>(evictionScheduler, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonListMultimapCache<K, V>(evictionScheduler, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RListMultimapCache<K, V> getListMultimapCache(String name, Codec codec) {
|
|
|
|
public <K, V> RListMultimapCache<K, V> getListMultimapCache(String name, Codec codec) {
|
|
|
|
return new RedissonListMultimapCache<K, V>(evictionScheduler, codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonListMultimapCache<K, V>(evictionScheduler, codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RSetMultimap<K, V> getSetMultimap(String name, Codec codec) {
|
|
|
|
public <K, V> RSetMultimap<K, V> getSetMultimap(String name, Codec codec) {
|
|
|
|
return new RedissonSetMultimap<K, V>(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonSetMultimap<K, V>(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RSetCache<V> getSetCache(String name) {
|
|
|
|
public <V> RSetCache<V> getSetCache(String name) {
|
|
|
|
return new RedissonSetCache<V>(evictionScheduler, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonSetCache<V>(evictionScheduler, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RSetCache<V> getSetCache(String name, Codec codec) {
|
|
|
|
public <V> RSetCache<V> getSetCache(String name, Codec codec) {
|
|
|
|
return new RedissonSetCache<V>(codec, evictionScheduler, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonSetCache<V>(codec, evictionScheduler, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name) {
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name) {
|
|
|
|
return new RedissonMapCache<K, V>(evictionScheduler, connectionManager.getCommandExecutor(), name, this, null, null);
|
|
|
|
return new RedissonMapCache<K, V>(evictionScheduler, commandExecutor, name, this, null, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name, MapOptions<K, V> options) {
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name, MapOptions<K, V> options) {
|
|
|
|
return new RedissonMapCache<K, V>(evictionScheduler, connectionManager.getCommandExecutor(), name, this, options, writeBehindService);
|
|
|
|
return new RedissonMapCache<K, V>(evictionScheduler, commandExecutor, name, this, options, writeBehindService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name, Codec codec) {
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name, Codec codec) {
|
|
|
|
return new RedissonMapCache<K, V>(codec, evictionScheduler, connectionManager.getCommandExecutor(), name, this, null, null);
|
|
|
|
return new RedissonMapCache<K, V>(codec, evictionScheduler, commandExecutor, name, this, null, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name, Codec codec, MapOptions<K, V> options) {
|
|
|
|
public <K, V> RMapCache<K, V> getMapCache(String name, Codec codec, MapOptions<K, V> options) {
|
|
|
|
return new RedissonMapCache<K, V>(codec, evictionScheduler, connectionManager.getCommandExecutor(), name, this, options, writeBehindService);
|
|
|
|
return new RedissonMapCache<K, V>(codec, evictionScheduler, commandExecutor, name, this, options, writeBehindService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMap<K, V> getMap(String name, Codec codec) {
|
|
|
|
public <K, V> RMap<K, V> getMap(String name, Codec codec) {
|
|
|
|
return new RedissonMap<K, V>(codec, connectionManager.getCommandExecutor(), name, this, null, null);
|
|
|
|
return new RedissonMap<K, V>(codec, commandExecutor, name, this, null, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <K, V> RMap<K, V> getMap(String name, Codec codec, MapOptions<K, V> options) {
|
|
|
|
public <K, V> RMap<K, V> getMap(String name, Codec codec, MapOptions<K, V> options) {
|
|
|
|
return new RedissonMap<K, V>(codec, connectionManager.getCommandExecutor(), name, this, options, writeBehindService);
|
|
|
|
return new RedissonMap<K, V>(codec, commandExecutor, name, this, options, writeBehindService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RLock getLock(String name) {
|
|
|
|
public RLock getLock(String name) {
|
|
|
|
return new RedissonLock(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonLock(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -341,7 +345,7 @@ public class Redisson implements RedissonClient {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RLock getSpinLock(String name, LockOptions.BackOff backOff) {
|
|
|
|
public RLock getSpinLock(String name, LockOptions.BackOff backOff) {
|
|
|
|
return new RedissonSpinLock(connectionManager.getCommandExecutor(), name, backOff);
|
|
|
|
return new RedissonSpinLock(commandExecutor, name, backOff);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -356,32 +360,32 @@ public class Redisson implements RedissonClient {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RLock getFairLock(String name) {
|
|
|
|
public RLock getFairLock(String name) {
|
|
|
|
return new RedissonFairLock(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonFairLock(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RReadWriteLock getReadWriteLock(String name) {
|
|
|
|
public RReadWriteLock getReadWriteLock(String name) {
|
|
|
|
return new RedissonReadWriteLock(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonReadWriteLock(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RSet<V> getSet(String name) {
|
|
|
|
public <V> RSet<V> getSet(String name) {
|
|
|
|
return new RedissonSet<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonSet<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RSet<V> getSet(String name, Codec codec) {
|
|
|
|
public <V> RSet<V> getSet(String name, Codec codec) {
|
|
|
|
return new RedissonSet<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonSet<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RScript getScript() {
|
|
|
|
public RScript getScript() {
|
|
|
|
return new RedissonScript(connectionManager.getCommandExecutor());
|
|
|
|
return new RedissonScript(commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RScript getScript(Codec codec) {
|
|
|
|
public RScript getScript(Codec codec) {
|
|
|
|
return new RedissonScript(connectionManager.getCommandExecutor(), codec);
|
|
|
|
return new RedissonScript(commandExecutor, codec);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -401,7 +405,7 @@ public class Redisson implements RedissonClient {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RScheduledExecutorService getExecutorService(String name, Codec codec, ExecutorOptions options) {
|
|
|
|
public RScheduledExecutorService getExecutorService(String name, Codec codec, ExecutorOptions options) {
|
|
|
|
return new RedissonExecutorService(codec, connectionManager.getCommandExecutor(), this, name, queueTransferService, responses, options);
|
|
|
|
return new RedissonExecutorService(codec, commandExecutor, this, name, queueTransferService, responses, options);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -425,62 +429,62 @@ public class Redisson implements RedissonClient {
|
|
|
|
if (codec != connectionManager.getCodec()) {
|
|
|
|
if (codec != connectionManager.getCodec()) {
|
|
|
|
executorId = executorId + ":" + name;
|
|
|
|
executorId = executorId + ":" + name;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new RedissonRemoteService(codec, name, connectionManager.getCommandExecutor(), executorId, responses);
|
|
|
|
return new RedissonRemoteService(codec, name, commandExecutor, executorId, responses);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RSortedSet<V> getSortedSet(String name) {
|
|
|
|
public <V> RSortedSet<V> getSortedSet(String name) {
|
|
|
|
return new RedissonSortedSet<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonSortedSet<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RSortedSet<V> getSortedSet(String name, Codec codec) {
|
|
|
|
public <V> RSortedSet<V> getSortedSet(String name, Codec codec) {
|
|
|
|
return new RedissonSortedSet<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonSortedSet<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RScoredSortedSet<V> getScoredSortedSet(String name) {
|
|
|
|
public <V> RScoredSortedSet<V> getScoredSortedSet(String name) {
|
|
|
|
return new RedissonScoredSortedSet<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonScoredSortedSet<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RScoredSortedSet<V> getScoredSortedSet(String name, Codec codec) {
|
|
|
|
public <V> RScoredSortedSet<V> getScoredSortedSet(String name, Codec codec) {
|
|
|
|
return new RedissonScoredSortedSet<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonScoredSortedSet<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RLexSortedSet getLexSortedSet(String name) {
|
|
|
|
public RLexSortedSet getLexSortedSet(String name) {
|
|
|
|
return new RedissonLexSortedSet(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonLexSortedSet(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RTopic getTopic(String name) {
|
|
|
|
public RTopic getTopic(String name) {
|
|
|
|
return new RedissonTopic(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonTopic(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RTopic getTopic(String name, Codec codec) {
|
|
|
|
public RTopic getTopic(String name, Codec codec) {
|
|
|
|
return new RedissonTopic(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonTopic(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RReliableTopic getReliableTopic(String name) {
|
|
|
|
public RReliableTopic getReliableTopic(String name) {
|
|
|
|
return new RedissonReliableTopic(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonReliableTopic(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RReliableTopic getReliableTopic(String name, Codec codec) {
|
|
|
|
public RReliableTopic getReliableTopic(String name, Codec codec) {
|
|
|
|
return new RedissonReliableTopic(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonReliableTopic(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RPatternTopic getPatternTopic(String pattern) {
|
|
|
|
public RPatternTopic getPatternTopic(String pattern) {
|
|
|
|
return new RedissonPatternTopic(connectionManager.getCommandExecutor(), pattern);
|
|
|
|
return new RedissonPatternTopic(commandExecutor, pattern);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RPatternTopic getPatternTopic(String pattern, Codec codec) {
|
|
|
|
public RPatternTopic getPatternTopic(String pattern, Codec codec) {
|
|
|
|
return new RedissonPatternTopic(codec, connectionManager.getCommandExecutor(), pattern);
|
|
|
|
return new RedissonPatternTopic(codec, commandExecutor, pattern);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -488,151 +492,151 @@ public class Redisson implements RedissonClient {
|
|
|
|
if (destinationQueue == null) {
|
|
|
|
if (destinationQueue == null) {
|
|
|
|
throw new NullPointerException();
|
|
|
|
throw new NullPointerException();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new RedissonDelayedQueue<V>(queueTransferService, destinationQueue.getCodec(), connectionManager.getCommandExecutor(), destinationQueue.getName());
|
|
|
|
return new RedissonDelayedQueue<V>(queueTransferService, destinationQueue.getCodec(), commandExecutor, destinationQueue.getName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RQueue<V> getQueue(String name) {
|
|
|
|
public <V> RQueue<V> getQueue(String name) {
|
|
|
|
return new RedissonQueue<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonQueue<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RQueue<V> getQueue(String name, Codec codec) {
|
|
|
|
public <V> RQueue<V> getQueue(String name, Codec codec) {
|
|
|
|
return new RedissonQueue<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonQueue<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RTransferQueue<V> getTransferQueue(String name) {
|
|
|
|
public <V> RTransferQueue<V> getTransferQueue(String name) {
|
|
|
|
String remoteName = RedissonObject.suffixName(name, "remoteService");
|
|
|
|
String remoteName = RedissonObject.suffixName(name, "remoteService");
|
|
|
|
RRemoteService service = getRemoteService(remoteName);
|
|
|
|
RRemoteService service = getRemoteService(remoteName);
|
|
|
|
return new RedissonTransferQueue<V>(connectionManager.getCommandExecutor(), name, service);
|
|
|
|
return new RedissonTransferQueue<V>(commandExecutor, name, service);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RTransferQueue<V> getTransferQueue(String name, Codec codec) {
|
|
|
|
public <V> RTransferQueue<V> getTransferQueue(String name, Codec codec) {
|
|
|
|
String remoteName = RedissonObject.suffixName(name, "remoteService");
|
|
|
|
String remoteName = RedissonObject.suffixName(name, "remoteService");
|
|
|
|
RRemoteService service = getRemoteService(remoteName);
|
|
|
|
RRemoteService service = getRemoteService(remoteName);
|
|
|
|
return new RedissonTransferQueue<V>(codec, connectionManager.getCommandExecutor(), name, service);
|
|
|
|
return new RedissonTransferQueue<V>(codec, commandExecutor, name, service);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RRingBuffer<V> getRingBuffer(String name) {
|
|
|
|
public <V> RRingBuffer<V> getRingBuffer(String name) {
|
|
|
|
return new RedissonRingBuffer<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonRingBuffer<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RRingBuffer<V> getRingBuffer(String name, Codec codec) {
|
|
|
|
public <V> RRingBuffer<V> getRingBuffer(String name, Codec codec) {
|
|
|
|
return new RedissonRingBuffer<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonRingBuffer<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBlockingQueue<V> getBlockingQueue(String name) {
|
|
|
|
public <V> RBlockingQueue<V> getBlockingQueue(String name) {
|
|
|
|
return new RedissonBlockingQueue<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonBlockingQueue<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBlockingQueue<V> getBlockingQueue(String name, Codec codec) {
|
|
|
|
public <V> RBlockingQueue<V> getBlockingQueue(String name, Codec codec) {
|
|
|
|
return new RedissonBlockingQueue<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonBlockingQueue<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBoundedBlockingQueue<V> getBoundedBlockingQueue(String name) {
|
|
|
|
public <V> RBoundedBlockingQueue<V> getBoundedBlockingQueue(String name) {
|
|
|
|
return new RedissonBoundedBlockingQueue<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonBoundedBlockingQueue<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBoundedBlockingQueue<V> getBoundedBlockingQueue(String name, Codec codec) {
|
|
|
|
public <V> RBoundedBlockingQueue<V> getBoundedBlockingQueue(String name, Codec codec) {
|
|
|
|
return new RedissonBoundedBlockingQueue<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonBoundedBlockingQueue<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RDeque<V> getDeque(String name) {
|
|
|
|
public <V> RDeque<V> getDeque(String name) {
|
|
|
|
return new RedissonDeque<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonDeque<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RDeque<V> getDeque(String name, Codec codec) {
|
|
|
|
public <V> RDeque<V> getDeque(String name, Codec codec) {
|
|
|
|
return new RedissonDeque<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonDeque<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBlockingDeque<V> getBlockingDeque(String name) {
|
|
|
|
public <V> RBlockingDeque<V> getBlockingDeque(String name) {
|
|
|
|
return new RedissonBlockingDeque<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonBlockingDeque<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBlockingDeque<V> getBlockingDeque(String name, Codec codec) {
|
|
|
|
public <V> RBlockingDeque<V> getBlockingDeque(String name, Codec codec) {
|
|
|
|
return new RedissonBlockingDeque<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonBlockingDeque<V>(codec, commandExecutor, name, this);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RAtomicLong getAtomicLong(String name) {
|
|
|
|
public RAtomicLong getAtomicLong(String name) {
|
|
|
|
return new RedissonAtomicLong(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonAtomicLong(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RLongAdder getLongAdder(String name) {
|
|
|
|
public RLongAdder getLongAdder(String name) {
|
|
|
|
return new RedissonLongAdder(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonLongAdder(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RDoubleAdder getDoubleAdder(String name) {
|
|
|
|
public RDoubleAdder getDoubleAdder(String name) {
|
|
|
|
return new RedissonDoubleAdder(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonDoubleAdder(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RAtomicDouble getAtomicDouble(String name) {
|
|
|
|
public RAtomicDouble getAtomicDouble(String name) {
|
|
|
|
return new RedissonAtomicDouble(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonAtomicDouble(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RCountDownLatch getCountDownLatch(String name) {
|
|
|
|
public RCountDownLatch getCountDownLatch(String name) {
|
|
|
|
return new RedissonCountDownLatch(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonCountDownLatch(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RBitSet getBitSet(String name) {
|
|
|
|
public RBitSet getBitSet(String name) {
|
|
|
|
return new RedissonBitSet(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonBitSet(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RSemaphore getSemaphore(String name) {
|
|
|
|
public RSemaphore getSemaphore(String name) {
|
|
|
|
return new RedissonSemaphore(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonSemaphore(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RPermitExpirableSemaphore getPermitExpirableSemaphore(String name) {
|
|
|
|
public RPermitExpirableSemaphore getPermitExpirableSemaphore(String name) {
|
|
|
|
return new RedissonPermitExpirableSemaphore(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonPermitExpirableSemaphore(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBloomFilter<V> getBloomFilter(String name) {
|
|
|
|
public <V> RBloomFilter<V> getBloomFilter(String name) {
|
|
|
|
return new RedissonBloomFilter<V>(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonBloomFilter<V>(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RBloomFilter<V> getBloomFilter(String name, Codec codec) {
|
|
|
|
public <V> RBloomFilter<V> getBloomFilter(String name, Codec codec) {
|
|
|
|
return new RedissonBloomFilter<V>(codec, connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonBloomFilter<V>(codec, commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RIdGenerator getIdGenerator(String name) {
|
|
|
|
public RIdGenerator getIdGenerator(String name) {
|
|
|
|
return new RedissonIdGenerator(connectionManager.getCommandExecutor(), name);
|
|
|
|
return new RedissonIdGenerator(commandExecutor, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RKeys getKeys() {
|
|
|
|
public RKeys getKeys() {
|
|
|
|
return new RedissonKeys(connectionManager.getCommandExecutor());
|
|
|
|
return new RedissonKeys(commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RTransaction createTransaction(TransactionOptions options) {
|
|
|
|
public RTransaction createTransaction(TransactionOptions options) {
|
|
|
|
return new RedissonTransaction(connectionManager.getCommandExecutor(), options);
|
|
|
|
return new RedissonTransaction(commandExecutor, options);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RBatch createBatch(BatchOptions options) {
|
|
|
|
public RBatch createBatch(BatchOptions options) {
|
|
|
|
return new RedissonBatch(evictionScheduler, connectionManager, options);
|
|
|
|
return new RedissonBatch(evictionScheduler, commandExecutor, options);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -642,7 +646,7 @@ public class Redisson implements RedissonClient {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public RLiveObjectService getLiveObjectService() {
|
|
|
|
public RLiveObjectService getLiveObjectService() {
|
|
|
|
return new RedissonLiveObjectService(liveObjectClassCache, connectionManager);
|
|
|
|
return new RedissonLiveObjectService(liveObjectClassCache, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -667,32 +671,32 @@ public class Redisson implements RedissonClient {
|
|
|
|
if (config.isSentinelConfig() || config.isClusterConfig()) {
|
|
|
|
if (config.isSentinelConfig() || config.isClusterConfig()) {
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis single configuration");
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis single configuration");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (T) new RedissonSingleNode(connectionManager);
|
|
|
|
return (T) new RedissonSingleNode(connectionManager, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (nodes.getClazz() == RedisCluster.class) {
|
|
|
|
if (nodes.getClazz() == RedisCluster.class) {
|
|
|
|
if (!config.isClusterConfig()) {
|
|
|
|
if (!config.isClusterConfig()) {
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis Cluster configuration");
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis Cluster configuration");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (T) new RedissonClusterNodes(connectionManager);
|
|
|
|
return (T) new RedissonClusterNodes(connectionManager, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (nodes.getClazz() == RedisSentinelMasterSlave.class) {
|
|
|
|
if (nodes.getClazz() == RedisSentinelMasterSlave.class) {
|
|
|
|
if (!config.isSentinelConfig()) {
|
|
|
|
if (!config.isSentinelConfig()) {
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis Sentinel configuration");
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis Sentinel configuration");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (T) new RedissonSentinelMasterSlaveNodes(connectionManager);
|
|
|
|
return (T) new RedissonSentinelMasterSlaveNodes(connectionManager, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (nodes.getClazz() == RedisMasterSlave.class) {
|
|
|
|
if (nodes.getClazz() == RedisMasterSlave.class) {
|
|
|
|
if (config.isSentinelConfig() || config.isClusterConfig()) {
|
|
|
|
if (config.isSentinelConfig() || config.isClusterConfig()) {
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis Master Slave configuration");
|
|
|
|
throw new IllegalArgumentException("Can't be used in non Redis Master Slave configuration");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (T) new RedissonMasterSlaveNodes(connectionManager);
|
|
|
|
return (T) new RedissonMasterSlaveNodes(connectionManager, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
throw new IllegalArgumentException();
|
|
|
|
throw new IllegalArgumentException();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public NodesGroup<Node> getNodesGroup() {
|
|
|
|
public NodesGroup<Node> getNodesGroup() {
|
|
|
|
return new RedisNodes<Node>(connectionManager);
|
|
|
|
return new RedisNodes<Node>(connectionManager, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -700,7 +704,7 @@ public class Redisson implements RedissonClient {
|
|
|
|
if (!connectionManager.isClusterMode()) {
|
|
|
|
if (!connectionManager.isClusterMode()) {
|
|
|
|
throw new IllegalStateException("Redisson is not in cluster mode!");
|
|
|
|
throw new IllegalStateException("Redisson is not in cluster mode!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new RedisClusterNodes(connectionManager);
|
|
|
|
return new RedisClusterNodes(connectionManager, commandExecutor);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -715,43 +719,43 @@ public class Redisson implements RedissonClient {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityQueue<V> getPriorityQueue(String name) {
|
|
|
|
public <V> RPriorityQueue<V> getPriorityQueue(String name) {
|
|
|
|
return new RedissonPriorityQueue<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityQueue<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityQueue<V> getPriorityQueue(String name, Codec codec) {
|
|
|
|
public <V> RPriorityQueue<V> getPriorityQueue(String name, Codec codec) {
|
|
|
|
return new RedissonPriorityQueue<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityQueue<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityBlockingQueue<V> getPriorityBlockingQueue(String name) {
|
|
|
|
public <V> RPriorityBlockingQueue<V> getPriorityBlockingQueue(String name) {
|
|
|
|
return new RedissonPriorityBlockingQueue<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityBlockingQueue<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityBlockingQueue<V> getPriorityBlockingQueue(String name, Codec codec) {
|
|
|
|
public <V> RPriorityBlockingQueue<V> getPriorityBlockingQueue(String name, Codec codec) {
|
|
|
|
return new RedissonPriorityBlockingQueue<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityBlockingQueue<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityBlockingDeque<V> getPriorityBlockingDeque(String name) {
|
|
|
|
public <V> RPriorityBlockingDeque<V> getPriorityBlockingDeque(String name) {
|
|
|
|
return new RedissonPriorityBlockingDeque<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityBlockingDeque<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityBlockingDeque<V> getPriorityBlockingDeque(String name, Codec codec) {
|
|
|
|
public <V> RPriorityBlockingDeque<V> getPriorityBlockingDeque(String name, Codec codec) {
|
|
|
|
return new RedissonPriorityBlockingDeque<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityBlockingDeque<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityDeque<V> getPriorityDeque(String name) {
|
|
|
|
public <V> RPriorityDeque<V> getPriorityDeque(String name) {
|
|
|
|
return new RedissonPriorityDeque<V>(connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityDeque<V>(commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public <V> RPriorityDeque<V> getPriorityDeque(String name, Codec codec) {
|
|
|
|
public <V> RPriorityDeque<V> getPriorityDeque(String name, Codec codec) {
|
|
|
|
return new RedissonPriorityDeque<V>(codec, connectionManager.getCommandExecutor(), name, this);
|
|
|
|
return new RedissonPriorityDeque<V>(codec, commandExecutor, name, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|