All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.redisson.api.RedissonClient Maven / Gradle / Ivy

Go to download

Easy Redis Java client and Real-Time Data Platform. Valkey compatible. Sync/Async/RxJava3/Reactive API. Client side caching. Over 50 Redis based Java objects and services: JCache API, Apache Tomcat, Hibernate, Spring, Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Scheduler, RPC

The newest version!
/**
 * Copyright (c) 2013-2024 Nikita Koksharov
 *
 * 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 org.redisson.api;

import org.redisson.api.options.*;
import org.redisson.api.redisnode.BaseRedisNodes;
import org.redisson.api.redisnode.RedisNodes;
import org.redisson.client.codec.Codec;
import org.redisson.codec.JsonCodec;
import org.redisson.config.Config;

import java.util.Collection;
import java.util.concurrent.TimeUnit;

/**
 * Main Redisson interface for access
 * to all redisson objects with sync/async interface.
 * 
 * @see RedissonReactiveClient
 * @see RedissonRxClient
 *
 * @author Nikita Koksharov
 *
 */
public interface RedissonClient {

    /**
     * Returns time-series instance by name
     *
     * @param  value type
     * @param  label type
     * @param name name of instance
     * @return RTimeSeries object
     */
     RTimeSeries getTimeSeries(String name);

    /**
     * Returns time-series instance by name
     * using provided codec for values.
     *
     * @param  value type
     * @param  label type
     * @param name name of instance
     * @param codec codec for values
     * @return RTimeSeries object
     */
     RTimeSeries getTimeSeries(String name, Codec codec);

    /**
     * Returns time-series instance with specified options.
     *
     * @param  value type
     * @param  label type
     * @param options instance options
     * @return RTimeSeries object
     */
     RTimeSeries getTimeSeries(PlainOptions options);

