V - valuepublic 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 and 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 and 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<Boolean> |
delete()
Delete object in mode
|
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) |
org.reactivestreams.Publisher<Boolean> |
expire(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object in mode.
|
org.reactivestreams.Publisher<Boolean> |
expireAt(Date timestamp)
Set an expire date for object in mode.
|
org.reactivestreams.Publisher<Boolean> |
expireAt(long 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.core.publisher.Mono<V> |
newSucceeded(V result) |
<R> org.reactivestreams.Publisher<R> |
reactive(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<Boolean> |
retainAll(Collection<?> c) |
org.reactivestreams.Publisher<Integer> |
size()
Returns the number of elements in cache.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclearExpire, expire, expireAt, expireAt, remainTimeToLivepublic 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()
RSetCacheReactivesize 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()
RSetCacheReactivereadAll 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)
RExpirableReactiveexpire in interface RExpirableReactivetimeToLive - - 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)
RExpirableReactiveexpireAt in interface RExpirableReactivetimestamp - - expire date in milliseconds (Unix timestamp)true if the timeout was set and false if notpublic org.reactivestreams.Publisher<Boolean> expireAt(Date timestamp)
RExpirableReactiveexpireAt in interface RExpirableReactivetimestamp - - expire datetrue if the timeout was set and false if notpublic org.reactivestreams.Publisher<Boolean> clearExpire()
RExpirableReactiveclearExpire in interface RExpirableReactivetrue if the timeout was cleared and false if notpublic org.reactivestreams.Publisher<Long> remainTimeToLive()
RExpirableReactiveremainTimeToLive in interface RExpirableReactiveprotected <V> reactor.core.publisher.Mono<V> newSucceeded(V result)
public String getName()
getName in interface RObjectReactivepublic Codec getCodec()
getCodec in interface RObjectReactiveprotected 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> rename(String newName)
RObjectReactivenewName
in moderename in interface RObjectReactivenewName - - new name of objectpublic org.reactivestreams.Publisher<Void> migrate(String host, int port, int database, long timeout)
RObjectReactivemigrate in interface RObjectReactivehost - - 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)
RObjectReactivemove in interface RObjectReactivedatabase - - number of Redis databasetrue if key was moved false if notpublic org.reactivestreams.Publisher<Boolean> renamenx(String newName)
RObjectReactivenewName
in mode only if new key is not existsrenamenx in interface RObjectReactivenewName - - new name of objecttrue if object has been renamed successfully and false otherwisepublic org.reactivestreams.Publisher<Boolean> delete()
RObjectReactivedelete in interface RObjectReactivetrue if object was deleted false if notpublic org.reactivestreams.Publisher<Boolean> isExists()
RObjectReactiveisExists in interface RObjectReactivetrue if object exists and false otherwiseCopyright © 2014–2018 The Redisson Project. All rights reserved.