K
- keyV
- valuepublic class RedissonMapCache<K,V> extends RedissonMap<K,V> implements RMapCache<K,V>
Map-based cache with ability to set TTL for each entry via
put(Object, Object, long, TimeUnit)
or putIfAbsent(Object, Object, long, TimeUnit)
methods.
And therefore has an complex lua-scripts inside.
Current redis implementation doesnt have map entry eviction functionality.
Thus entries are checked for TTL expiration during any key/value/entry read operation.
If key/value/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 RedissonMapReactive
.
Modifier | Constructor and Description |
---|---|
|
RedissonMapCache(Codec codec,
EvictionScheduler evictionScheduler,
CommandAsyncExecutor commandExecutor,
String name) |
protected |
RedissonMapCache(EvictionScheduler evictionScheduler,
CommandAsyncExecutor commandExecutor,
String name) |
Modifier and Type | Method and Description |
---|---|
boolean |
clearExpire()
Clear an expire timeout or expire date for object.
|
io.netty.util.concurrent.Future<Boolean> |
clearExpireAsync()
Clear an expire timeout or expire date for object in async mode.
|
io.netty.util.concurrent.Future<Boolean> |
containsKeyAsync(Object key) |
io.netty.util.concurrent.Future<Boolean> |
containsValueAsync(Object value) |
boolean |
delete()
Deletes the object
|
io.netty.util.concurrent.Future<Boolean> |
deleteAsync()
Delete object in async mode
|
boolean |
expire(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object.
|
io.netty.util.concurrent.Future<Boolean> |
expireAsync(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object in async mode.
|
boolean |
expireAt(Date timestamp)
Set an expire date for object.
|
boolean |
expireAt(long timestamp)
Set an expire date for object.
|
io.netty.util.concurrent.Future<Boolean> |
expireAtAsync(Date timestamp)
Set an expire date for object in async mode.
|
io.netty.util.concurrent.Future<Boolean> |
expireAtAsync(long timestamp)
Set an expire date for object in async mode.
|
io.netty.util.concurrent.Future<Long> |
fastRemoveAsync(K... keys)
Removes
keys from map by one operation in async manner
Works faster than RMap.removeAsync but not returning
the value associated with key |
protected <V> V |
get(io.netty.util.concurrent.Future<V> future) |
io.netty.util.concurrent.Future<Map<K,V>> |
getAllAsync(Set<K> keys) |
io.netty.util.concurrent.Future<V> |
getAsync(K key) |
String |
getName()
Returns name of object
|
boolean |
isExists()
Check object existence
|
io.netty.util.concurrent.Future<Boolean> |
isExistsAsync()
Check object existence in async mode.
|
void |
migrate(String host,
int port,
int database)
Transfer a object from a source Redis instance to a destination Redis instance
|
io.netty.util.concurrent.Future<Void> |
migrateAsync(String host,
int port,
int database)
Transfer a object from a source Redis instance to a destination Redis instance
in async mode
|
boolean |
move(int database)
Move object to another database
|
io.netty.util.concurrent.Future<Boolean> |
moveAsync(int database)
Move object to another database in async mode
|
protected <V> io.netty.util.concurrent.Promise<V> |
newPromise() |
protected <V> io.netty.util.concurrent.Future<V> |
newSucceededFuture(V result) |
V |
put(K key,
V value,
long ttl,
TimeUnit unit) |
io.netty.util.concurrent.Future<V> |
putAsync(K key,
V value,
long ttl,
TimeUnit unit) |
V |
putIfAbsent(K key,
V value,
long ttl,
TimeUnit unit) |
io.netty.util.concurrent.Future<V> |
putIfAbsentAsync(K key,
V value,
long ttl,
TimeUnit unit) |
long |
remainTimeToLive()
Remaining time to live of Redisson object that has a timeout
|
io.netty.util.concurrent.Future<Long> |
remainTimeToLiveAsync()
Get remaining time to live of object in seconds.
|
io.netty.util.concurrent.Future<V> |
removeAsync(K key) |
io.netty.util.concurrent.Future<Long> |
removeAsync(Object key,
Object value) |
void |
rename(String newName)
Rename current object key to
newName |
io.netty.util.concurrent.Future<Void> |
renameAsync(String newName)
Rename current object key to
newName
in async mode |
boolean |
renamenx(String newName)
Rename current object key to
newName
only if new key is not exists |
io.netty.util.concurrent.Future<Boolean> |
renamenxAsync(String newName)
Rename current object key to
newName
in async mode only if new key is not exists |
addAndGet, addAndGetAsync, clear, containsKey, containsValue, entryIterator, entrySet, equals, fastPut, fastPutAsync, fastRemove, filterEntries, filterKeys, filterValues, get, getAll, hashCode, isEmpty, keyIterator, keySet, put, putAll, putAllAsync, putAsync, putIfAbsent, putIfAbsentAsync, remove, remove, replace, replace, replaceAsync, replaceAsync, size, sizeAsync, valueIterator, values
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
addAndGet, entryIterator, fastPut, fastRemove, filterEntries, filterKeys, filterValues, getAll, keyIterator, valueIterator
putIfAbsent, remove, replace, replace
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, values
clearExpire, expire, expireAt, expireAt, remainTimeToLive
delete, getName, isExists, migrate, move, rename, renamenx
sizeAsync
addAndGetAsync, fastPutAsync, putAllAsync, putAsync, putIfAbsentAsync, replaceAsync, replaceAsync
expireAtAsync, remainTimeToLiveAsync
isExistsAsync, migrateAsync, moveAsync, renameAsync, renamenxAsync
protected RedissonMapCache(EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name)
public RedissonMapCache(Codec codec, EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name)
public io.netty.util.concurrent.Future<Boolean> containsKeyAsync(Object key)
containsKeyAsync
in interface RMapAsync<K,V>
containsKeyAsync
in class RedissonMap<K,V>
public io.netty.util.concurrent.Future<Boolean> containsValueAsync(Object value)
containsValueAsync
in interface RMapAsync<K,V>
containsValueAsync
in class RedissonMap<K,V>
public io.netty.util.concurrent.Future<Map<K,V>> getAllAsync(Set<K> keys)
getAllAsync
in interface RMapAsync<K,V>
getAllAsync
in class RedissonMap<K,V>
public V putIfAbsent(K key, V value, long ttl, TimeUnit unit)
putIfAbsent
in interface RMapCache<K,V>
public io.netty.util.concurrent.Future<V> putIfAbsentAsync(K key, V value, long ttl, TimeUnit unit)
putIfAbsentAsync
in interface RMapCacheAsync<K,V>
public io.netty.util.concurrent.Future<Long> removeAsync(Object key, Object value)
removeAsync
in interface RMapAsync<K,V>
removeAsync
in class RedissonMap<K,V>
public io.netty.util.concurrent.Future<V> putAsync(K key, V value, long ttl, TimeUnit unit)
putAsync
in interface RMapCacheAsync<K,V>
public io.netty.util.concurrent.Future<V> removeAsync(K key)
removeAsync
in interface RMapAsync<K,V>
removeAsync
in class RedissonMap<K,V>
public io.netty.util.concurrent.Future<Long> fastRemoveAsync(K... keys)
RMapAsync
keys
from map by one operation in async manner
Works faster than RMap.removeAsync
but not returning
the value associated with key
fastRemoveAsync
in interface RMapAsync<K,V>
fastRemoveAsync
in class RedissonMap<K,V>
public io.netty.util.concurrent.Future<Boolean> deleteAsync()
RObjectAsync
deleteAsync
in interface RObjectAsync
true
if object was deleted false
if notpublic io.netty.util.concurrent.Future<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit)
RExpirableAsync
expireAsync
in interface RExpirableAsync
timeToLive
- - timeout before object will be deletedtimeUnit
- - timeout time unittrue
if the timeout was set and false
if notpublic io.netty.util.concurrent.Future<Boolean> expireAtAsync(long timestamp)
RExpirableAsync
expireAtAsync
in interface RExpirableAsync
timestamp
- - expire date in seconds (Unix timestamp)true
if the timeout was set and false
if notpublic io.netty.util.concurrent.Future<Boolean> clearExpireAsync()
RExpirableAsync
clearExpireAsync
in interface RExpirableAsync
true
if the timeout was cleared and false
if notpublic boolean expire(long timeToLive, TimeUnit timeUnit)
RExpirable
expire
in interface RExpirable
timeToLive
- - timeout before object will be deletedtimeUnit
- - timeout time unittrue
if the timeout was set and false
if notpublic boolean expireAt(long timestamp)
RExpirable
expireAt
in interface RExpirable
timestamp
- - expire date in milliseconds (Unix timestamp)true
if the timeout was set and false
if notpublic boolean expireAt(Date timestamp)
RExpirable
expireAt
in interface RExpirable
timestamp
- - expire datetrue
if the timeout was set and false
if notpublic io.netty.util.concurrent.Future<Boolean> expireAtAsync(Date timestamp)
RExpirableAsync
expireAtAsync
in interface RExpirableAsync
timestamp
- - expire datetrue
if the timeout was set and false
if notpublic boolean clearExpire()
RExpirable
clearExpire
in interface RExpirable
true
if timeout was removed
false
if object does not exist or does not have an associated timeoutpublic long remainTimeToLive()
RExpirable
remainTimeToLive
in interface RExpirable
public io.netty.util.concurrent.Future<Long> remainTimeToLiveAsync()
RExpirableAsync
remainTimeToLiveAsync
in interface RExpirableAsync
-1
if object does not exist or time in secondsprotected <V> V get(io.netty.util.concurrent.Future<V> future)
protected <V> io.netty.util.concurrent.Promise<V> newPromise()
protected <V> io.netty.util.concurrent.Future<V> newSucceededFuture(V result)
public void rename(String newName)
RObject
newName
public io.netty.util.concurrent.Future<Void> renameAsync(String newName)
RObjectAsync
newName
in async moderenameAsync
in interface RObjectAsync
public void migrate(String host, int port, int database)
RObject
public io.netty.util.concurrent.Future<Void> migrateAsync(String host, int port, int database)
RObjectAsync
migrateAsync
in interface RObjectAsync
host
- - destination hostport
- - destination portdatabase
- - destination databasepublic boolean move(int database)
RObject
public io.netty.util.concurrent.Future<Boolean> moveAsync(int database)
RObjectAsync
moveAsync
in interface RObjectAsync
true
if key was moved false
if notpublic boolean renamenx(String newName)
RObject
newName
only if new key is not existspublic io.netty.util.concurrent.Future<Boolean> renamenxAsync(String newName)
RObjectAsync
newName
in async mode only if new key is not existsrenamenxAsync
in interface RObjectAsync
public boolean delete()
RObject
public boolean isExists()
RObject
public io.netty.util.concurrent.Future<Boolean> isExistsAsync()
RObjectAsync
isExistsAsync
in interface RObjectAsync
true
if object exists and false
otherwiseCopyright © 2014–2015. All rights reserved.