Interface RMap<K,V>
-
- Type Parameters:
K
- map keyV
- value
- All Superinterfaces:
ConcurrentMap<K,V>
,Map<K,V>
,RExpirable
,RExpirableAsync
,RMapAsync<K,V>
,RObject
,RObjectAsync
- All Known Subinterfaces:
RLocalCachedMap<K,V>
,RMapCache<K,V>
- All Known Implementing Classes:
RedissonLocalCachedMap
,RedissonMap
,RedissonMapCache
,RedissonTransactionalLocalCachedMap
,RedissonTransactionalMap
,RedissonTransactionalMapCache
public interface RMap<K,V> extends ConcurrentMap<K,V>, RExpirable, RMapAsync<K,V>
Distributed implementation ofConcurrentMap
andMap
This map doesn't allow to storenull
as key or value.- Author:
- Nikita Koksharov
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description V
addAndGet(K key, Number delta)
Atomically adds the givendelta
to the current value by mappedkey
.Set<Map.Entry<K,V>>
entrySet()
Returns map entries collection.Set<Map.Entry<K,V>>
entrySet(int count)
Returns map entries collection.Set<Map.Entry<K,V>>
entrySet(String keyPattern)
Returns map entries collection.Set<Map.Entry<K,V>>
entrySet(String keyPattern, int count)
Returns map entries collection.boolean
fastPut(K key, V value)
Associates the specifiedvalue
with the specifiedkey
.boolean
fastPutIfAbsent(K key, V value)
Associates the specifiedvalue
with the specifiedkey
only if there is no any association with specifiedkey
.long
fastRemove(K... keys)
Removeskeys
from map by one operationboolean
fastReplace(K key, V value)
Replaces previous value with a newvalue
associated with thekey
.V
get(Object key)
Returns the value to which the specified key is mapped, ornull
if this map contains no mapping for the key.Map<K,V>
getAll(Set<K> keys)
Gets a map slice contained the mappings with definedkeys
by one operation.RLock
getLock(K key)
ReturnsRLock
instance associated with keyRReadWriteLock
getReadWriteLock(K key)
ReturnsRReadWriteLock
instance associated with keySet<K>
keySet()
Returns key set of this map.Set<K>
keySet(int count)
Returns key set of this map.Set<K>
keySet(String pattern)
Returns key set of this map.Set<K>
keySet(String pattern, int count)
Returns key set of this map.void
loadAll(boolean replaceExistingValues, int parallelism)
Loads all map entries to this Redis map usingMapLoader
.void
loadAll(Set<? extends K> keys, boolean replaceExistingValues, int parallelism)
Loads map entries usingMapLoader
whose keys are listed in definedkeys
parameter.<KOut,VOut>
RMapReduce<K,V,KOut,VOut>mapReduce()
ReturnsRMapReduce
object associated with this mapV
put(K key, V value)
Associates the specifiedvalue
with the specifiedkey
in async manner.void
putAll(Map<? extends K,? extends V> map)
Associates the specifiedvalue
with the specifiedkey
in batch.void
putAll(Map<? extends K,? extends V> map, int batchSize)
Associates the specifiedvalue
with the specifiedkey
in batch.V
putIfAbsent(K key, V value)
Associates the specifiedvalue
with the specifiedkey
only if there is no any association with specifiedkey
.Set<Map.Entry<K,V>>
readAllEntrySet()
Read all map entries at onceSet<K>
readAllKeySet()
Read all keys at onceMap<K,V>
readAllMap()
Read all map as local instance at onceCollection<V>
readAllValues()
Read all values at onceV
remove(Object key)
Removeskey
from map and returns associated value in async manner.boolean
remove(Object key, Object value)
Removeskey
from map only if it associated withvalue
.V
replace(K key, V value)
Replaces previous value with a newvalue
associated with thekey
.boolean
replace(K key, V oldValue, V newValue)
Replaces previousoldValue
with anewValue
associated with thekey
.Collection<V>
values()
Returns values collection of this map.Collection<V>
values(int count)
Returns values collection of this map.Collection<V>
values(String keyPattern)
Returns values collection of this map.Collection<V>
values(String keyPattern, int count)
Returns values collection of this map.int
valueSize(K key)
Returns size of value mapped by key in bytes-
Methods inherited from interface java.util.concurrent.ConcurrentMap
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, replaceAll
-
Methods inherited from interface java.util.Map
clear, containsKey, containsValue, equals, hashCode, isEmpty, size
-
Methods inherited from interface org.redisson.api.RExpirable
clearExpire, expire, expireAt, expireAt, remainTimeToLive
-
Methods inherited from interface org.redisson.api.RExpirableAsync
clearExpireAsync, expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsync
-
Methods inherited from interface org.redisson.api.RMapAsync
addAndGetAsync, containsKeyAsync, containsValueAsync, fastPutAsync, fastPutIfAbsentAsync, fastRemoveAsync, fastReplaceAsync, getAllAsync, getAsync, loadAllAsync, loadAllAsync, putAllAsync, putAllAsync, putAsync, putIfAbsentAsync, readAllEntrySetAsync, readAllKeySetAsync, readAllMapAsync, readAllValuesAsync, removeAsync, removeAsync, replaceAsync, replaceAsync, sizeAsync, valueSizeAsync
-
Methods inherited from interface org.redisson.api.RObject
copy, delete, dump, getCodec, getName, isExists, migrate, move, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlink
-
Methods inherited from interface org.redisson.api.RObjectAsync
copyAsync, deleteAsync, dumpAsync, isExistsAsync, migrateAsync, moveAsync, renameAsync, renamenxAsync, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, sizeInMemoryAsync, touchAsync, unlinkAsync
-
-
-
-
Method Detail
-
loadAll
void loadAll(boolean replaceExistingValues, int parallelism)
Loads all map entries to this Redis map usingMapLoader
.- Parameters:
replaceExistingValues
- -true
if existed values should be replaced,false
otherwise.parallelism
- - parallelism level, used to increase speed of process execution
-
loadAll
void loadAll(Set<? extends K> keys, boolean replaceExistingValues, int parallelism)
Loads map entries usingMapLoader
whose keys are listed in definedkeys
parameter.- Parameters:
keys
- - map keysreplaceExistingValues
- -true
if existed values should be replaced,false
otherwise.parallelism
- - parallelism level, used to increase speed of process execution
-
get
V get(Object key)
Returns the value to which the specified key is mapped, ornull
if this map contains no mapping for the key.If map doesn't contain value for specified key and
MapLoader
is defined then value will be loaded in read-through mode.
-
put
V put(K key, V value)
Associates the specifiedvalue
with the specifiedkey
in async manner.If
MapWriter
is defined then new map entry is stored in write-through mode.
-
putIfAbsent
V putIfAbsent(K key, V value)
Associates the specifiedvalue
with the specifiedkey
only if there is no any association with specifiedkey
.If
MapWriter
is defined then new map entry is stored in write-through mode.- Specified by:
putIfAbsent
in interfaceConcurrentMap<K,V>
- Specified by:
putIfAbsent
in interfaceMap<K,V>
- Parameters:
key
- - map keyvalue
- - map value- Returns:
null
if key is a new one in the hash and value was set. Previous value if key already exists in the hash and change hasn't been made.
-
mapReduce
<KOut,VOut> RMapReduce<K,V,KOut,VOut> mapReduce()
ReturnsRMapReduce
object associated with this map- Type Parameters:
KOut
- output keyVOut
- output value- Returns:
- MapReduce instance
-
getReadWriteLock
RReadWriteLock getReadWriteLock(K key)
ReturnsRReadWriteLock
instance associated with key- Parameters:
key
- - map key- Returns:
- readWriteLock
-
getLock
RLock getLock(K key)
ReturnsRLock
instance associated with key- Parameters:
key
- - map key- Returns:
- lock
-
valueSize
int valueSize(K key)
Returns size of value mapped by key in bytes- Parameters:
key
- - map key- Returns:
- size of value
-
addAndGet
V addAndGet(K key, Number delta)
Atomically adds the givendelta
to the current value by mappedkey
. Works only for numeric values!- Parameters:
key
- - map keydelta
- the value to add- Returns:
- the updated value
-
remove
V remove(Object key)
Removeskey
from map and returns associated value in async manner.If
MapWriter
is defined thenkey
is deleted in write-through mode.
-
replace
V replace(K key, V value)
Replaces previous value with a newvalue
associated with thekey
. If there wasn't any association before then method returnsnull
.If
MapWriter
is defined then newvalue
is written in write-through mode.
-
replace
boolean replace(K key, V oldValue, V newValue)
Replaces previousoldValue
with anewValue
associated with thekey
. If previous value doesn't exist or equal tooldValue
then method returnsfalse
.If
MapWriter
is defined thennewValue
is written in write-through mode.
-
remove
boolean remove(Object key, Object value)
Removeskey
from map only if it associated withvalue
.If
MapWriter
is defined thenkey
is deleted in write-through mode.
-
putAll
void putAll(Map<? extends K,? extends V> map)
Associates the specifiedvalue
with the specifiedkey
in batch.If
MapWriter
is defined then new map entries will be stored in write-through mode.
-
putAll
void putAll(Map<? extends K,? extends V> map, int batchSize)
Associates the specifiedvalue
with the specifiedkey
in batch. Batch inserted by chunks limited bybatchSize
amount to avoid OOM and/or Redis response timeout error for map with big size.If
MapWriter
is defined then new map entries are stored in write-through mode.- Parameters:
map
- mappings to be stored in this mapbatchSize
- - map chunk size
-
getAll
Map<K,V> getAll(Set<K> keys)
Gets a map slice contained the mappings with definedkeys
by one operation.If map doesn't contain value/values for specified key/keys and
MapLoader
is defined then value/values will be loaded in read-through mode.The returned map is NOT backed by the original map.
- Parameters:
keys
- - map keys- Returns:
- Map slice
-
fastRemove
long fastRemove(K... keys)
Removeskeys
from map by one operationWorks faster than
but not returning the value associated withremove(Object)
key
If
MapWriter
is defined thenkeys
are deleted in write-through mode.- Parameters:
keys
- - map keys- Returns:
- the number of keys that were removed from the hash, not including specified but non existing keys
-
fastPut
boolean fastPut(K key, V value)
Associates the specifiedvalue
with the specifiedkey
.Works faster than
but not returning the previous value associated withput(Object, Object)
key
If
MapWriter
is defined then new map entry is stored in write-through mode.- Parameters:
key
- - map keyvalue
- - map value- Returns:
true
if key is a new key in the hash and value was set.false
if key already exists in the hash and the value was updated.
-
fastReplace
boolean fastReplace(K key, V value)
Replaces previous value with a newvalue
associated with thekey
.Works faster than
but not returning the previous value associated withreplace(Object, Object)
key
If
MapWriter
is defined then new map entry is stored in write-through mode.- Parameters:
key
- - map keyvalue
- - map value- Returns:
true
if key exists and value was updated.false
if key doesn't exists and value wasn't updated.
-
fastPutIfAbsent
boolean fastPutIfAbsent(K key, V value)
Associates the specifiedvalue
with the specifiedkey
only if there is no any association with specifiedkey
.Works faster than
but not returning the previous value associated withputIfAbsent(Object, Object)
key
If
MapWriter
is defined then new map entry is stored in write-through mode.- Parameters:
key
- - map keyvalue
- - map value- Returns:
true
if key is a new one in the hash and value was set.false
if key already exists in the hash and change hasn't been made.
-
readAllValues
Collection<V> readAllValues()
Read all values at once- Returns:
- values
-
readAllEntrySet
Set<Map.Entry<K,V>> readAllEntrySet()
Read all map entries at once- Returns:
- entries
-
keySet
Set<K> keySet()
Returns key set of this map. Keys are loaded in batch. Batch size is10
.- Specified by:
keySet
in interfaceMap<K,V>
- Returns:
- key set
- See Also:
readAllKeySet()
-
keySet
Set<K> keySet(int count)
Returns key set of this map. Keys are loaded in batch. Batch size is defined bycount
param.- Parameters:
count
- - size of keys batch- Returns:
- key set
- See Also:
readAllKeySet()
-
keySet
Set<K> keySet(String pattern, int count)
Returns key set of this map. Ifpattern
is not null then only keys match this pattern are loaded. Keys are loaded in batch. Batch size is defined bycount
param. 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
- Parameters:
pattern
- - key patterncount
- - size of keys batch- Returns:
- key set
- See Also:
readAllKeySet()
-
keySet
Set<K> keySet(String pattern)
Returns key set of this map. Ifpattern
is not null then only keys match this pattern are loaded. 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
- Parameters:
pattern
- - key pattern- Returns:
- key set
- See Also:
readAllKeySet()
-
values
Collection<V> values()
Returns values collection of this map. Values are loaded in batch. Batch size is10
.- Specified by:
values
in interfaceMap<K,V>
- Returns:
- values collection
- See Also:
readAllValues()
-
values
Collection<V> values(String keyPattern)
Returns values collection of this map. Values are loaded in batch. Batch size is10
. IfkeyPattern
is not null then only values mapped by matched keys of this pattern are loaded. 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
- Parameters:
keyPattern
- - key pattern- Returns:
- values collection
- See Also:
readAllValues()
-
values
Collection<V> values(String keyPattern, int count)
Returns values collection of this map. Values are loaded in batch. Batch size is defined bycount
param. IfkeyPattern
is not null then only values mapped by matched keys of this pattern are loaded. 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
- Parameters:
keyPattern
- - key patterncount
- - size of values batch- Returns:
- values collection
- See Also:
readAllValues()
-
values
Collection<V> values(int count)
Returns values collection of this map. Values are loaded in batch. Batch size is defined bycount
param.- Parameters:
count
- - size of values batch- Returns:
- values collection
- See Also:
readAllValues()
-
entrySet
Set<Map.Entry<K,V>> entrySet()
Returns map entries collection. Map entries are loaded in batch. Batch size is10
.- Specified by:
entrySet
in interfaceMap<K,V>
- Returns:
- map entries collection
- See Also:
readAllEntrySet()
-
entrySet
Set<Map.Entry<K,V>> entrySet(String keyPattern)
Returns map entries collection. Map entries are loaded in batch. Batch size is10
. IfkeyPattern
is not null then only entries mapped by matched keys of this pattern are loaded. 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
- Parameters:
keyPattern
- - key pattern- Returns:
- map entries collection
- See Also:
readAllEntrySet()
-
entrySet
Set<Map.Entry<K,V>> entrySet(String keyPattern, int count)
Returns map entries collection. Map entries are loaded in batch. Batch size is defined bycount
param. IfkeyPattern
is not null then only entries mapped by matched keys of this pattern are loaded. 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
- Parameters:
keyPattern
- - key patterncount
- - size of entries batch- Returns:
- map entries collection
- See Also:
readAllEntrySet()
-
entrySet
Set<Map.Entry<K,V>> entrySet(int count)
Returns map entries collection. Map entries are loaded in batch. Batch size is defined bycount
param.- Parameters:
count
- - size of entries batch- Returns:
- map entries collection
- See Also:
readAllEntrySet()
-
-