V
- valuepublic class RedissonSetCache<V> extends Object implements RSetCache<V>
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
.
Constructor and Description |
---|
RedissonSetCache(Codec codec,
EvictionScheduler evictionScheduler,
CommandAsyncExecutor commandExecutor,
String name) |
RedissonSetCache(EvictionScheduler evictionScheduler,
CommandAsyncExecutor commandExecutor,
String name) |
Modifier and Type | Method and Description |
---|---|
boolean |
add(V e) |
boolean |
add(V value,
long ttl,
TimeUnit unit)
Stores value with specified time to live.
|
boolean |
addAll(Collection<? extends V> c) |
RFuture<Boolean> |
addAllAsync(Collection<? extends V> c) |
RFuture<Boolean> |
addAsync(V value) |
RFuture<Boolean> |
addAsync(V value,
long ttl,
TimeUnit unit)
Stores value with specified time to live.
|
protected boolean |
await(RFuture<?> future,
long timeout,
TimeUnit timeoutUnit) |
void |
clear() |
boolean |
clearExpire()
Clear an expire timeout or expire date for object.
|
RFuture<Boolean> |
clearExpireAsync()
Clear an expire timeout or expire date for object in async mode.
|
boolean |
contains(Object o) |
boolean |
containsAll(Collection<?> c) |
RFuture<Boolean> |
containsAllAsync(Collection<?> c)
Returns true if this collection contains all of the elements
in the specified collection.
|
RFuture<Boolean> |
containsAsync(Object o)
Returns true if this collection contains the specified element.
|
boolean |
delete()
Deletes the object
|
RFuture<Boolean> |
deleteAsync()
Delete object in async mode
|
protected byte[] |
encode(Object value) |
protected byte[] |
encodeMapKey(Object value) |
protected byte[] |
encodeMapValue(Object value) |
boolean |
expire(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object.
|
RFuture<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.
|
RFuture<Boolean> |
expireAtAsync(Date timestamp)
Set an expire date for object in async mode.
|
RFuture<Boolean> |
expireAtAsync(long timestamp)
Set an expire date for object in async mode.
|
protected <V> V |
get(RFuture<V> future) |
Codec |
getCodec()
Returns the underlying Codec used by this RObject
|
String |
getName()
Returns name of object
|
boolean |
isEmpty() |
boolean |
isExists()
Check object existence
|
RFuture<Boolean> |
isExistsAsync()
Check object existence in async mode.
|
Iterator<V> |
iterator() |
void |
migrate(String host,
int port,
int database)
Transfer an object from source Redis instance to destination Redis instance
|
RFuture<Void> |
migrateAsync(String host,
int port,
int database)
Transfer an object from source Redis instance to destination Redis instance
in async mode
|
boolean |
move(int database)
Move object to another database
|
RFuture<Boolean> |
moveAsync(int database)
Move object to another database in async mode
|
protected <V> RPromise<V> |
newPromise() |
protected <V> RFuture<V> |
newSucceededFuture(V result) |
Set<V> |
readAll()
Read all elements at once
|
RFuture<Set<V>> |
readAllAsync()
Read all elements at once
|
long |
remainTimeToLive()
Remaining time to live of Redisson object that has a timeout
|
RFuture<Long> |
remainTimeToLiveAsync()
Get remaining time to live of object in seconds.
|
boolean |
remove(Object value) |
boolean |
removeAll(Collection<?> c) |
RFuture<Boolean> |
removeAllAsync(Collection<?> c)
Removes all of this collection's elements that are also contained in the
specified collection (optional operation).
|
RFuture<Boolean> |
removeAsync(Object o)
Removes a single instance of the specified element from this
collection, if it is present (optional operation).
|
void |
rename(String newName)
Rename current object key to
newName |
RFuture<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 |
RFuture<Boolean> |
renamenxAsync(String newName)
Rename current object key to
newName
in async mode only if new key is not exists |
boolean |
retainAll(Collection<?> c) |
RFuture<Boolean> |
retainAllAsync(Collection<?> c)
Retains only the elements in this collection that are contained in the
specified collection (optional operation).
|
RFuture<ListScanResult<V>> |
scanIteratorAsync(InetSocketAddress client,
long startPos) |
int |
size()
Returns the number of elements in cache.
|
RFuture<Integer> |
sizeAsync()
Returns the number of elements in cache.
|
Object[] |
toArray() |
<T> T[] |
toArray(T[] a) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
equals, hashCode, spliterator
parallelStream, removeIf, stream
clearExpire, expire, expireAt, expireAt, remainTimeToLive
delete, getCodec, getName, isExists, migrate, move, rename, renamenx
clearExpireAsync, expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsync
deleteAsync, isExistsAsync, migrateAsync, moveAsync, renameAsync, renamenxAsync
public RedissonSetCache(EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name)
public RedissonSetCache(Codec codec, EvictionScheduler evictionScheduler, CommandAsyncExecutor commandExecutor, String name)
public int size()
RSetCache
public RFuture<Integer> sizeAsync()
RSetCacheAsync
sizeAsync
in interface RCollectionAsync<V>
sizeAsync
in interface RSetCacheAsync<V>
public boolean isEmpty()
public boolean contains(Object o)
public RFuture<Boolean> containsAsync(Object o)
RCollectionAsync
containsAsync
in interface RCollectionAsync<V>
o
- element whose presence in this collection is to be testedpublic RFuture<ListScanResult<V>> scanIteratorAsync(InetSocketAddress client, long startPos)
public Set<V> readAll()
RSetCache
public RFuture<Set<V>> readAllAsync()
RSetCacheAsync
readAllAsync
in interface RSetCacheAsync<V>
public Object[] toArray()
public <T> T[] toArray(T[] a)
public boolean add(V e)
public boolean add(V value, long ttl, TimeUnit unit)
RSetCache
public RFuture<Boolean> addAsync(V value, long ttl, TimeUnit unit)
RSetCacheAsync
addAsync
in interface RSetCacheAsync<V>
value
- to addttl
- - time to live for key\value entry.
If 0
then stores infinitely.unit
- - time unittrue
if value has been added. false
if value already been in collection.public RFuture<Boolean> addAsync(V value)
addAsync
in interface RCollectionAsync<V>
public RFuture<Boolean> removeAsync(Object o)
RCollectionAsync
removeAsync
in interface RCollectionAsync<V>
o
- element to be removed from this collection, if presentpublic boolean remove(Object value)
public boolean containsAll(Collection<?> c)
containsAll
in interface Collection<V>
containsAll
in interface Set<V>
public RFuture<Boolean> containsAllAsync(Collection<?> c)
RCollectionAsync
containsAllAsync
in interface RCollectionAsync<V>
c
- collection to be checked for containment in this collectionpublic boolean addAll(Collection<? extends V> c)
public RFuture<Boolean> addAllAsync(Collection<? extends V> c)
addAllAsync
in interface RCollectionAsync<V>
public boolean retainAll(Collection<?> c)
public RFuture<Boolean> retainAllAsync(Collection<?> c)
RCollectionAsync
retainAllAsync
in interface RCollectionAsync<V>
c
- collection containing elements to be retained in this collectionpublic RFuture<Boolean> removeAllAsync(Collection<?> c)
RCollectionAsync
removeAllAsync
in interface RCollectionAsync<V>
c
- collection containing elements to be removed from this collectionpublic boolean removeAll(Collection<?> c)
public void clear()
public 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 RFuture<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 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 RFuture<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 boolean expireAt(Date timestamp)
RExpirable
expireAt
in interface RExpirable
timestamp
- - expire datetrue
if the timeout was set and false
if notpublic RFuture<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 RFuture<Boolean> clearExpireAsync()
RExpirableAsync
clearExpireAsync
in interface RExpirableAsync
true
if the timeout was cleared and false
if notpublic long remainTimeToLive()
RExpirable
remainTimeToLive
in interface RExpirable
public RFuture<Long> remainTimeToLiveAsync()
RExpirableAsync
remainTimeToLiveAsync
in interface RExpirableAsync
-1
if object does not exist or time in secondsprotected boolean await(RFuture<?> future, long timeout, TimeUnit timeoutUnit) throws InterruptedException
InterruptedException
protected <V> V get(RFuture<V> future)
protected <V> RPromise<V> newPromise()
protected <V> RFuture<V> newSucceededFuture(V result)
public void rename(String newName)
RObject
newName
public RFuture<Void> renameAsync(String newName)
RObjectAsync
newName
in async moderenameAsync
in interface RObjectAsync
newName
- - new name of objectpublic void migrate(String host, int port, int database)
RObject
public RFuture<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 RFuture<Boolean> moveAsync(int database)
RObjectAsync
moveAsync
in interface RObjectAsync
database
- - number of Redis databasetrue
if key was moved false
if notpublic boolean renamenx(String newName)
RObject
newName
only if new key is not existspublic RFuture<Boolean> renamenxAsync(String newName)
RObjectAsync
newName
in async mode only if new key is not existsrenamenxAsync
in interface RObjectAsync
newName
- - new name of objecttrue
if object has been renamed successfully and false
otherwisepublic boolean delete()
RObject
public RFuture<Boolean> deleteAsync()
RObjectAsync
deleteAsync
in interface RObjectAsync
true
if object was deleted false
if notpublic boolean isExists()
RObject
public RFuture<Boolean> isExistsAsync()
RObjectAsync
isExistsAsync
in interface RObjectAsync
true
if object exists and false
otherwisepublic Codec getCodec()
RObject
protected byte[] encode(Object value)
protected byte[] encodeMapKey(Object value)
protected byte[] encodeMapValue(Object value)
Copyright © 2014–2016 The Redisson Project. All rights reserved.