Package org.redisson
Class RedissonSetCache<V>
- java.lang.Object
-
- org.redisson.RedissonObject
-
- org.redisson.RedissonSetCache<V>
-
- Type Parameters:
V- value
- All Implemented Interfaces:
Iterable<V>,Collection<V>,Set<V>,RCollectionAsync<V>,RDestroyable,RExpirable,RExpirableAsync,RObject,RObjectAsync,RSetCache<V>,RSetCacheAsync<V>,ScanIterator
- Direct Known Subclasses:
RedissonTransactionalSetCache
public class RedissonSetCache<V> extends RedissonObject implements RSetCache<V>, ScanIterator
Set-based cache with ability to set TTL for each entry via
RSetCache.add(Object, long, TimeUnit)method.Current Redis implementation doesn't have set entry eviction functionality. Thus values are checked for TTL expiration during any value read operation. If entry expired then it doesn't returns and clean task runs asynchronous. Clean task deletes removes 100 expired entries at once. In addition there is
EvictionScheduler. This scheduler deletes expired entries in time interval between 5 seconds to 2 hours.If eviction is not required then it's better to use
RSet.- Author:
- Nikita Koksharov
-
-
Field Summary
-
Fields inherited from class org.redisson.RedissonObject
codec, commandExecutor, name
-
-
Constructor Summary
Constructors Constructor Description RedissonSetCache(Codec codec, EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name, RedissonClient redisson)RedissonSetCache(EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name, RedissonClient redisson)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(V e)booleanadd(V value, long ttl, TimeUnit unit)Stores value with specified time to live.booleanaddAll(Collection<? extends V> c)RFuture<Boolean>addAllAsync(Collection<? extends V> c)Adds all elements contained in the specified collectionRFuture<Boolean>addAsync(V value)Adds element into this collection.RFuture<Boolean>addAsync(V value, long ttl, TimeUnit unit)Stores value with specified time to live.voidclear()booleanclearExpire()Clear an expire timeout or expire date for object.RFuture<Boolean>clearExpireAsync()Clear an expire timeout or expire date for object in async mode.protected RFuture<Boolean>clearExpireAsync(String... keys)booleancontains(Object o)booleancontainsAll(Collection<?> c)RFuture<Boolean>containsAllAsync(Collection<?> c)Returnstrueif this collection contains all of the elements in the specified collection.RFuture<Boolean>containsAsync(Object o)Returnstrueif this collection contains encoded state of the specified element.voiddestroy()Destroys object when it's not necessary anymore.booleanexpire(long timeToLive, TimeUnit timeUnit)Set a timeout for object.booleanexpire(Instant instant)Set an expire date for object.RFuture<Boolean>expireAsync(long timeToLive, TimeUnit timeUnit)Set a timeout for object in async mode.protected RFuture<Boolean>expireAsync(long timeToLive, TimeUnit timeUnit, String... keys)RFuture<Boolean>expireAsync(Instant instant)Set an expire date for object.booleanexpireAt(long timestamp)UseRExpirable.expire(Instant)insteadbooleanexpireAt(Date timestamp)UseRExpirable.expire(Instant)insteadRFuture<Boolean>expireAtAsync(long timestamp)UseRExpirableAsync.expireAsync(Instant)insteadprotected RFuture<Boolean>expireAtAsync(long timestamp, String... keys)RFuture<Boolean>expireAtAsync(Date timestamp)UseRExpirableAsync.expireAsync(Instant)insteadRCountDownLatchgetCountDownLatch(V value)ReturnsRCountDownLatchinstance associated withvalueRLockgetFairLock(V value)ReturnsRLockinstance associated withvalueRLockgetLock(V value)Returns lock instance associated withvalueRPermitExpirableSemaphoregetPermitExpirableSemaphore(V value)ReturnsRPermitExpirableSemaphoreinstance associated withvalueRReadWriteLockgetReadWriteLock(V value)ReturnsRReadWriteLockinstance associated withvalueRSemaphoregetSemaphore(V value)ReturnsRSemaphoreinstance associated withvaluebooleanisEmpty()Iterator<V>iterator()Iterator<V>iterator(int count)Returns an iterator over elements in this set.Iterator<V>iterator(String pattern)Returns values iterator matchespattern.Iterator<V>iterator(String pattern, int count)Returns an iterator over elements in this set.<KOut,VOut>
RCollectionMapReduce<V,KOut,VOut>mapReduce()ReturnsRMapReduceobject associated with this mapSet<V>readAll()Read all elements at onceRFuture<Set<V>>readAllAsync()Read all elements at oncelongremainTimeToLive()Remaining time to live of Redisson object that has a timeoutRFuture<Long>remainTimeToLiveAsync()Remaining time to live of Redisson object that has a timeoutbooleanremove(Object value)booleanremoveAll(Collection<?> c)RFuture<Boolean>removeAllAsync(Collection<?> c)Removes all of this collection's elements that are also contained in the specified collection.RFuture<Boolean>removeAsync(Object o)Removes a single instance of the specified element from this collection, if it is present.booleanretainAll(Collection<?> c)RFuture<Boolean>retainAllAsync(Collection<?> c)Retains only the elements in this collection that are contained in the specified collection.ScanResult<Object>scanIterator(String name, RedisClient client, long startPos, String pattern, int count)RFuture<ScanResult<Object>>scanIteratorAsync(String name, RedisClient client, long startPos, String pattern, int count)intsize()Returns the number of elements in cache.RFuture<Integer>sizeAsync()Returns the number of elements in cache.Stream<V>stream(int count)Returns stream of elements in this set.Stream<V>stream(String pattern)Returns stream of elements in this set matchespattern.Stream<V>stream(String pattern, int count)Returns stream of elements in this set.Object[]toArray()<T> T[]toArray(T[] a)booleantryAdd(long ttl, TimeUnit unit, V... values)Tries to add elements only if none of them in set.booleantryAdd(V... values)Tries to add elements only if none of them in set.RFuture<Boolean>tryAddAsync(long ttl, TimeUnit unit, V... values)Tries to add elements only if none of them in set.RFuture<Boolean>tryAddAsync(V... values)Tries to add elements only if none of them in set.-
Methods inherited from class org.redisson.RedissonObject
addListener, addListener, addListenerAsync, addListenerAsync, copy, copyAsync, delete, deleteAsync, deleteAsync, dump, dumpAsync, encode, encode, encode, encode, encodeMapKey, encodeMapKeys, encodeMapValue, encodeMapValues, get, getCodec, getIdleTime, getIdleTimeAsync, getLockByMapKey, getLockByValue, getName, getRawName, getRawName, isExists, isExistsAsync, migrate, migrateAsync, move, moveAsync, prefixName, removeListener, removeListenerAsync, removeListenersAsync, rename, renameAsync, renamenx, renamenxAsync, restore, restore, restoreAndReplace, restoreAndReplace, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, setName, sizeInMemory, sizeInMemoryAsync, sizeInMemoryAsync, sizeInMemoryAsync, suffixName, toSeconds, toStream, touch, touchAsync, unlink, unlinkAsync
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface org.redisson.api.RExpirable
clearExpire, expire, expire, expireAt, expireAt, remainTimeToLive
-
Methods inherited from interface org.redisson.api.RExpirableAsync
clearExpireAsync, expireAsync, expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsync
-
Methods inherited from interface org.redisson.api.RObject
addListener, copy, delete, dump, getCodec, getIdleTime, getName, isExists, migrate, move, removeListener, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlink
-
Methods inherited from interface org.redisson.api.RObjectAsync
addListenerAsync, copyAsync, deleteAsync, dumpAsync, getIdleTimeAsync, isExistsAsync, migrateAsync, moveAsync, removeListenerAsync, renameAsync, renamenxAsync, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, sizeInMemoryAsync, touchAsync, unlinkAsync
-
Methods inherited from interface java.util.Set
equals, hashCode, spliterator
-
-
-
-
Constructor Detail
-
RedissonSetCache
public RedissonSetCache(EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name, RedissonClient redisson)
-
RedissonSetCache
public RedissonSetCache(Codec codec, EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name, RedissonClient redisson)
-
-
Method Detail
-
mapReduce
public <KOut,VOut> RCollectionMapReduce<V,KOut,VOut> mapReduce()
Description copied from interface:RSetCacheReturnsRMapReduceobject associated with this map
-
size
public int size()
Description copied from interface:RSetCacheReturns the number of elements in cache. This number can reflects expired elements too due to non realtime cleanup process.
-
sizeAsync
public RFuture<Integer> sizeAsync()
Description copied from interface:RSetCacheAsyncReturns the number of elements in cache. This number can reflects expired elements too due to non realtime cleanup process.- Specified by:
sizeAsyncin interfaceRCollectionAsync<V>- Specified by:
sizeAsyncin interfaceRSetCacheAsync<V>- Returns:
- size of set
-
isEmpty
public boolean isEmpty()
-
contains
public boolean contains(Object o)
-
containsAsync
public RFuture<Boolean> containsAsync(Object o)
Description copied from interface:RCollectionAsyncReturnstrueif this collection contains encoded state of the specified element.- Specified by:
containsAsyncin interfaceRCollectionAsync<V>- Parameters:
o- element whose presence in this collection is to be tested- Returns:
trueif this collection contains the specified element andfalseotherwise
-
scanIterator
public ScanResult<Object> scanIterator(String name, RedisClient client, long startPos, String pattern, int count)
- Specified by:
scanIteratorin interfaceScanIterator
-
scanIteratorAsync
public RFuture<ScanResult<Object>> scanIteratorAsync(String name, RedisClient client, long startPos, String pattern, int count)
- Specified by:
scanIteratorAsyncin interfaceScanIterator
-
iterator
public Iterator<V> iterator(int count)
Description copied from interface:RSetCacheReturns an iterator over elements in this set. Elements are loaded in batch. Batch size is defined bycountparam.
-
iterator
public Iterator<V> iterator(String pattern)
Description copied from interface:RSetCacheReturns values iterator matchespattern.
-
iterator
public Iterator<V> iterator(String pattern, int count)
Description copied from interface:RSetCacheReturns an iterator over elements in this set. Elements are loaded in batch. Batch size is defined bycountparam. If pattern is not null then only elements match this pattern are loaded.
-
readAll
public Set<V> readAll()
Description copied from interface:RSetCacheRead all elements at once
-
readAllAsync
public RFuture<Set<V>> readAllAsync()
Description copied from interface:RSetCacheAsyncRead all elements at once- Specified by:
readAllAsyncin interfaceRSetCacheAsync<V>- Returns:
- values
-
toArray
public Object[] toArray()
-
toArray
public <T> T[] toArray(T[] a)
-
add
public boolean add(V e)
-
add
public boolean add(V value, long ttl, TimeUnit unit)
Description copied from interface:RSetCacheStores value with specified time to live. Value expires after specified time to live.
-
addAsync
public RFuture<Boolean> addAsync(V value, long ttl, TimeUnit unit)
Description copied from interface:RSetCacheAsyncStores value with specified time to live. Value expires after specified time to live.- Specified by:
addAsyncin interfaceRSetCacheAsync<V>- Parameters:
value- to addttl- - time to live for key\value entry. If0then stores infinitely.unit- - time unit- Returns:
trueif value has been added.falseif value already been in collection.
-
tryAdd
public boolean tryAdd(V... values)
Description copied from interface:RSetCacheTries to add elements only if none of them in set.
-
tryAddAsync
public RFuture<Boolean> tryAddAsync(V... values)
Description copied from interface:RSetCacheAsyncTries to add elements only if none of them in set.- Specified by:
tryAddAsyncin interfaceRSetCacheAsync<V>- Parameters:
values- - values to add- Returns:
trueif elements successfully added, otherwisefalse.
-
tryAdd
public boolean tryAdd(long ttl, TimeUnit unit, V... values)Description copied from interface:RSetCacheTries to add elements only if none of them in set.
-
tryAddAsync
public RFuture<Boolean> tryAddAsync(long ttl, TimeUnit unit, V... values)
Description copied from interface:RSetCacheAsyncTries to add elements only if none of them in set.- Specified by:
tryAddAsyncin interfaceRSetCacheAsync<V>- Parameters:
ttl- - time to live for value. If0then stores infinitely.unit- - time unitvalues- - values to add- Returns:
trueif elements successfully added, otherwisefalse.
-
addAsync
public RFuture<Boolean> addAsync(V value)
Description copied from interface:RCollectionAsyncAdds element into this collection.- Specified by:
addAsyncin interfaceRCollectionAsync<V>- Parameters:
value- - element to add- Returns:
trueif an element was added andfalseif it is already present
-
removeAsync
public RFuture<Boolean> removeAsync(Object o)
Description copied from interface:RCollectionAsyncRemoves a single instance of the specified element from this collection, if it is present.- Specified by:
removeAsyncin interfaceRCollectionAsync<V>- Parameters:
o- element to be removed from this collection, if present- Returns:
trueif an element was removed as a result of this call
-
remove
public boolean remove(Object value)
- Specified by:
removein interfaceCollection<V>- Specified by:
removein interfaceScanIterator- Specified by:
removein interfaceSet<V>
-
containsAll
public boolean containsAll(Collection<?> c)
- Specified by:
containsAllin interfaceCollection<V>- Specified by:
containsAllin interfaceSet<V>
-
containsAllAsync
public RFuture<Boolean> containsAllAsync(Collection<?> c)
Description copied from interface:RCollectionAsyncReturnstrueif this collection contains all of the elements in the specified collection.- Specified by:
containsAllAsyncin interfaceRCollectionAsync<V>- Parameters:
c- collection to be checked for containment in this collection- Returns:
trueif this collection contains all of the elements in the specified collection
-
addAll
public boolean addAll(Collection<? extends V> c)
-
addAllAsync
public RFuture<Boolean> addAllAsync(Collection<? extends V> c)
Description copied from interface:RCollectionAsyncAdds all elements contained in the specified collection- Specified by:
addAllAsyncin interfaceRCollectionAsync<V>- Parameters:
c- - collection of elements to add- Returns:
trueif at least one element was added andfalseif all elements are already present
-
retainAll
public boolean retainAll(Collection<?> c)
-
retainAllAsync
public RFuture<Boolean> retainAllAsync(Collection<?> c)
Description copied from interface:RCollectionAsyncRetains only the elements in this collection that are contained in the specified collection.- Specified by:
retainAllAsyncin interfaceRCollectionAsync<V>- Parameters:
c- collection containing elements to be retained in this collection- Returns:
trueif this collection changed as a result of the call
-
removeAllAsync
public RFuture<Boolean> removeAllAsync(Collection<?> c)
Description copied from interface:RCollectionAsyncRemoves all of this collection's elements that are also contained in the specified collection.- Specified by:
removeAllAsyncin interfaceRCollectionAsync<V>- Parameters:
c- collection containing elements to be removed from this collection- Returns:
trueif this collection changed as a result of the call
-
removeAll
public boolean removeAll(Collection<?> c)
-
clear
public void clear()
-
getPermitExpirableSemaphore
public RPermitExpirableSemaphore getPermitExpirableSemaphore(V value)
Description copied from interface:RSetCacheReturnsRPermitExpirableSemaphoreinstance associated withvalue- Specified by:
getPermitExpirableSemaphorein interfaceRSetCache<V>- Parameters:
value- - set value- Returns:
- RPermitExpirableSemaphore object
-
getSemaphore
public RSemaphore getSemaphore(V value)
Description copied from interface:RSetCacheReturnsRSemaphoreinstance associated withvalue- Specified by:
getSemaphorein interfaceRSetCache<V>- Parameters:
value- - set value- Returns:
- RSemaphore object
-
getCountDownLatch
public RCountDownLatch getCountDownLatch(V value)
Description copied from interface:RSetCacheReturnsRCountDownLatchinstance associated withvalue- Specified by:
getCountDownLatchin interfaceRSetCache<V>- Parameters:
value- - set value- Returns:
- RCountDownLatch object
-
getFairLock
public RLock getFairLock(V value)
Description copied from interface:RSetCacheReturnsRLockinstance associated withvalue- Specified by:
getFairLockin interfaceRSetCache<V>- Parameters:
value- - set value- Returns:
- RLock object
-
getLock
public RLock getLock(V value)
Description copied from interface:RSetCacheReturns lock instance associated withvalue
-
getReadWriteLock
public RReadWriteLock getReadWriteLock(V value)
Description copied from interface:RSetCacheReturnsRReadWriteLockinstance associated withvalue- Specified by:
getReadWriteLockin interfaceRSetCache<V>- Parameters:
value- - set value- Returns:
- RReadWriteLock object
-
destroy
public void destroy()
Description copied from interface:RDestroyableDestroys object when it's not necessary anymore.- Specified by:
destroyin interfaceRDestroyable
-
stream
public Stream<V> stream(int count)
Description copied from interface:RSetCacheReturns stream of elements in this set. Elements are loaded in batch. Batch size is defined bycountparam.
-
stream
public Stream<V> stream(String pattern, int count)
Description copied from interface:RSetCacheReturns stream of elements in this set. Elements are loaded in batch. Batch size is defined bycountparam. If pattern is not null then only elements match this pattern are loaded.
-
stream
public Stream<V> stream(String pattern)
Description copied from interface:RSetCacheReturns stream of elements in this set matchespattern.
-
expire
public boolean expire(long timeToLive, TimeUnit timeUnit)Description copied from interface:RExpirableSet a timeout for object. After the timeout has expired, the key will automatically be deleted.- Specified by:
expirein interfaceRExpirable- Parameters:
timeToLive- - timeout before object will be deletedtimeUnit- - timeout time unit- Returns:
trueif the timeout was set andfalseif not
-
expireAsync
public RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit)
Description copied from interface:RExpirableAsyncSet a timeout for object in async mode. After the timeout has expired, the key will automatically be deleted.- Specified by:
expireAsyncin interfaceRExpirableAsync- Parameters:
timeToLive- - timeout before object will be deletedtimeUnit- - timeout time unit- Returns:
trueif the timeout was set andfalseif not
-
expireAt
public boolean expireAt(long timestamp)
Description copied from interface:RExpirableUseRExpirable.expire(Instant)instead- Specified by:
expireAtin interfaceRExpirable- Parameters:
timestamp- - expire date in milliseconds (Unix timestamp)- Returns:
trueif the timeout was set andfalseif not
-
expireAtAsync
public RFuture<Boolean> expireAtAsync(long timestamp)
Description copied from interface:RExpirableAsyncUseRExpirableAsync.expireAsync(Instant)instead- Specified by:
expireAtAsyncin interfaceRExpirableAsync- Parameters:
timestamp- - expire date in milliseconds (Unix timestamp)- Returns:
trueif the timeout was set andfalseif not
-
expire
public boolean expire(Instant instant)
Description copied from interface:RExpirableSet an expire date for object. When expire date comes the key will automatically be deleted.- Specified by:
expirein interfaceRExpirable- Parameters:
instant- - expire date- Returns:
trueif the timeout was set andfalseif not
-
expireAsync
public RFuture<Boolean> expireAsync(Instant instant)
Description copied from interface:RExpirableAsyncSet an expire date for object. When expire date comes the key will automatically be deleted.- Specified by:
expireAsyncin interfaceRExpirableAsync- Parameters:
instant- - expire date- Returns:
trueif the timeout was set andfalseif not
-
expireAt
public boolean expireAt(Date timestamp)
Description copied from interface:RExpirableUseRExpirable.expire(Instant)instead- Specified by:
expireAtin interfaceRExpirable- Parameters:
timestamp- - expire date- Returns:
trueif the timeout was set andfalseif not
-
expireAtAsync
public RFuture<Boolean> expireAtAsync(Date timestamp)
Description copied from interface:RExpirableAsyncUseRExpirableAsync.expireAsync(Instant)instead- Specified by:
expireAtAsyncin interfaceRExpirableAsync- Parameters:
timestamp- - expire date- Returns:
trueif the timeout was set andfalseif not
-
clearExpire
public boolean clearExpire()
Description copied from interface:RExpirableClear an expire timeout or expire date for object.- Specified by:
clearExpirein interfaceRExpirable- Returns:
trueif timeout was removedfalseif object does not exist or does not have an associated timeout
-
clearExpireAsync
public RFuture<Boolean> clearExpireAsync()
Description copied from interface:RExpirableAsyncClear an expire timeout or expire date for object in async mode. Object will not be deleted.- Specified by:
clearExpireAsyncin interfaceRExpirableAsync- Returns:
trueif the timeout was cleared andfalseif not
-
remainTimeToLive
public long remainTimeToLive()
Description copied from interface:RExpirableRemaining time to live of Redisson object that has a timeout- Specified by:
remainTimeToLivein interfaceRExpirable- Returns:
- time in milliseconds -2 if the key does not exist. -1 if the key exists but has no associated expire.
-
remainTimeToLiveAsync
public RFuture<Long> remainTimeToLiveAsync()
Description copied from interface:RExpirableAsyncRemaining time to live of Redisson object that has a timeout- Specified by:
remainTimeToLiveAsyncin interfaceRExpirableAsync- Returns:
- time in milliseconds -2 if the key does not exist. -1 if the key exists but has no associated expire.
-
expireAsync
protected RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit, String... keys)
-
-