Interface RBucketReactive<V>

Type Parameters:
V - - the type of object
All Superinterfaces:
RExpirableReactive, RObjectReactive
All Known Subinterfaces:
RBinaryStreamReactive, RJsonBucketReactive<V>

public interface RBucketReactive<V> extends RExpirableReactive
Reactive implementation of object holder. Max size of object is 512MB
Author:
Nikita Koksharov
  • Method Details

    • size

      reactor.core.publisher.Mono<Long> size()
      Returns size of object in bytes
      Returns:
      object size
    • trySet

      reactor.core.publisher.Mono<Boolean> trySet(V value)
      Tries to set element atomically into empty holder.
      Parameters:
      value - - value to set
      Returns:
      true if successful, or false if element was already set
    • trySet

      reactor.core.publisher.Mono<Boolean> trySet(V value, long timeToLive, TimeUnit timeUnit)
      Tries to set element atomically into empty holder with defined timeToLive interval.
      Parameters:
      value - - value to set
      timeToLive - - time to live interval
      timeUnit - - unit of time to live interval
      Returns:
      true if successful, or false if element was already set
    • setIfExists

      reactor.core.publisher.Mono<Boolean> setIfExists(V value)
      Sets value only if it's already exists.
      Parameters:
      value - - value to set
      Returns:
      true if successful, or false if element wasn't set
    • setIfExists

      reactor.core.publisher.Mono<Boolean> setIfExists(V value, long timeToLive, TimeUnit timeUnit)
      Sets value only if it's already exists.
      Parameters:
      value - - value to set
      timeToLive - - time to live interval
      timeUnit - - unit of time to live interval
      Returns:
      true if successful, or false if element wasn't set
    • compareAndSet

      reactor.core.publisher.Mono<Boolean> compareAndSet(V expect, V update)
      Atomically sets the value to the given updated value only if serialized state of the current value equals to serialized state of the expected value.
      Parameters:
      expect - the expected value
      update - the new value
      Returns:
      true if successful; or false if the actual value was not equal to the expected value.
    • getAndSet

      reactor.core.publisher.Mono<V> getAndSet(V newValue)
      Retrieves current element in the holder and replaces it with newValue.
      Parameters:
      newValue - - value to set
      Returns:
      previous value
    • getAndSet

      reactor.core.publisher.Mono<V> getAndSet(V value, long timeToLive, TimeUnit timeUnit)
      Retrieves current element in the holder and replaces it with newValue with defined timeToLive interval.
      Parameters:
      value - - value to set
      timeToLive - - time to live interval
      timeUnit - - unit of time to live interval
      Returns:
      previous value
    • getAndExpire

      reactor.core.publisher.Mono<V> getAndExpire(Duration duration)
      Retrieves current element in the holder and sets an expiration duration for it.

      Requires Redis 6.2.0 and higher.

      Parameters:
      duration - of object time to live interval
      Returns:
      element
    • getAndExpire

      reactor.core.publisher.Mono<V> getAndExpire(Instant time)
      Retrieves current element in the holder and sets an expiration date for it.

      Requires Redis 6.2.0 and higher.

      Parameters:
      time - of exact object expiration moment
      Returns:
      element
    • getAndClearExpire

      reactor.core.publisher.Mono<V> getAndClearExpire()
      Retrieves current element in the holder and clears expiration date set before.

      Requires Redis 6.2.0 and higher.

      Returns:
      element
    • get

      reactor.core.publisher.Mono<V> get()
      Retrieves element stored in the holder.
      Returns:
      element
    • getAndDelete

      reactor.core.publisher.Mono<V> getAndDelete()
      Retrieves element in the holder and removes it.
      Returns:
      element
    • set

      reactor.core.publisher.Mono<Void> set(V value)
      Stores element into the holder.
      Parameters:
      value - - value to set
      Returns:
      void
    • set

      reactor.core.publisher.Mono<Void> set(V value, long timeToLive, TimeUnit timeUnit)
      Stores element into the holder with defined timeToLive interval.
      Parameters:
      value - - value to set
      timeToLive - - time to live interval
      timeUnit - - unit of time to live interval
      Returns:
      void
    • setAndKeepTTL

      reactor.core.publisher.Mono<Void> setAndKeepTTL(V value)
      Set value and keep existing TTL.

      Requires Redis 6.0.0 and higher.

      Parameters:
      value - - value to set
      Returns:
      void