    /**
     * Returns stream instance by name
     * 

* Requires Redis 5.0.0 and higher. * * @param type of key * @param type of value * @param name of stream * @return RStream object */ RStream getStream(String name); /** * Returns stream instance by name * using provided codec for entries. *

* Requires Redis 5.0.0 and higher. * * @param type of key * @param type of value * @param name name of stream * @param codec codec for entry * @return RStream object */ RStream getStream(String name, Codec codec); /** * Returns time-series instance with specified options. *

* Requires Redis 5.0.0 and higher. * * @param type of key * @param type of value * @param options instance options * @return RStream object */ RStream getStream(PlainOptions options); /** * Returns API for RediSearch module * * @return RSearch object */ RSearch getSearch(); /** * Returns API for RediSearch module using defined codec for attribute values. * * @param codec codec for entry * @return RSearch object */ RSearch getSearch(Codec codec); /** * Returns API for RediSearch module with specified options. * * @param options instance options * @return RSearch object */ RSearch getSearch(OptionalOptions options); /** * Returns rate limiter instance by name * * @param name of rate limiter * @return RateLimiter object */ RRateLimiter getRateLimiter(String name); /** * Returns rate limiter instance with specified options. * * @param options instance options * @return RateLimiter object */ RRateLimiter getRateLimiter(CommonOptions options); /** * Returns binary stream holder instance by name * * @param name of binary stream * @return BinaryStream object */ RBinaryStream getBinaryStream(String name); /** * Returns binary stream holder instance with specified options. * * @param options instance options * @return BinaryStream object */ RBinaryStream getBinaryStream(CommonOptions options); /** * Returns geospatial items holder instance by name. * * @param type of value * @param name name of object * @return Geo object */ RGeo getGeo(String name); /** * Returns geospatial items holder instance by name * using provided codec for geospatial members. * * @param type of value * @param name name of object * @param codec codec for value * @return Geo object */ RGeo getGeo(String name, Codec codec); /** * Returns geospatial items holder instance with specified options. * * @param type of value * @param options instance options * @return Geo object */ RGeo getGeo(PlainOptions options); /** * Returns set-based cache instance by name. * Supports value eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSet(String, Codec)}.

* * @param type of value * @param name name of object * @return SetCache object */ RSetCache getSetCache(String name); /** * Returns set-based cache instance by name. * Supports value eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSet(String, Codec)}.

* * @param type of value * @param name name of object * @param codec codec for values * @return SetCache object */ RSetCache getSetCache(String name, Codec codec); /** * Returns set-based cache instance with specified options. * Supports value eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSet(PlainOptions)}.

* * @param type of value * @param options instance options * @return SetCache object */ RSetCache getSetCache(PlainOptions options); /** * Returns map-based cache instance by name * using provided codec for both cache keys and values. * Supports entry eviction with a given MaxIdleTime and TTL settings. *

* If eviction is not required then it's better to use regular map {@link #getMap(String, Codec)}. * * @param type of key * @param type of value * @param name object name * @param codec codec for keys and values * @return MapCache object */ RMapCache getMapCache(String name, Codec codec); /** * Returns map-based cache instance by name * using provided codec for both cache keys and values. * Supports entry eviction with a given MaxIdleTime and TTL settings. *

* If eviction is not required then it's better to use regular map {@link #getMap(String, Codec)}. * * @param type of key * @param type of value * @param name object name * @param codec codec for keys and values * @param options map options * @return MapCache object */ @Deprecated RMapCache getMapCache(String name, Codec codec, MapCacheOptions options); /** * Returns map-based cache instance with specified options. * Supports entry eviction with a given MaxIdleTime and TTL settings. *

* If eviction is not required then it's better to use regular map {@link #getMap(org.redisson.api.options.MapOptions)}.

* * @param type of key * @param type of value * @param options instance options * @return MapCache object */ RMapCache getMapCache(org.redisson.api.options.MapCacheOptions options); /** * Returns map-based cache instance by name. * Supports entry eviction with a given MaxIdleTime and TTL settings. *

* If eviction is not required then it's better to use regular map {@link #getMap(String)}.

* * @param type of key * @param type of value * @param name name of object * @return MapCache object */ RMapCache getMapCache(String name); /** * Returns map-based cache instance by name. * Supports entry eviction with a given MaxIdleTime and TTL settings. *

* If eviction is not required then it's better to use regular map {@link #getMap(String)}.

* * @param type of key * @param type of value * @param name name of object * @param options map options * @return MapCache object */ @Deprecated RMapCache getMapCache(String name, MapCacheOptions options); /** * Returns object holder instance by name. * * @param type of value * @param name name of object * @return Bucket object */ RBucket getBucket(String name); /** * Returns object holder instance by name * using provided codec for object. * * @param type of value * @param name name of object * @param codec codec for values * @return Bucket object */ RBucket getBucket(String name, Codec codec); /** * Returns object holder instance with specified options. * * @param type of value * @param options instance options * @return Bucket object */ RBucket getBucket(PlainOptions options); /** * Returns interface for mass operations with Bucket objects. * * @return Buckets object */ RBuckets getBuckets(); /** * Returns interface for mass operations with Bucket objects * using provided codec for object. * * @param codec codec for bucket objects * @return Buckets object */ RBuckets getBuckets(Codec codec); /** * Returns API for mass operations over Bucket objects with specified options. * * @param options instance options * @return Buckets object */ RBuckets getBuckets(OptionalOptions options); /** * Returns JSON data holder instance by name using provided codec. * * @param type of value * @param name name of object * @param codec codec for values * @return JsonBucket object */ RJsonBucket getJsonBucket(String name, JsonCodec codec); /** * Returns JSON data holder instance with specified options. * * @param type of value * @param options instance options * @return JsonBucket object */ RJsonBucket getJsonBucket(JsonBucketOptions options); /** * Returns API for mass operations over JsonBucket objects * using provided codec for JSON object with default path. * * @param codec using provided codec for JSON object with default path. * @return JsonBuckets */ RJsonBuckets getJsonBuckets(JsonCodec codec); /** * Returns HyperLogLog instance by name. * * @param type of value * @param name name of object * @return HyperLogLog object */ RHyperLogLog getHyperLogLog(String name); /** * Returns HyperLogLog instance by name * using provided codec for hll objects. * * @param type of value * @param name name of object * @param codec codec for values * @return HyperLogLog object */ RHyperLogLog getHyperLogLog(String name, Codec codec); /** * Returns HyperLogLog instance with specified options. * * @param type of value * @param options instance options * @return HyperLogLog object */ RHyperLogLog getHyperLogLog(PlainOptions options); /** * Returns list instance by name. * * @param type of value * @param name name of object * @return List object */ RList getList(String name); /** * Returns list instance by name * using provided codec for list objects. * * @param type of value * @param name name of object * @param codec codec for values * @return List object */ RList getList(String name, Codec codec); /** * Returns list instance with specified options. * * @param type of value * @param options instance options * @return List object */ RList getList(PlainOptions options); /** * Returns List based Multimap instance by name. * * @param type of key * @param type of value * @param name name of object * @return ListMultimap object */ RListMultimap getListMultimap(String name); /** * Returns List based Multimap instance by name * using provided codec for both map keys and values. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return ListMultimap object */ RListMultimap getListMultimap(String name, Codec codec); /** * Returns List based Multimap instance with specified options. * * @param type of key * @param type of value * @param options instance options * @return ListMultimap object */ RListMultimap getListMultimap(PlainOptions options); /** * Returns List based Multimap instance by name. * Supports key-entry eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSetMultimap(String)}.

* * @param type of key * @param type of value * @param name name of object * @return ListMultimapCache object */ RListMultimapCache getListMultimapCache(String name); /** * Returns List based Multimap instance by name * using provided codec for both map keys and values. * Supports key-entry eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSetMultimap(String, Codec)}.

* * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return ListMultimapCache object */ RListMultimapCache getListMultimapCache(String name, Codec codec); /** * Returns List based Multimap instance by name. * Supports key-entry eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSetMultimap(String)}.

* * @param type of key * @param type of value * @param options instance options * @return ListMultimapCache object */ RListMultimapCache getListMultimapCache(PlainOptions options); /** * Returns List based Multimap instance by name. * Supports key-entry eviction with a given TTL value. * Stores insertion order and allows duplicates for values mapped to key. *

* Uses Redis native commands for entry expiration and not a scheduled eviction task. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param name name of object * @return ListMultimapCache object */ RListMultimapCacheNative getListMultimapCacheNative(String name); /** * Returns List based Multimap instance by name * using provided codec for both map keys and values. * Supports key-entry eviction with a given TTL value. * Stores insertion order and allows duplicates for values mapped to key. *

* Uses Redis native commands for entry expiration and not a scheduled eviction task. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return ListMultimapCache object */ RListMultimapCacheNative getListMultimapCacheNative(String name, Codec codec); /** * Returns List based Multimap instance by name. * Supports key-entry eviction with a given TTL value. * Stores insertion order and allows duplicates for values mapped to key. *

* Uses Redis native commands for entry expiration and not a scheduled eviction task. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param options instance options * @return ListMultimapCache object */ RListMultimapCacheNative getListMultimapCacheNative(PlainOptions options); /** * Returns local cached map instance by name. * Configured by parameters of options-object. * * @param type of key * @param type of value * @param name name of object * @param options local map options * @return LocalCachedMap object */ @Deprecated RLocalCachedMap getLocalCachedMap(String name, LocalCachedMapOptions options); /** * Returns local cached map instance by name * using provided codec. Configured by parameters of options-object. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @param options local map options * @return LocalCachedMap object */ @Deprecated RLocalCachedMap getLocalCachedMap(String name, Codec codec, LocalCachedMapOptions options); /** * Returns local cached map instance with specified options. * * @param type of key * @param type of value * @param options instance options * @return LocalCachedMap object */ RLocalCachedMap getLocalCachedMap(org.redisson.api.options.LocalCachedMapOptions options); /** * Returns map instance by name. * * @param type of key * @param type of value * @param name name of object * @return Map object */ RMap getMap(String name); /** * Returns map instance by name. * * @param type of key * @param type of value * @param name name of object * @param options map options * @return Map object */ @Deprecated RMap getMap(String name, MapOptions options); /** * Returns map instance by name * using provided codec for both map keys and values. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return Map object */ RMap getMap(String name, Codec codec); /** * Returns map instance by name * using provided codec for both map keys and values. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @param options map options * @return Map object */ @Deprecated RMap getMap(String name, Codec codec, MapOptions options); /** * Returns map instance by name. * * @param type of key * @param type of value * @param options instance options * @return Map object */ RMap getMap(org.redisson.api.options.MapOptions options); /** * Returns map instance by name. * Supports entry eviction with a given TTL. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param name name of object * @return Map object */ RMapCacheNative getMapCacheNative(String name); /** * Returns map instance by name * using provided codec for both map keys and values. * Supports entry eviction with a given TTL. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return Map object */ RMapCacheNative getMapCacheNative(String name, Codec codec); /** * Returns map instance. * Supports entry eviction with a given TTL. * Configured by the parameters of the options-object. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param options instance options * @return Map object */ RMapCacheNative getMapCacheNative(org.redisson.api.options.MapOptions options); /** * Returns Set based Multimap instance by name. * * @param type of key * @param type of value * @param name name of object * @return SetMultimap object */ RSetMultimap getSetMultimap(String name); /** * Returns Set based Multimap instance by name * using provided codec for both map keys and values. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return SetMultimap object */ RSetMultimap getSetMultimap(String name, Codec codec); /** * Returns Set based Multimap instance with specified options. * * @param type of key * @param type of value * @param options instance options * @return SetMultimap object */ RSetMultimap getSetMultimap(PlainOptions options); /** * Returns Set based Multimap instance by name. * Supports key-entry eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSetMultimap(String)}.

* * @param type of key * @param type of value * @param name name of object * @return SetMultimapCache object */ RSetMultimapCache getSetMultimapCache(String name); /** * Returns Set based Multimap instance by name * using provided codec for both map keys and values. * Supports key-entry eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSetMultimap(String, Codec)}.

* * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return SetMultimapCache object */ RSetMultimapCache getSetMultimapCache(String name, Codec codec); /** * Returns Set based Multimap instance with specified options. * Supports key-entry eviction with a given TTL value. * *

If eviction is not required then it's better to use regular map {@link #getSetMultimap(PlainOptions)}.

* * @param type of key * @param type of value * @param options instance options * @return SetMultimapCache object */ RSetMultimapCache getSetMultimapCache(PlainOptions options); /** * Returns Set based Multimap instance by name. * Supports key-entry eviction with a given TTL value. * Doesn't allow duplications for values mapped to key. *

* Uses Redis native commands for entry expiration and not a scheduled eviction task. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param name name of object * @return SetMultimapCache object */ RSetMultimapCacheNative getSetMultimapCacheNative(String name); /** * Returns Set based Multimap instance by name * using provided codec for both map keys and values. * Supports key-entry eviction with a given TTL value. * Doesn't allow duplications for values mapped to key. *

* Uses Redis native commands for entry expiration and not a scheduled eviction task. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param name name of object * @param codec codec for keys and values * @return SetMultimapCache object */ RSetMultimapCacheNative getSetMultimapCacheNative(String name, Codec codec); /** * Returns Set based Multimap instance with specified options. * Supports key-entry eviction with a given TTL value. * Doesn't allow duplications for values mapped to key. *

* Uses Redis native commands for entry expiration and not a scheduled eviction task. *

* Requires Redis 7.4.0 and higher. * * @param type of key * @param type of value * @param options instance options * @return SetMultimapCache object */ RSetMultimapCacheNative getSetMultimapCacheNative(PlainOptions options); /** * Returns semaphore instance by name * * @param name name of object * @return Semaphore object */ RSemaphore getSemaphore(String name); /** * Returns semaphore instance with specified options. * * @param options instance options * @return Semaphore object */ RSemaphore getSemaphore(CommonOptions options); /** * Returns semaphore instance by name. * Supports lease time parameter for each acquired permit. * * @param name name of object * @return PermitExpirableSemaphore object */ RPermitExpirableSemaphore getPermitExpirableSemaphore(String name); /** * Returns semaphore instance with specified options. * Supports lease time parameter for each acquired permit. * * @param options instance options * @return PermitExpirableSemaphore object */ RPermitExpirableSemaphore getPermitExpirableSemaphore(CommonOptions options); /** * Returns Lock instance by name. *

* Implements a non-fair locking so doesn't guarantees an acquire order by threads. *

* To increase reliability during failover, all operations wait for propagation to all Redis slaves. * * @param name name of object * @return Lock object */ RLock getLock(String name); /** * Returns Lock instance with specified options. *

* Implements a non-fair locking so doesn't guarantees an acquire order by threads. *

* To increase reliability during failover, all operations wait for propagation to all Redis slaves. * * @param options instance options * @return Lock object */ RLock getLock(CommonOptions options); /** * Returns Spin lock instance by name. *

* Implements a non-fair locking so doesn't guarantees an acquire order by threads. *

* Lock doesn't use a pub/sub mechanism * * @param name name of object * @return Lock object */ RLock getSpinLock(String name); /** * Returns Spin lock instance by name with specified back off options. *

* Implements a non-fair locking so doesn't guarantees an acquire order by threads. *

* Lock doesn't use a pub/sub mechanism * * @param name name of object * @return Lock object */ RLock getSpinLock(String name, LockOptions.BackOff backOff); /** * Returns Fenced Lock instance by name. *

* Implements a non-fair locking so doesn't guarantee an acquire order by threads. * * @param name name of object * @return Lock object */ RFencedLock getFencedLock(String name); /** * Returns Fenced Lock instance with specified options.. *

* Implements a non-fair locking so doesn't guarantee an acquire order by threads. * * @param options instance options * @return Lock object */ RFencedLock getFencedLock(CommonOptions options); /** * Returns MultiLock instance associated with specified locks * * @param locks collection of locks * @return MultiLock object */ RLock getMultiLock(RLock... locks); /** * Returns RedissonFasterMultiLock instance associated with specified group and values * * @param group the group of values * @param values lock values * @return BatchLock object */ RLock getMultiLock(String group, Collection values); /* * Use getLock() or getFencedLock() method instead. */ @Deprecated RLock getRedLock(RLock... locks); /** * Returns Lock instance by name. *

* Implements a fair locking so it guarantees an acquire order by threads. *

* To increase reliability during failover, all operations wait for propagation to all Redis slaves. * * @param name name of object * @return Lock object */ RLock getFairLock(String name); /** * Returns Lock instance with specified options. *

* Implements a fair locking so it guarantees an acquire order by threads. *

* To increase reliability during failover, all operations wait for propagation to all Redis slaves. * * @param options instance options * @return Lock object */ RLock getFairLock(CommonOptions options); /** * Returns ReadWriteLock instance by name. *

* To increase reliability during failover, all operations wait for propagation to all Redis slaves. * * @param name name of object * @return Lock object */ RReadWriteLock getReadWriteLock(String name); /** * Returns ReadWriteLock instance with specified options. *

* To increase reliability during failover, all operations wait for propagation to all Redis slaves. * * @param options instance options * @return Lock object */ RReadWriteLock getReadWriteLock(CommonOptions options); /** * Returns set instance by name. * * @param type of value * @param name name of object * @return Set object */ RSet getSet(String name); /** * Returns set instance by name * using provided codec for set objects. * * @param type of value * @param name name of object * @param codec codec for values * @return Set object */ RSet getSet(String name, Codec codec); /** * Returns set instance with specified options. * * @param type of value * @param options instance options * @return Set object */ RSet getSet(PlainOptions options); /** * Returns sorted set instance by name. * This sorted set uses comparator to sort objects. * * @param type of value * @param name name of object * @return SortedSet object */ RSortedSet getSortedSet(String name); /** * Returns sorted set instance by name * using provided codec for sorted set objects. * This sorted set sorts objects using comparator. * * @param type of value * @param name name of object * @param codec codec for values * @return SortedSet object */ RSortedSet getSortedSet(String name, Codec codec); /** * Returns sorted set instance with specified options. * This sorted set uses comparator to sort objects. * * @param type of value * @param options instance options * @return SortedSet object */ RSortedSet getSortedSet(PlainOptions options); /** * Returns Redis Sorted Set instance by name. * This sorted set sorts objects by object score. * * @param type of value * @param name name of object * @return ScoredSortedSet object */ RScoredSortedSet getScoredSortedSet(String name); /** * Returns Redis Sorted Set instance by name * using provided codec for sorted set objects. * This sorted set sorts objects by object score. * * @param type of value * @param name name of object * @param codec codec for values * @return ScoredSortedSet object */ RScoredSortedSet getScoredSortedSet(String name, Codec codec); /** * Returns Redis Sorted Set instance with specified options. * This sorted set sorts objects by object score. * * @param type of value * @param options instance options * @return ScoredSortedSet object */ RScoredSortedSet getScoredSortedSet(PlainOptions options); /** * Returns String based Redis Sorted Set instance by name. * All elements are inserted with the same score during addition, * in order to force lexicographical ordering * * @param name name of object * @return LexSortedSet object */ RLexSortedSet getLexSortedSet(String name); /** * Returns String based Redis Sorted Set instance with specified options. * All elements are inserted with the same score during addition, * in order to force lexicographical ordering * * @param options instance options * @return LexSortedSet object */ RLexSortedSet getLexSortedSet(CommonOptions options); /** * Returns Sharded Topic instance by name. *

* Messages are delivered to message listeners connected to the same Topic. *

* * @param name name of object * @return Topic object */ RShardedTopic getShardedTopic(String name); /** * Returns Sharded Topic instance by name using provided codec for messages. *

* Messages are delivered to message listeners connected to the same Topic. *

* * @param name name of object * @param codec codec for message * @return Topic object */ RShardedTopic getShardedTopic(String name, Codec codec); /** * Returns Sharded Topic instance with specified options. *

* Messages are delivered to message listeners connected to the same Topic. *

* * @param options instance options * @return Topic object */ RShardedTopic getShardedTopic(PlainOptions options); /** * Returns topic instance by name. *

* Messages are delivered to message listeners connected to the same Topic. *

* * @param name name of object * @return Topic object */ RTopic getTopic(String name); /** * Returns topic instance by name * using provided codec for messages. *

* Messages are delivered to message listeners connected to the same Topic. *

* * @param name name of object * @param codec codec for message * @return Topic object */ RTopic getTopic(String name, Codec codec); /** * Returns topic instance with specified options. *

* Messages are delivered to message listeners connected to the same Topic. *

* * @param options instance options * @return Topic object */ RTopic getTopic(PlainOptions options); /** * Returns reliable topic instance by name. *

* Dedicated Redis connection is allocated per instance (subscriber) of this object. * Messages are delivered to all listeners attached to the same Redis setup. *

* Requires Redis 5.0.0 and higher. * * @param name name of object * @return ReliableTopic object */ RReliableTopic getReliableTopic(String name); /** * Returns reliable topic instance by name * using provided codec for messages. *

* Dedicated Redis connection is allocated per instance (subscriber) of this object. * Messages are delivered to all listeners attached to the same Redis setup. *

* Requires Redis 5.0.0 and higher. * * @param name name of object * @param codec codec for message * @return ReliableTopic object */ RReliableTopic getReliableTopic(String name, Codec codec); /** * Returns reliable topic instance with specified options. *

* Dedicated Redis connection is allocated per instance (subscriber) of this object. * Messages are delivered to all listeners attached to the same Redis setup. *

* Requires Redis 5.0.0 and higher. * * @param options instance options * @return ReliableTopic object */ RReliableTopic getReliableTopic(PlainOptions options); /** * Returns topic instance satisfies by pattern name. * * Supported glob-style patterns: * h?llo subscribes to hello, hallo and hxllo * h*llo subscribes to hllo and heeeello * h[ae]llo subscribes to hello and hallo, but not hillo * * @param pattern of the topic * @return PatterTopic object */ RPatternTopic getPatternTopic(String pattern); /** * Returns topic instance satisfies by pattern name * using provided codec for messages. * * Supported glob-style patterns: * h?llo subscribes to hello, hallo and hxllo * h*llo subscribes to hllo and heeeello * h[ae]llo subscribes to hello and hallo, but not hillo * * @param pattern of the topic * @param codec codec for message * @return PatterTopic object */ RPatternTopic getPatternTopic(String pattern, Codec codec); /** * Returns topic instance satisfies pattern name and specified options.. * * Supported glob-style patterns: * h?llo subscribes to hello, hallo and hxllo * h*llo subscribes to hllo and heeeello * h[ae]llo subscribes to hello and hallo, but not hillo * * @param options instance options * @return PatterTopic object */ RPatternTopic getPatternTopic(PatternTopicOptions options); /** * Returns unbounded queue instance by name. * * @param type of value * @param name of object * @return queue object */ RQueue getQueue(String name); /** * Returns transfer queue instance by name. * * @param type of values * @param name name of object * @return TransferQueue object */ RTransferQueue getTransferQueue(String name); /** * Returns transfer queue instance by name * using provided codec for queue objects. * * @param type of values * @param name name of object * @param codec code for values * @return TransferQueue object */ RTransferQueue getTransferQueue(String name, Codec codec); /** * Returns transfer queue instance with specified options. * * @param type of values * @param options instance options * @return TransferQueue object */ RTransferQueue getTransferQueue(PlainOptions options); /** * Returns unbounded delayed queue instance by name. *

* Could be attached to destination queue only. * All elements are inserted with transfer delay to destination queue. * * @param type of value * @param destinationQueue destination queue * @return Delayed queue object */ RDelayedQueue getDelayedQueue(RQueue destinationQueue); /** * Returns unbounded queue instance by name * using provided codec for queue objects. * * @param type of value * @param name name of object * @param codec codec for message * @return Queue object */ RQueue getQueue(String name, Codec codec); /** * Returns unbounded queue instance with specified options. * * @param type of value * @param options instance options * @return queue object */ RQueue getQueue(PlainOptions options); /** * Returns RingBuffer based queue. * * @param value type * @param name name of object * @return RingBuffer object */ RRingBuffer getRingBuffer(String name); /** * Returns RingBuffer based queue. * * @param value type * @param name name of object * @param codec codec for values * @return RingBuffer object */ RRingBuffer getRingBuffer(String name, Codec codec); /** * Returns RingBuffer based queue instance with specified options. * * @param value type * @param options instance options * @return RingBuffer object */ RRingBuffer getRingBuffer(PlainOptions options); /** * Returns priority unbounded queue instance by name. * It uses comparator to sort objects. * * @param type of value * @param name of object * @return Queue object */ RPriorityQueue getPriorityQueue(String name); /** * Returns priority unbounded queue instance by name * using provided codec for queue objects. * It uses comparator to sort objects. * * @param type of value * @param name name of object * @param codec codec for message * @return Queue object */ RPriorityQueue getPriorityQueue(String name, Codec codec); RPriorityQueue getPriorityQueue(PlainOptions options); /** * Returns unbounded priority blocking queue instance by name. * It uses comparator to sort objects. * * @param type of value * @param name of object * @return Queue object */ RPriorityBlockingQueue getPriorityBlockingQueue(String name); /** * Returns unbounded priority blocking queue instance by name * using provided codec for queue objects. * It uses comparator to sort objects. * * @param type of value * @param name name of object * @param codec codec for message * @return Queue object */ RPriorityBlockingQueue getPriorityBlockingQueue(String name, Codec codec); /** * Returns unbounded priority blocking queue instance with specified options. * It uses comparator to sort objects. * * @param type of value * @param options instance options * @return Queue object */ RPriorityBlockingQueue getPriorityBlockingQueue(PlainOptions options); /** * Returns unbounded priority blocking deque instance by name. * It uses comparator to sort objects. * * @param type of value * @param name of object * @return Queue object */ RPriorityBlockingDeque getPriorityBlockingDeque(String name); /** * Returns unbounded priority blocking deque instance by name * using provided codec for queue objects. * It uses comparator to sort objects. * * @param type of value * @param name name of object * @param codec codec for message * @return Queue object */ RPriorityBlockingDeque getPriorityBlockingDeque(String name, Codec codec); /** * Returns unbounded priority blocking deque instance with specified options. * It uses comparator to sort objects. * * @param type of value * @param options instance options * @return Queue object */ RPriorityBlockingDeque getPriorityBlockingDeque(PlainOptions options); /** * Returns priority unbounded deque instance by name. * It uses comparator to sort objects. * * @param type of value * @param name of object * @return Queue object */ RPriorityDeque getPriorityDeque(String name); /** * Returns priority unbounded deque instance by name * using provided codec for queue objects. * It uses comparator to sort objects. * * @param type of value * @param name name of object * @param codec codec for message * @return Queue object */ RPriorityDeque getPriorityDeque(String name, Codec codec); /** * Returns priority unbounded deque instance with specified options. * It uses comparator to sort objects. * * @param type of value * @param options instance options * @return Queue object */ RPriorityDeque getPriorityDeque(PlainOptions options); /** * Returns unbounded blocking queue instance by name. * * @param type of value * @param name name of object * @return BlockingQueue object */ RBlockingQueue getBlockingQueue(String name); /** * Returns unbounded blocking queue instance by name * using provided codec for queue objects. * * @param type of value * @param name name of queue * @param codec queue objects codec * @return BlockingQueue object */ RBlockingQueue getBlockingQueue(String name, Codec codec); /** * Returns unbounded blocking queue instance with specified options. * * @param type of value * @param options instance options * @return BlockingQueue object */ RBlockingQueue getBlockingQueue(PlainOptions options); /** * Returns bounded blocking queue instance by name. * * @param type of value * @param name of queue * @return BoundedBlockingQueue object */ RBoundedBlockingQueue getBoundedBlockingQueue(String name); /** * Returns bounded blocking queue instance by name * using provided codec for queue objects. * * @param type of value * @param name name of queue * @param codec codec for values * @return BoundedBlockingQueue object */ RBoundedBlockingQueue getBoundedBlockingQueue(String name, Codec codec); /** * Returns bounded blocking queue instance with specified options. * * @param type of value * @param options instance options * @return BoundedBlockingQueue object */ RBoundedBlockingQueue getBoundedBlockingQueue(PlainOptions options); /** * Returns unbounded deque instance by name. * * @param type of value * @param name name of object * @return Deque object */ RDeque getDeque(String name); /** * Returns unbounded deque instance by name * using provided codec for deque objects. * * @param type of value * @param name name of object * @param codec codec for values * @return Deque object */ RDeque getDeque(String name, Codec codec); /** * Returns unbounded deque instance with specified options. * * @param type of value * @param options instance options * @return Deque object */ RDeque getDeque(PlainOptions options); /** * Returns unbounded blocking deque instance by name. * * @param type of value * @param name name of object * @return BlockingDeque object */ RBlockingDeque getBlockingDeque(String name); /** * Returns unbounded blocking deque instance by name * using provided codec for deque objects. * * @param type of value * @param name name of object * @param codec deque objects codec * @return BlockingDeque object */ RBlockingDeque getBlockingDeque(String name, Codec codec); /** * Returns unbounded blocking deque instance with specified options. * * @param type of value * @param options instance options * @return BlockingDeque object */ RBlockingDeque getBlockingDeque(PlainOptions options); /** * Returns atomicLong instance by name. * * @param name name of object * @return AtomicLong object */ RAtomicLong getAtomicLong(String name); /** * Returns atomicLong instance with specified options. * * @param options instance options * @return AtomicLong object */ RAtomicLong getAtomicLong(CommonOptions options); /** * Returns atomicDouble instance by name. * * @param name name of object * @return AtomicDouble object */ RAtomicDouble getAtomicDouble(String name); /** * Returns atomicDouble instance with specified options. * * @param options instance options * @return AtomicDouble object */ RAtomicDouble getAtomicDouble(CommonOptions options); /** * Returns LongAdder instances by name. * * @param name name of object * @return LongAdder object */ RLongAdder getLongAdder(String name); /** * Returns LongAdder instances with specified options. * * @param options instance options * @return LongAdder object */ RLongAdder getLongAdder(CommonOptions options); /** * Returns DoubleAdder instances by name. * * @param name name of object * @return LongAdder object */ RDoubleAdder getDoubleAdder(String name); /** * Returns DoubleAdder instances with specified options. * * @param options instance options * @return LongAdder object */ RDoubleAdder getDoubleAdder(CommonOptions options); /** * Returns countDownLatch instance by name. * * @param name name of object * @return CountDownLatch object */ RCountDownLatch getCountDownLatch(String name); /** * Returns countDownLatch instance with specified options. * * @param options instance options * @return CountDownLatch object */ RCountDownLatch getCountDownLatch(CommonOptions options); /** * Returns bitSet instance by name. * * @param name name of object * @return BitSet object */ RBitSet getBitSet(String name); /** * Returns bitSet instance with specified options. * * @param options instance options * @return BitSet object */ RBitSet getBitSet(CommonOptions options); /** * Returns bloom filter instance by name. * * @param type of value * @param name name of object * @return BloomFilter object */ RBloomFilter getBloomFilter(String name); /** * Returns bloom filter instance by name * using provided codec for objects. * * @param type of value * @param name name of object * @param codec codec for values * @return BloomFilter object */ RBloomFilter getBloomFilter(String name, Codec codec); /** * Returns bloom filter instance with specified options. * * @param type of value * @param options instance options * @return BloomFilter object */ RBloomFilter getBloomFilter(PlainOptions options); /** * Returns id generator instance by name. * * @param name name of object * @return IdGenerator object */ RIdGenerator getIdGenerator(String name); /** * Returns id generator instance with specified options. * * @param options instance options * @return IdGenerator object */ RIdGenerator getIdGenerator(CommonOptions options); /** * Returns API for Redis Function feature * * @return function object */ RFunction getFunction(); /** * Returns API for Redis Function feature using provided codec * * @param codec codec for params and result * @return function interface */ RFunction getFunction(Codec codec); /** * Returns interface for Redis Function feature with specified options. * * @param options instance options * @return function object */ RFunction getFunction(OptionalOptions options); /** * Returns script operations object * * @return Script object */ RScript getScript(); /** * Returns script operations object using provided codec. * * @param codec codec for params and result * @return Script object */ RScript getScript(Codec codec); /** * Returns script operations object with specified options. * * @param options instance options * @return Script object */ RScript getScript(OptionalOptions options); /** * Returns ScheduledExecutorService by name * * @param name name of object * @return ScheduledExecutorService object */ RScheduledExecutorService getExecutorService(String name); /** * Use {@link #getExecutorService(org.redisson.api.options.ExecutorOptions)} instead * * @param name name of object * @param options options for executor * @return ScheduledExecutorService object */ @Deprecated RScheduledExecutorService getExecutorService(String name, ExecutorOptions options); /** * Returns ScheduledExecutorService by name * using provided codec for task, response and request serialization * * @param name name of object * @param codec codec for task, response and request * @return ScheduledExecutorService object * @since 2.8.2 */ RScheduledExecutorService getExecutorService(String name, Codec codec); /** * Use {@link #getExecutorService(org.redisson.api.options.ExecutorOptions)} instead * * @param name name of object * @param codec codec for task, response and request * @param options options for executor * @return ScheduledExecutorService object */ @Deprecated RScheduledExecutorService getExecutorService(String name, Codec codec, ExecutorOptions options); /** * Returns ScheduledExecutorService with defined options *

* Usage examples: *

     * RScheduledExecutorService service = redisson.getExecutorService(
     *                                                  ExecutorOptions.name("test")
     *                                                  .taskRetryInterval(Duration.ofSeconds(60)));
     * 
* * @param options options instance * @return ScheduledExecutorService object */ RScheduledExecutorService getExecutorService(org.redisson.api.options.ExecutorOptions options); /** * Returns object for remote operations prefixed with the default name (redisson_remote_service) * * @return RemoteService object */ @Deprecated RRemoteService getRemoteService(); /** * Returns object for remote operations prefixed with the default name (redisson_remote_service) * and uses provided codec for method arguments and result. * * @param codec codec for response and request * @return RemoteService object */ @Deprecated RRemoteService getRemoteService(Codec codec); /** * Returns object for remote operations prefixed with the specified name * * @param name the name used as the Redis key prefix for the services * @return RemoteService object */ RRemoteService getRemoteService(String name); /** * Returns object for remote operations prefixed with the specified name * and uses provided codec for method arguments and result. * * @param name the name used as the Redis key prefix for the services * @param codec codec for response and request * @return RemoteService object */ RRemoteService getRemoteService(String name, Codec codec); /** * Returns object for remote operations prefixed with specified options. * * @param options instance options * @return RemoteService object */ RRemoteService getRemoteService(PlainOptions options); /** * Creates transaction with READ_COMMITTED isolation level. * * @param options transaction configuration * @return Transaction object */ RTransaction createTransaction(TransactionOptions options); /** * Creates batch object which could be executed later * with collected group of commands in pipeline mode. *

* See http://redis.io/topics/pipelining * * @param options batch configuration * @return Batch object */ RBatch createBatch(BatchOptions options); /** * Creates batch object which could be executed later * with collected group of commands in pipeline mode. *

* See http://redis.io/topics/pipelining * * @return Batch object */ RBatch createBatch(); /** * Returns interface with methods for Redis keys. * Each of Redis/Redisson object associated with own key * * @return Keys object */ RKeys getKeys(); /** * Returns interface for operations over Redis keys with specified options. * Each of Redis/Redisson object is associated with own key. * * @return Keys object */ RKeys getKeys(KeysOptions options); /** * Returns Live Object Service which is used to store Java objects * * @return LiveObjectService object */ RLiveObjectService getLiveObjectService(); /** * Returns Live Object Service which is used to store Java objects * with specified options. * * @return LiveObjectService object */ RLiveObjectService getLiveObjectService(LiveObjectOptions options); /** * Returns client side caching facade interface with the specified options. *

* Requires Redis 5.0.0 and higher. *

* * NOTE: client side caching feature invalidates whole Map per entry change which is ineffective. * Use local cached Map, JSON Store instead. * * * @param options client cache options * @return Client side caching instance */ RClientSideCaching getClientSideCaching(ClientSideCachingOptions options); /** * Returns RxJava Redisson instance * * @return redisson instance */ RedissonRxClient rxJava(); /** * Returns Reactive Redisson instance * * @return redisson instance */ RedissonReactiveClient reactive(); /** * Shutdown Redisson instance but NOT Redis server * * This equates to invoke shutdown(0, 2, TimeUnit.SECONDS); */ void shutdown(); /** * Shuts down Redisson instance but NOT Redis server * * Shutdown ensures that no tasks are submitted for 'the quiet period' * (usually a couple seconds) before it shuts itself down. If a task is submitted during the quiet period, * it is guaranteed to be accepted and the quiet period will start over. * * @param quietPeriod the quiet period as described in the documentation * @param timeout the maximum amount of time to wait until the executor is {@linkplain #shutdown()} * regardless if a task was submitted during the quiet period * @param unit the unit of {@code quietPeriod} and {@code timeout} */ void shutdown(long quietPeriod, long timeout, TimeUnit unit); /** * Allows to get configuration provided * during Redisson instance creation. Further changes on * this object not affect Redisson instance. * * @return Config object */ Config getConfig(); /** * Returns API to manage Redis nodes * * @see RedisNodes#CLUSTER * @see RedisNodes#MASTER_SLAVE * @see RedisNodes#SENTINEL_MASTER_SLAVE * @see RedisNodes#SINGLE * * @param nodes Redis nodes API class * @param type of Redis nodes API * @return Redis nodes API object */ T getRedisNodes(RedisNodes nodes); /* * Use getRedisNodes() method instead */ @Deprecated NodesGroup getNodesGroup(); /* * Use getRedisNodes() method instead */ @Deprecated ClusterNodesGroup getClusterNodesGroup(); /** * Returns {@code true} if this Redisson instance has been shut down. * * @return {@code true} if this Redisson instance has been shut down overwise false */ boolean isShutdown(); /** * Returns {@code true} if this Redisson instance was started to be shutdown * or was shutdown {@link #isShutdown()} already. * * @return {@code true} if this Redisson instance was started to be shutdown * or was shutdown {@link #isShutdown()} already. */ boolean isShuttingDown(); /** * Returns id of this Redisson instance * * @return id */ String getId(); }