Class RedissonMultimap<K,V>
- java.lang.Object
-
- org.redisson.RedissonObject
-
- org.redisson.RedissonMultimap<K,V>
-
- Type Parameters:
K- keyV- value
- All Implemented Interfaces:
RExpirable,RExpirableAsync,RMultimap<K,V>,RMultimapAsync<K,V>,RObject,RObjectAsync
- Direct Known Subclasses:
RedissonListMultimap,RedissonSetMultimap
public abstract class RedissonMultimap<K,V> extends RedissonObject implements RMultimap<K,V>
- Author:
- Nikita Koksharov
-
-
Field Summary
-
Fields inherited from class org.redisson.RedissonObject
codec, commandExecutor, name
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Removes all key-value pairs from the multimap, leaving it empty.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)booleancontainsEntry(Object key, Object value)Returnstrueif this multimap contains at least one key-value pair with the keykeyand the valuevalue.booleancontainsKey(Object key)Returnstrueif this multimap contains at least one key-value pair with the keykey.booleancontainsValue(Object value)Returnstrueif this multimap contains at least one key-value pair with the valuevalue.RFuture<Boolean>deleteAsync()Delete object in async modeCollection<Map.Entry<K,V>>entries()Returns a view collection of all key-value pairs contained in this multimap, asMap.Entryinstances.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)insteadlongfastRemove(K... keys)Removeskeysfrom map by one operation Works faster thanRMultimap.removebut not returning the value associated withkeyprotected <T> RFuture<T>fastRemoveAsync(List<Object> mapKeys, List<Object> listKeys, RedisCommand<T> evalCommandType)RFuture<Long>fastRemoveAsync(K... keys)Removeskeysfrom map by one operation Works faster thanRMultimap.removebut not returning the value associated withkeyCollection<V>getAll(K key)Returns all elements at once.RCountDownLatchgetCountDownLatch(K key)ReturnsRCountDownLatchinstance associated with keyRLockgetFairLock(K key)ReturnsRLockinstance associated with keyRLockgetLock(K key)ReturnsRLockinstance associated with keyRPermitExpirableSemaphoregetPermitExpirableSemaphore(K key)ReturnsRPermitExpirableSemaphoreinstance associated with keyRReadWriteLockgetReadWriteLock(K key)ReturnsRReadWriteLockinstance associated with keyRSemaphoregetSemaphore(K key)ReturnsRSemaphoreinstance associated with keyprotected Stringhash(io.netty.buffer.ByteBuf objectState)booleanisEmpty()Check is map emptyprotected StringkeyHash(Object key)Set<K>keySet()Returns a view collection of all distinct keys contained in this multimap.intkeySize()Returns the count of distinct keys in this multimap.RFuture<Integer>keySizeAsync()Returns the number of key-value pairs in this multimap.booleanput(K key, V value)Stores a key-value pair in this multimap.booleanputAll(K key, Iterable<? extends V> values)Stores a key-value pair in this multimap for each ofvalues, all using the same key,key.Set<K>readAllKeySet()Read all keys at onceRFuture<Set<K>>readAllKeySetAsync()Read all keys 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 key, Object value)Removes a single key-value pair with the keykeyand the valuevaluefrom this multimap, if such exists.Collection<V>removeAll(Object key)Removes all values associated with the keykey.RFuture<Void>renameAsync(String newName)Rename current object key tonewNamein async modeRFuture<Boolean>renamenxAsync(String newName)Rename current object key tonewNamein async mode only if new key is not existsCollection<V>replaceValues(K key, Iterable<? extends V> values)Stores a collection of values with the same key, replacing any existing values for that key.intsize()Returns the number of key-value pairs in this multimap.RFuture<Long>sizeInMemoryAsync()Returns bytes amount used by object in Redis memory.Collection<V>values()Returns a view collection containing the value from each key-value pair contained in this multimap, without collapsing duplicates (sovalues().size() == size()).-
Methods inherited from class org.redisson.RedissonObject
addListener, addListener, addListenerAsync, addListenerAsync, copy, copyAsync, delete, 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, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, setName, sizeInMemory, 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 org.redisson.api.RExpirable
clearExpire, expire, expire, expireAt, expireAt, remainTimeToLive
-
Methods inherited from interface org.redisson.api.RExpirableAsync
expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsync
-
Methods inherited from interface org.redisson.api.RMultimapAsync
containsEntryAsync, containsKeyAsync, containsValueAsync, getAllAsync, putAllAsync, putAsync, removeAllAsync, removeAsync, replaceValuesAsync, sizeAsync
-
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, dumpAsync, getIdleTimeAsync, isExistsAsync, migrateAsync, moveAsync, removeListenerAsync, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, touchAsync, unlinkAsync
-
-
-
-
Method Detail
-
sizeInMemoryAsync
public RFuture<Long> sizeInMemoryAsync()
Description copied from interface:RObjectAsyncReturns bytes amount used by object in Redis memory.- Specified by:
sizeInMemoryAsyncin interfaceRObjectAsync- Overrides:
sizeInMemoryAsyncin classRedissonObject- Returns:
- size in bytes
-
getFairLock
public RLock getFairLock(K key)
Description copied from interface:RMultimapReturnsRLockinstance associated with key- Specified by:
getFairLockin interfaceRMultimap<K,V>- Parameters:
key- - map key- Returns:
- fairlock
-
getPermitExpirableSemaphore
public RPermitExpirableSemaphore getPermitExpirableSemaphore(K key)
Description copied from interface:RMultimapReturnsRPermitExpirableSemaphoreinstance associated with key- Specified by:
getPermitExpirableSemaphorein interfaceRMultimap<K,V>- Parameters:
key- - map key- Returns:
- permitExpirableSemaphore
-
getCountDownLatch
public RCountDownLatch getCountDownLatch(K key)
Description copied from interface:RMultimapReturnsRCountDownLatchinstance associated with key- Specified by:
getCountDownLatchin interfaceRMultimap<K,V>- Parameters:
key- - map key- Returns:
- countdownlatch
-
getSemaphore
public RSemaphore getSemaphore(K key)
Description copied from interface:RMultimapReturnsRSemaphoreinstance associated with key- Specified by:
getSemaphorein interfaceRMultimap<K,V>- Parameters:
key- - map key- Returns:
- semaphore
-
getLock
public RLock getLock(K key)
Description copied from interface:RMultimapReturnsRLockinstance associated with key
-
getReadWriteLock
public RReadWriteLock getReadWriteLock(K key)
Description copied from interface:RMultimapReturnsRReadWriteLockinstance associated with key- Specified by:
getReadWriteLockin interfaceRMultimap<K,V>- Parameters:
key- - map key- Returns:
- readWriteLock
-
hash
protected String hash(io.netty.buffer.ByteBuf objectState)
-
size
public int size()
Description copied from interface:RMultimapReturns the number of key-value pairs in this multimap.
-
keySize
public int keySize()
Description copied from interface:RMultimapReturns the count of distinct keys in this multimap.
-
isEmpty
public boolean isEmpty()
Description copied from interface:RMultimapCheck is map empty
-
containsKey
public boolean containsKey(Object key)
Description copied from interface:RMultimapReturnstrueif this multimap contains at least one key-value pair with the keykey.- Specified by:
containsKeyin interfaceRMultimap<K,V>- Parameters:
key- - map key- Returns:
trueif contains a key
-
containsValue
public boolean containsValue(Object value)
Description copied from interface:RMultimapReturnstrueif this multimap contains at least one key-value pair with the valuevalue.- Specified by:
containsValuein interfaceRMultimap<K,V>- Parameters:
value- - map value- Returns:
trueif contains a value
-
containsEntry
public boolean containsEntry(Object key, Object value)
Description copied from interface:RMultimapReturnstrueif this multimap contains at least one key-value pair with the keykeyand the valuevalue.- Specified by:
containsEntryin interfaceRMultimap<K,V>- Parameters:
key- - map keyvalue- - map value- Returns:
trueif contains an entry
-
put
public boolean put(K key, V value)
Description copied from interface:RMultimapStores a key-value pair in this multimap.Some multimap implementations allow duplicate key-value pairs, in which case
putalways adds a new key-value pair and increases the multimap size by 1. Other implementations prohibit duplicates, and storing a key-value pair that's already in the multimap has no effect.
-
remove
public boolean remove(Object key, Object value)
Description copied from interface:RMultimapRemoves a single key-value pair with the keykeyand the valuevaluefrom this multimap, if such exists. If multiple key-value pairs in the multimap fit this description, which one is removed is unspecified.
-
putAll
public boolean putAll(K key, Iterable<? extends V> values)
Description copied from interface:RMultimapStores a key-value pair in this multimap for each ofvalues, all using the same key,key. Equivalent to (but expected to be more efficient than):for (V value : values) { put(key, value); }In particular, this is a no-op if
valuesis empty.
-
clear
public void clear()
Description copied from interface:RMultimapRemoves all key-value pairs from the multimap, leaving it empty.
-
keySet
public Set<K> keySet()
Description copied from interface:RMultimapReturns a view collection of all distinct keys contained in this multimap. Note that the key set contains a key if and only if this multimap maps that key to at least one value.Changes to the returned set will update the underlying multimap, and vice versa. However, adding to the returned set is not possible.
-
values
public Collection<V> values()
Description copied from interface:RMultimapReturns a view collection containing the value from each key-value pair contained in this multimap, without collapsing duplicates (sovalues().size() == size()).Changes to the returned collection will update the underlying multimap, and vice versa. However, adding to the returned collection is not possible.
-
getAll
public Collection<V> getAll(K key)
Description copied from interface:RMultimapReturns all elements at once. Result collection is NOT backed by map, so changes are not reflected in map.
-
removeAll
public Collection<V> removeAll(Object key)
Description copied from interface:RMultimapRemoves all values associated with the keykey.Once this method returns,
keywill not be mapped to any valuesUse
RMultimap.fastRemove(K...)if values are not needed.
-
replaceValues
public Collection<V> replaceValues(K key, Iterable<? extends V> values)
Description copied from interface:RMultimapStores a collection of values with the same key, replacing any existing values for that key.If
valuesis empty, this is equivalent toremoveAll(key).- Specified by:
replaceValuesin interfaceRMultimap<K,V>- Parameters:
key- - map keyvalues- - map values- Returns:
- the collection of replaced values, or an empty collection if no values were previously associated with the key. The collection may be modifiable, but updating it will have no effect on the multimap.
-
entries
public Collection<Map.Entry<K,V>> entries()
Description copied from interface:RMultimapReturns a view collection of all key-value pairs contained in this multimap, asMap.Entryinstances.Changes to the returned collection or the entries it contains will update the underlying multimap, and vice versa. However, adding to the returned collection is not possible.
-
readAllKeySet
public Set<K> readAllKeySet()
Description copied from interface:RMultimapRead all keys at once- Specified by:
readAllKeySetin interfaceRMultimap<K,V>- Returns:
- keys
-
readAllKeySetAsync
public RFuture<Set<K>> readAllKeySetAsync()
Description copied from interface:RMultimapAsyncRead all keys at once- Specified by:
readAllKeySetAsyncin interfaceRMultimapAsync<K,V>- Returns:
- keys
-
fastRemove
public long fastRemove(K... keys)
Description copied from interface:RMultimapRemoveskeysfrom map by one operation Works faster thanRMultimap.removebut not returning the value associated withkey- Specified by:
fastRemovein interfaceRMultimap<K,V>- Parameters:
keys- - map keys- Returns:
- the number of keys that were removed from the hash, not including specified but non existing keys
-
fastRemoveAsync
public RFuture<Long> fastRemoveAsync(K... keys)
Description copied from interface:RMultimapAsyncRemoveskeysfrom map by one operation Works faster thanRMultimap.removebut not returning the value associated withkey- Specified by:
fastRemoveAsyncin interfaceRMultimapAsync<K,V>- Parameters:
keys- - map keys- Returns:
- the number of keys that were removed from the hash, not including specified but non existing keys
-
fastRemoveAsync
protected <T> RFuture<T> fastRemoveAsync(List<Object> mapKeys, List<Object> listKeys, RedisCommand<T> evalCommandType)
-
deleteAsync
public RFuture<Boolean> deleteAsync()
Description copied from interface:RObjectAsyncDelete object in async mode- Specified by:
deleteAsyncin interfaceRObjectAsync- Overrides:
deleteAsyncin classRedissonObject- Returns:
trueif object was deletedfalseif not
-
renameAsync
public RFuture<Void> renameAsync(String newName)
Description copied from interface:RObjectAsyncRename current object key tonewNamein async mode- Specified by:
renameAsyncin interfaceRObjectAsync- Overrides:
renameAsyncin classRedissonObject- Parameters:
newName- - new name of object- Returns:
- void
-
renamenxAsync
public RFuture<Boolean> renamenxAsync(String newName)
Description copied from interface:RObjectAsyncRename current object key tonewNamein async mode only if new key is not exists- Specified by:
renamenxAsyncin interfaceRObjectAsync- Overrides:
renamenxAsyncin classRedissonObject- Parameters:
newName- - new name of object- Returns:
trueif object has been renamed successfully andfalseotherwise
-
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
-
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
-
keySizeAsync
public RFuture<Integer> keySizeAsync()
Description copied from interface:RMultimapAsyncReturns the number of key-value pairs in this multimap.- Specified by:
keySizeAsyncin interfaceRMultimapAsync<K,V>- Returns:
- keys amount
-
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
-
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
-
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)
-
-