V
- valueRCollectionReactive<V>
, RExpirableReactive
, RObjectReactive
, RSetCacheReactive<V>
public class RedissonSetCacheReactive<V> extends Object implements RSetCacheReactive<V>
Set-based cache with ability to set TTL for each entry via
add(Object, long, TimeUnit)
method.
And therefore has an complex lua-scripts inside.
Uses map(value_hash, value) to tie with sorted set which contains expiration record for every value with TTL.
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 hronous.
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 | Description |
---|---|
RedissonSetCacheReactive(Codec codec,
CommandReactiveExecutor commandExecutor,
String name,
RSetCacheAsync<V> instance) |
|
RedissonSetCacheReactive(Codec codec,
EvictionScheduler evictionScheduler,
CommandReactiveExecutor commandExecutor,
String name) |
|
RedissonSetCacheReactive(CommandReactiveExecutor commandExecutor,
String name,
RSetCacheAsync<V> instance) |
|
RedissonSetCacheReactive(EvictionScheduler evictionScheduler,
CommandReactiveExecutor commandExecutor,
String name) |
Modifier and Type | Method | Description |
---|---|---|
org.reactivestreams.Publisher<Integer> |
add(V value) |
|
org.reactivestreams.Publisher<Boolean> |
add(V value,
long ttl,
TimeUnit unit) |
|
org.reactivestreams.Publisher<Integer> |
addAll(Collection<? extends V> c) |
|
org.reactivestreams.Publisher<Integer> |
addAll(org.reactivestreams.Publisher<? extends V> c) |
|
org.reactivestreams.Publisher<Boolean> |
clearExpire() |
Clear an expire timeout or expire date for object in mode.
|
org.reactivestreams.Publisher<Boolean> |
contains(Object o) |
|
org.reactivestreams.Publisher<Boolean> |
containsAll(Collection<?> c) |
|
org.reactivestreams.Publisher<Void> |
copy(String host,
int port,
int database,
long timeout) |
Copy object from source Redis instance to destination Redis instance
|
org.reactivestreams.Publisher<Boolean> |
delete() |
Delete object in mode
|
org.reactivestreams.Publisher<byte[]> |
dump() |
Returns dump of object
|
protected io.netty.buffer.ByteBuf |
encode(Object value) |
|
protected void |
encode(Collection<Object> params,
Collection<?> values) |
|
protected io.netty.buffer.ByteBuf |
encodeMapKey(Object value) |
|
protected io.netty.buffer.ByteBuf |
encodeMapValue(Object value) |
|
org.reactivestreams.Publisher<Boolean> |
expire(long timeToLive,
TimeUnit timeUnit) |
Set a timeout for object in mode.
|
org.reactivestreams.Publisher<Boolean> |
expireAt(long timestamp) |
Set an expire date for object in mode.
|
org.reactivestreams.Publisher<Boolean> |
expireAt(Date timestamp) |
Set an expire date for object in mode.
|
Codec |
getCodec() |
|
String |
getName() |
|
org.reactivestreams.Publisher<Boolean> |
isExists() |
Check object existence
|
org.reactivestreams.Publisher<V> |
iterator() |
|
org.reactivestreams.Publisher<Void> |
migrate(String host,
int port,
int database,
long timeout) |
Transfer a object from a source Redis instance to a destination Redis instance
in mode
|
org.reactivestreams.Publisher<Boolean> |
move(int database) |
Move object to another database in mode
|
protected <V> reactor.rx.Stream<V> |
newSucceeded(V result) |
|
<R> org.reactivestreams.Publisher<R> |
reactive(reactor.fn.Supplier<RFuture<R>> supplier) |
|
org.reactivestreams.Publisher<Set<V>> |
readAll() |
Read all elements at once
|
org.reactivestreams.Publisher<Long> |
remainTimeToLive() |
Get remaining time to live of object in milliseconds.
|
org.reactivestreams.Publisher<Boolean> |
remove(Object o) |
|
org.reactivestreams.Publisher<Boolean> |
removeAll(Collection<?> c) |
|
org.reactivestreams.Publisher<Void> |
rename(String newName) |
Rename current object key to
newName
in mode |
org.reactivestreams.Publisher<Boolean> |
renamenx(String newName) |
Rename current object key to
newName
in mode only if new key is not exists |
org.reactivestreams.Publisher<Void> |
restore(byte[] state) |
Restores object using its state returned by
RObjectReactive.dump() method. |
org.reactivestreams.Publisher<Void> |
restore(byte[] state,
long timeToLive,
TimeUnit timeUnit) |
Restores object using its state returned by
RObjectReactive.dump() method and set time to live for it. |
org.reactivestreams.Publisher<Void> |
restoreAndReplace(byte[] state) |
Restores and replaces object if it already exists.
|
org.reactivestreams.Publisher<Void> |
restoreAndReplace(byte[] state,
long timeToLive,
TimeUnit timeUnit) |
Restores and replaces object if it already exists and set time to live for it.
|
org.reactivestreams.Publisher<Boolean> |
retainAll(Collection<?> c) |
|
org.reactivestreams.Publisher<Integer> |
size() |
Returns the number of elements in cache.
|
org.reactivestreams.Publisher<Boolean> |
touch() |
Update the last access time of an object.
|
org.reactivestreams.Publisher<Boolean> |
unlink() |
Delete the objects.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clearExpire, expire, expireAt, expireAt, remainTimeToLive
public RedissonSetCacheReactive(EvictionScheduler evictionScheduler, CommandReactiveExecutor commandExecutor, String name)
public RedissonSetCacheReactive(CommandReactiveExecutor commandExecutor, String name, RSetCacheAsync<V> instance)
public RedissonSetCacheReactive(Codec codec, EvictionScheduler evictionScheduler, CommandReactiveExecutor commandExecutor, String name)
public RedissonSetCacheReactive(Codec codec, CommandReactiveExecutor commandExecutor, String name, RSetCacheAsync<V> instance)
public org.reactivestreams.Publisher<Integer> size()
RSetCacheReactive
size
in interface RCollectionReactive<V>
size
in interface RSetCacheReactive<V>
public org.reactivestreams.Publisher<Boolean> contains(Object o)
contains
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<V> iterator()
iterator
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Boolean> add(V value, long ttl, TimeUnit unit)
add
in interface RSetCacheReactive<V>
public org.reactivestreams.Publisher<Integer> add(V value)
add
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Set<V>> readAll()
RSetCacheReactive
readAll
in interface RSetCacheReactive<V>
public org.reactivestreams.Publisher<Boolean> remove(Object o)
remove
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Boolean> containsAll(Collection<?> c)
containsAll
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Integer> addAll(Collection<? extends V> c)
addAll
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Boolean> retainAll(Collection<?> c)
retainAll
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Boolean> removeAll(Collection<?> c)
removeAll
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Integer> addAll(org.reactivestreams.Publisher<? extends V> c)
addAll
in interface RCollectionReactive<V>
public org.reactivestreams.Publisher<Boolean> expire(long timeToLive, TimeUnit timeUnit)
RExpirableReactive
expire
in interface RExpirableReactive
timeToLive
- - timeout before object will be deletedtimeUnit
- - timeout time unittrue
if the timeout was set and false
if notpublic org.reactivestreams.Publisher<Boolean> expireAt(long timestamp)
RExpirableReactive
expireAt
in interface RExpirableReactive
timestamp
- - expire date in milliseconds (Unix timestamp)true
if the timeout was set and false
if notpublic org.reactivestreams.Publisher<Boolean> expireAt(Date timestamp)
RExpirableReactive
expireAt
in interface RExpirableReactive
timestamp
- - expire datetrue
if the timeout was set and false
if notpublic org.reactivestreams.Publisher<Boolean> clearExpire()
RExpirableReactive
clearExpire
in interface RExpirableReactive
true
if the timeout was cleared and false
if notpublic org.reactivestreams.Publisher<Long> remainTimeToLive()
RExpirableReactive
remainTimeToLive
in interface RExpirableReactive
public <R> org.reactivestreams.Publisher<R> reactive(reactor.fn.Supplier<RFuture<R>> supplier)
protected <V> reactor.rx.Stream<V> newSucceeded(V result)
public String getName()
getName
in interface RObjectReactive
public Codec getCodec()
getCodec
in interface RObjectReactive
protected void encode(Collection<Object> params, Collection<?> values)
protected io.netty.buffer.ByteBuf encode(Object value)
protected io.netty.buffer.ByteBuf encodeMapKey(Object value)
protected io.netty.buffer.ByteBuf encodeMapValue(Object value)
public org.reactivestreams.Publisher<Void> restore(byte[] state)
RObjectReactive
RObjectReactive.dump()
method.restore
in interface RObjectReactive
state
- - state of objectpublic org.reactivestreams.Publisher<Void> restore(byte[] state, long timeToLive, TimeUnit timeUnit)
RObjectReactive
RObjectReactive.dump()
method and set time to live for it.restore
in interface RObjectReactive
state
- - state of objecttimeToLive
- - time to live of the objecttimeUnit
- - time unitpublic org.reactivestreams.Publisher<Void> restoreAndReplace(byte[] state)
RObjectReactive
restoreAndReplace
in interface RObjectReactive
state
- - state of the objectpublic org.reactivestreams.Publisher<Void> restoreAndReplace(byte[] state, long timeToLive, TimeUnit timeUnit)
RObjectReactive
restoreAndReplace
in interface RObjectReactive
state
- - state of the objecttimeToLive
- - time to live of the objecttimeUnit
- - time unitpublic org.reactivestreams.Publisher<byte[]> dump()
RObjectReactive
dump
in interface RObjectReactive
public org.reactivestreams.Publisher<Boolean> touch()
RObjectReactive
touch
in interface RObjectReactive
true
if object was touched else false
public org.reactivestreams.Publisher<Boolean> unlink()
RObjectReactive
Requires Redis 4.0+
unlink
in interface RObjectReactive
true
if it was exist and deleted else false
public org.reactivestreams.Publisher<Void> copy(String host, int port, int database, long timeout)
RObjectReactive
copy
in interface RObjectReactive
host
- - destination hostport
- - destination portdatabase
- - destination databasetimeout
- - maximum idle time in any moment of the communication with the destination instance in millisecondspublic org.reactivestreams.Publisher<Void> rename(String newName)
RObjectReactive
newName
in moderename
in interface RObjectReactive
newName
- - new name of objectpublic org.reactivestreams.Publisher<Void> migrate(String host, int port, int database, long timeout)
RObjectReactive
migrate
in interface RObjectReactive
host
- - destination hostport
- - destination portdatabase
- - destination databasetimeout
- - maximum idle time in any moment of the communication with the destination instance in millisecondspublic org.reactivestreams.Publisher<Boolean> move(int database)
RObjectReactive
move
in interface RObjectReactive
database
- - number of Redis databasetrue
if key was moved false
if notpublic org.reactivestreams.Publisher<Boolean> renamenx(String newName)
RObjectReactive
newName
in mode only if new key is not existsrenamenx
in interface RObjectReactive
newName
- - new name of objecttrue
if object has been renamed successfully and false
otherwisepublic org.reactivestreams.Publisher<Boolean> delete()
RObjectReactive
delete
in interface RObjectReactive
true
if object was deleted false
if notpublic org.reactivestreams.Publisher<Boolean> isExists()
RObjectReactive
isExists
in interface RObjectReactive
true
if object exists and false
otherwiseCopyright © 2014–2018 The Redisson Project. All rights reserved.