Interface RMapRx<K,V>
-
- Type Parameters:
K
- keyV
- value
- All Superinterfaces:
RExpirableRx
,RObjectRx
- All Known Subinterfaces:
RMapCacheRx<K,V>
public interface RMapRx<K,V> extends RExpirableRx
RxJava2 interface for Redis based implementation ofConcurrentMap
andMap
This map uses serialized state of key instead of hashCode or equals methods. This map doesn't allow to store
null
as key or value.- Author:
- Nikita Koksharov
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description io.reactivex.rxjava3.core.Single<V>
addAndGet(K key, Number delta)
Adds the givendelta
to the current value by mappedkey
.io.reactivex.rxjava3.core.Maybe<V>
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
Computes a new mapping for the specified key and its current mapped value.io.reactivex.rxjava3.core.Maybe<V>
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
Computes a mapping for the specified key if it's not mapped before.io.reactivex.rxjava3.core.Maybe<V>
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
Computes a mapping for the specified key only if it's already mapped.io.reactivex.rxjava3.core.Single<Boolean>
containsKey(Object key)
Returnstrue
if this map contains map entry mapped by specifiedkey
, otherwisefalse
io.reactivex.rxjava3.core.Single<Boolean>
containsValue(Object value)
Returnstrue
if this map contains any map entry with specifiedvalue
, otherwisefalse
io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>>
entryIterator()
Returns iterator over map entries collection.io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>>
entryIterator(int count)
Returns iterator over map entries collection.io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>>
entryIterator(String pattern)
Returns iterator over map entries collection.io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>>
entryIterator(String pattern, int count)
Returns iterator over map entries collection.io.reactivex.rxjava3.core.Single<Boolean>
fastPut(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
.io.reactivex.rxjava3.core.Single<Boolean>
fastPutIfAbsent(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
only if there is no value with specifiedkey
stored before.io.reactivex.rxjava3.core.Single<Boolean>
fastPutIfExists(K key, V value)
Stores the specifiedvalue
mapped bykey
only if mapping already exists.io.reactivex.rxjava3.core.Single<Long>
fastRemove(K... keys)
Removes map entries mapped by specifiedkeys
.io.reactivex.rxjava3.core.Maybe<V>
get(K key)
Returns the value mapped by definedkey
ornull
if value is absent.io.reactivex.rxjava3.core.Single<Map<K,V>>
getAll(Set<K> keys)
Returns map slice contained the mappings with definedkeys
.RLockRx
getFairLock(K key)
ReturnsRLock
instance associated with keyRLockRx
getLock(K key)
ReturnsRLock
instance associated with keyRPermitExpirableSemaphoreRx
getPermitExpirableSemaphore(K key)
ReturnsRPermitExpirableSemaphore
instance associated with keyRReadWriteLockRx
getReadWriteLock(K key)
ReturnsRReadWriteLock
instance associated with keyRSemaphoreRx
getSemaphore(K key)
ReturnsRSemaphore
instance associated with keyio.reactivex.rxjava3.core.Flowable<K>
keyIterator()
Returns iterator over key set of this map.io.reactivex.rxjava3.core.Flowable<K>
keyIterator(int count)
Returns iterator over key set of this map.io.reactivex.rxjava3.core.Flowable<K>
keyIterator(String pattern)
Returns iterator over key set of this map.io.reactivex.rxjava3.core.Flowable<K>
keyIterator(String pattern, int count)
Returns iterator over key set of this map.io.reactivex.rxjava3.core.Completable
loadAll(boolean replaceExistingValues, int parallelism)
Loads all map entries to this Redis map usingMapLoader
.io.reactivex.rxjava3.core.Completable
loadAll(Set<? extends K> keys, boolean replaceExistingValues, int parallelism)
Loads map entries usingMapLoader
whose keys are listed in definedkeys
parameter.io.reactivex.rxjava3.core.Maybe<V>
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
Associates specified key with the given value if key isn't already associated with a value.io.reactivex.rxjava3.core.Maybe<V>
put(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
.io.reactivex.rxjava3.core.Completable
putAll(Map<? extends K,? extends V> map)
Stores map entries specified inmap
object in batch mode.io.reactivex.rxjava3.core.Maybe<V>
putIfAbsent(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
only if there is no value with specifiedkey
stored before.io.reactivex.rxjava3.core.Maybe<V>
putIfExists(K key, V value)
Stores the specifiedvalue
mapped bykey
only if mapping already exists.io.reactivex.rxjava3.core.Single<Map<K,V>>
randomEntries(int count)
Returns random map entries from this map limited bycount
io.reactivex.rxjava3.core.Single<Set<K>>
randomKeys(int count)
Returns random keys from this map limited bycount
io.reactivex.rxjava3.core.Single<Set<Map.Entry<K,V>>>
readAllEntrySet()
Read all map entries at onceio.reactivex.rxjava3.core.Single<Set<K>>
readAllKeySet()
Read all keys at onceio.reactivex.rxjava3.core.Single<Map<K,V>>
readAllMap()
Read all map as local instance at onceio.reactivex.rxjava3.core.Single<Collection<V>>
readAllValues()
Read all values at onceio.reactivex.rxjava3.core.Single<Boolean>
remove(Object key, Object value)
Removes map entry only if it exists with specifiedkey
andvalue
.io.reactivex.rxjava3.core.Maybe<V>
remove(K key)
Removes map entry by specifiedkey
and returns value.io.reactivex.rxjava3.core.Maybe<V>
replace(K key, V value)
Replaces previous value with a newvalue
mapped by specifiedkey
.io.reactivex.rxjava3.core.Single<Boolean>
replace(K key, V oldValue, V newValue)
Replaces previousoldValue
with anewValue
mapped by specifiedkey
.io.reactivex.rxjava3.core.Single<Integer>
size()
Returns size of this mapio.reactivex.rxjava3.core.Flowable<V>
valueIterator()
Returns iterator over values collection of this map.io.reactivex.rxjava3.core.Flowable<V>
valueIterator(int count)
Returns iterator over values collection of this map.io.reactivex.rxjava3.core.Flowable<V>
valueIterator(String pattern)
Returns iterator over values collection of this map.io.reactivex.rxjava3.core.Flowable<V>
valueIterator(String pattern, int count)
Returns iterator over values collection of this map.io.reactivex.rxjava3.core.Single<Integer>
valueSize(K key)
Returns size of value mapped by key in bytes-
Methods inherited from interface org.redisson.api.RExpirableRx
clearExpire, expire, expireAt, expireAt, expireAt, remainTimeToLive
-
Methods inherited from interface org.redisson.api.RObjectRx
addListener, copy, delete, dump, getCodec, getIdleTime, getName, isExists, migrate, move, removeListener, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlink
-
-
-
-
Method Detail
-
merge
io.reactivex.rxjava3.core.Maybe<V> merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
Associates specified key with the given value if key isn't already associated with a value. Otherwise, replaces the associated value with the results of the given remapping function, or removes if the result isnull
.- Parameters:
key
- - map keyvalue
- - value to be merged with the existing value associated with the key or to be associated with the key, if no existing valueremappingFunction
- - the function is invoked with the existing value to compute new value- Returns:
- new value associated with the specified key or
null
if no value associated with the key
-
compute
io.reactivex.rxjava3.core.Maybe<V> compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
Computes a new mapping for the specified key and its current mapped value.- Parameters:
key
- - map keyremappingFunction
- - function to compute a value- Returns:
- the new value associated with the specified key, or
null
if none
-
computeIfAbsent
io.reactivex.rxjava3.core.Maybe<V> computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
Computes a mapping for the specified key if it's not mapped before.- Parameters:
key
- - map keymappingFunction
- - function to compute a value- Returns:
- current or new computed value associated with
the specified key, or
null
if the computed value is null
-
computeIfPresent
io.reactivex.rxjava3.core.Maybe<V> computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
Computes a mapping for the specified key only if it's already mapped.- Parameters:
key
- - map keyremappingFunction
- - function to compute a value- Returns:
- the new value associated with the specified key, or null if none
-
loadAll
io.reactivex.rxjava3.core.Completable 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- Returns:
- void
-
loadAll
io.reactivex.rxjava3.core.Completable 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- Returns:
- void
-
valueSize
io.reactivex.rxjava3.core.Single<Integer> valueSize(K key)
Returns size of value mapped by key in bytes- Parameters:
key
- - map key- Returns:
- size of value
-
getAll
io.reactivex.rxjava3.core.Single<Map<K,V>> getAll(Set<K> keys)
Returns map slice contained the mappings with definedkeys
.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
-
putAll
io.reactivex.rxjava3.core.Completable putAll(Map<? extends K,? extends V> map)
Stores map entries specified inmap
object in batch mode.If
MapWriter
is defined then map entries will be stored in write-through mode.- Parameters:
map
- mappings to be stored in this map- Returns:
- void
-
addAndGet
io.reactivex.rxjava3.core.Single<V> addAndGet(K key, Number delta)
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
-
containsValue
io.reactivex.rxjava3.core.Single<Boolean> containsValue(Object value)
Returnstrue
if this map contains any map entry with specifiedvalue
, otherwisefalse
- Parameters:
value
- - map value- Returns:
true
if this map contains any map entry with specifiedvalue
, otherwisefalse
-
containsKey
io.reactivex.rxjava3.core.Single<Boolean> containsKey(Object key)
Returnstrue
if this map contains map entry mapped by specifiedkey
, otherwisefalse
- Parameters:
key
- - map key- Returns:
true
if this map contains map entry mapped by specifiedkey
, otherwisefalse
-
size
io.reactivex.rxjava3.core.Single<Integer> size()
Returns size of this map- Returns:
- size
-
fastRemove
io.reactivex.rxjava3.core.Single<Long> fastRemove(K... keys)
Removes map entries mapped by specifiedkeys
.Works faster than
but not returning the value.remove(Object)
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
io.reactivex.rxjava3.core.Single<Boolean> fastPut(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
.Works faster than
but not returning previous value.put(Object, Object)
Returns
true
if key is a new key in the hash and value was set orfalse
if key already exists in the hash and the value was updated.If
MapWriter
is defined then 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.
-
fastPutIfAbsent
io.reactivex.rxjava3.core.Single<Boolean> fastPutIfAbsent(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
only if there is no value with specifiedkey
stored before.Returns
true
if key is a new one in the hash and value was set orfalse
if key already exists in the hash and change hasn't been made.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.
-
readAllKeySet
io.reactivex.rxjava3.core.Single<Set<K>> readAllKeySet()
Read all keys at once- Returns:
- keys
-
readAllValues
io.reactivex.rxjava3.core.Single<Collection<V>> readAllValues()
Read all values at once- Returns:
- values
-
readAllEntrySet
io.reactivex.rxjava3.core.Single<Set<Map.Entry<K,V>>> readAllEntrySet()
Read all map entries at once- Returns:
- entries
-
readAllMap
io.reactivex.rxjava3.core.Single<Map<K,V>> readAllMap()
Read all map as local instance at once- Returns:
- map
-
get
io.reactivex.rxjava3.core.Maybe<V> get(K key)
Returns the value mapped by definedkey
ornull
if value is absent.If map doesn't contain value for specified key and
MapLoader
is defined then value will be loaded in read-through mode.- Parameters:
key
- the key- Returns:
- the value mapped by defined
key
ornull
if value is absent
-
put
io.reactivex.rxjava3.core.Maybe<V> put(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
. Returns previous value if map entry with specifiedkey
already existed.If
MapWriter
is defined then map entry is stored in write-through mode.- Parameters:
key
- - map keyvalue
- - map value- Returns:
- previous associated value
-
remove
io.reactivex.rxjava3.core.Maybe<V> remove(K key)
Removes map entry by specifiedkey
and returns value.If
MapWriter
is defined thenkey
is deleted in write-through mode.- Parameters:
key
- - map key- Returns:
- deleted value,
null
if map entry doesn't exist
-
replace
io.reactivex.rxjava3.core.Maybe<V> replace(K key, V value)
Replaces previous value with a newvalue
mapped by specifiedkey
. Returnsnull
if there is no map entry stored before and doesn't store new map entry.If
MapWriter
is defined then newvalue
is written in write-through mode.- Parameters:
key
- - map keyvalue
- - map value- Returns:
- previous associated value
or
null
if there is no map entry stored before and doesn't store new map entry
-
replace
io.reactivex.rxjava3.core.Single<Boolean> replace(K key, V oldValue, V newValue)
Replaces previousoldValue
with anewValue
mapped by specifiedkey
. Returnsfalse
if previous value doesn't exist or equal tooldValue
.If
MapWriter
is defined thennewValue
is written in write-through mode.- Parameters:
key
- - map keyoldValue
- - map old valuenewValue
- - map new value- Returns:
true
if value has been replaced otherwisefalse
.
-
remove
io.reactivex.rxjava3.core.Single<Boolean> remove(Object key, Object value)
Removes map entry only if it exists with specifiedkey
andvalue
.If
MapWriter
is defined thenkey
is deleted in write-through mode.- Parameters:
key
- - map keyvalue
- - map value- Returns:
true
if map entry has been removed otherwisefalse
.
-
putIfAbsent
io.reactivex.rxjava3.core.Maybe<V> putIfAbsent(K key, V value)
Stores the specifiedvalue
mapped by specifiedkey
only if there is no value with specifiedkey
stored before.If
MapWriter
is defined then new map entry is stored in write-through mode.- 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.
-
putIfExists
io.reactivex.rxjava3.core.Maybe<V> putIfExists(K key, V value)
Stores the specifiedvalue
mapped bykey
only if mapping already exists.If
MapWriter
is defined then new map entry is stored in write-through mode.- Parameters:
key
- - map keyvalue
- - map value- Returns:
null
if key doesn't exist in the hash and value hasn't been set. Previous value if key already exists in the hash and new value has been stored.
-
randomKeys
io.reactivex.rxjava3.core.Single<Set<K>> randomKeys(int count)
Returns random keys from this map limited bycount
- Parameters:
count
- - keys amount to return- Returns:
- random keys
-
randomEntries
io.reactivex.rxjava3.core.Single<Map<K,V>> randomEntries(int count)
Returns random map entries from this map limited bycount
- Parameters:
count
- - entries amount to return- Returns:
- random entries
-
fastPutIfExists
io.reactivex.rxjava3.core.Single<Boolean> fastPutIfExists(K key, V value)
Stores the specifiedvalue
mapped bykey
only if mapping already exists.Returns
true
if key is a new one in the hash and value was set orfalse
if key already exists in the hash and change hasn't been made.Works faster than
but doesn't return previous value associated withputIfExists(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 already exists in the hash and new value has been stored.false
if key doesn't exist in the hash and value hasn't been set.
-
entryIterator
io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>> entryIterator()
Returns iterator over map entries collection. Map entries are loaded in batch. Batch size is10
.- Returns:
- iterator
- See Also:
readAllEntrySet()
-
entryIterator
io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>> entryIterator(int count)
Returns iterator over map entries collection. Map entries are loaded in batch. Batch size is defined bycount
param.- Parameters:
count
- - size of entries batch- Returns:
- iterator
- See Also:
readAllEntrySet()
-
entryIterator
io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>> entryIterator(String pattern)
Returns iterator over 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:
pattern
- - key pattern- Returns:
- iterator
- See Also:
readAllEntrySet()
-
entryIterator
io.reactivex.rxjava3.core.Flowable<Map.Entry<K,V>> entryIterator(String pattern, int count)
Returns iterator over 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:
pattern
- - key patterncount
- - size of entries batch- Returns:
- iterator
- See Also:
readAllEntrySet()
-
valueIterator
io.reactivex.rxjava3.core.Flowable<V> valueIterator()
Returns iterator over values collection of this map. Values are loaded in batch. Batch size is10
.- Returns:
- iterator
- See Also:
readAllValues()
-
valueIterator
io.reactivex.rxjava3.core.Flowable<V> valueIterator(int count)
Returns iterator over values collection of this map. Values are loaded in batch. Batch size is defined bycount
param.- Parameters:
count
- - size of values batch- Returns:
- iterator
- See Also:
readAllValues()
-
valueIterator
io.reactivex.rxjava3.core.Flowable<V> valueIterator(String pattern)
Returns iterator over 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.Use
org.redisson.client.codec.StringCodec
for Map keys.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:
- iterator
- See Also:
readAllValues()
-
valueIterator
io.reactivex.rxjava3.core.Flowable<V> valueIterator(String pattern, int count)
Returns iterator over 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.Use
org.redisson.client.codec.StringCodec
for Map keys.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 values batch- Returns:
- iterator
- See Also:
readAllValues()
-
keyIterator
io.reactivex.rxjava3.core.Flowable<K> keyIterator()
Returns iterator over key set of this map. Keys are loaded in batch. Batch size is10
.- Returns:
- iterator
- See Also:
readAllKeySet()
-
keyIterator
io.reactivex.rxjava3.core.Flowable<K> keyIterator(int count)
Returns iterator over key set of this map. Keys are loaded in batch. Batch size is defined bycount
param.- Parameters:
count
- - size of keys batch- Returns:
- iterator
- See Also:
readAllKeySet()
-
keyIterator
io.reactivex.rxjava3.core.Flowable<K> keyIterator(String pattern)
Returns iterator over key set of this map. Ifpattern
is not null then only keys match this pattern are loaded.Use
org.redisson.client.codec.StringCodec
for Map keys.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:
- iterator
- See Also:
readAllKeySet()
-
keyIterator
io.reactivex.rxjava3.core.Flowable<K> keyIterator(String pattern, int count)
Returns iterator over 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.Use
org.redisson.client.codec.StringCodec
for Map keys.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:
- iterator
- See Also:
readAllKeySet()
-
getPermitExpirableSemaphore
RPermitExpirableSemaphoreRx getPermitExpirableSemaphore(K key)
ReturnsRPermitExpirableSemaphore
instance associated with key- Parameters:
key
- - map key- Returns:
- permitExpirableSemaphore
-
getSemaphore
RSemaphoreRx getSemaphore(K key)
ReturnsRSemaphore
instance associated with key- Parameters:
key
- - map key- Returns:
- semaphore
-
getFairLock
RLockRx getFairLock(K key)
ReturnsRLock
instance associated with key- Parameters:
key
- - map key- Returns:
- fairLock
-
getReadWriteLock
RReadWriteLockRx getReadWriteLock(K key)
ReturnsRReadWriteLock
instance associated with key- Parameters:
key
- - map key- Returns:
- readWriteLock
-
-