K
- keyV
- valuepublic class RedissonSetCacheReactive<V> extends Object implements RSetCacheReactive<V>
Set-based cache with ability to set TTL for each entry via
#put(Object, 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 org.redisson.reactive.RedissonSet
.
Constructor and Description |
---|
RedissonSetCacheReactive(Codec codec,
EvictionScheduler evictionScheduler,
CommandReactiveExecutor commandExecutor,
String name) |
RedissonSetCacheReactive(EvictionScheduler evictionScheduler,
CommandReactiveExecutor commandExecutor,
String name) |
Modifier and Type | Method and Description |
---|---|
org.reactivestreams.Publisher<Long> |
add(V value) |
org.reactivestreams.Publisher<Boolean> |
add(V value,
long ttl,
TimeUnit unit) |
org.reactivestreams.Publisher<Long> |
addAll(Collection<? extends V> c) |
org.reactivestreams.Publisher<Long> |
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
|
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.
|
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)
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(io.netty.util.concurrent.Future<R> future) |
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<Long> |
size()
Returns the number of elements in cache.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
expireAt, remainTimeToLive
public RedissonSetCacheReactive(EvictionScheduler evictionScheduler, CommandReactiveExecutor commandExecutor, String name)
public RedissonSetCacheReactive(Codec codec, EvictionScheduler evictionScheduler, CommandReactiveExecutor commandExecutor, String name)
public org.reactivestreams.Publisher<Long> 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<Long> add(V value)
add
in interface RCollectionReactive<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<Long> 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<Boolean> delete()
RObjectReactive
delete
in interface RObjectReactive
true
if object was deleted false
if notpublic 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> clearExpire()
RExpirableReactive
clearExpire
in interface RExpirableReactive
true
if the timeout was cleared and false
if notpublic org.reactivestreams.Publisher<Long> addAll(org.reactivestreams.Publisher<? extends V> c)
addAll
in interface RCollectionReactive<V>
public 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<Long> remainTimeToLive()
RExpirableReactive
remainTimeToLive
in interface RExpirableReactive
public <R> org.reactivestreams.Publisher<R> reactive(io.netty.util.concurrent.Future<R> future)
protected <V> reactor.rx.Stream<V> newSucceeded(V result)
public String getName()
getName
in interface RObjectReactive
public org.reactivestreams.Publisher<Void> rename(String newName)
RObjectReactive
newName
in moderename
in interface RObjectReactive
public org.reactivestreams.Publisher<Void> migrate(String host, int port, int database)
RObjectReactive
migrate
in interface RObjectReactive
host
- - destination hostport
- - destination portdatabase
- - destination databasepublic org.reactivestreams.Publisher<Boolean> move(int database)
RObjectReactive
move
in interface RObjectReactive
true
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
public org.reactivestreams.Publisher<Boolean> isExists()
RObjectReactive
isExists
in interface RObjectReactive
true
if object exists and false
otherwiseCopyright © 2014–2016. All rights reserved.