Interface RBucketAsync<V>

Type Parameters:
V - - the type of object
All Superinterfaces:
RExpirableAsync, RObjectAsync
All Known Subinterfaces:
RBinaryStream, RBucket<V>
All Known Implementing Classes:
RedissonBinaryStream, RedissonBucket, RedissonTransactionalBucket

public interface RBucketAsync<V> extends RExpirableAsync
Async implementation of object holder. Max size of object is 512MB
Author:
Nikita Koksharov
  • Method Details

    • sizeAsync

      RFuture<Long> sizeAsync()
      Returns size of object in bytes
      Returns:
      object size
    • getAsync

      RFuture<V> getAsync()
      Retrieves element stored in the holder.
      Returns:
      element
    • getAndDeleteAsync

      RFuture<V> getAndDeleteAsync()
      Retrieves element in the holder and removes it.
      Returns:
      element
    • trySetAsync

      RFuture<Boolean> trySetAsync(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
    • trySetAsync

      RFuture<Boolean> trySetAsync(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
    • setIfExistsAsync

      RFuture<Boolean> setIfExistsAsync(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
    • setIfExistsAsync

      RFuture<Boolean> setIfExistsAsync(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
    • compareAndSetAsync

      RFuture<Boolean> compareAndSetAsync(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.
    • getAndSetAsync

      RFuture<V> getAndSetAsync(V newValue)
      Retrieves current element in the holder and replaces it with newValue.
      Parameters:
      newValue - - value to set
      Returns:
      previous value
    • getAndSetAsync

      RFuture<V> getAndSetAsync(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
    • getAndExpireAsync

      RFuture<V> getAndExpireAsync(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
    • getAndExpireAsync

      RFuture<V> getAndExpireAsync(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
    • getAndClearExpireAsync

      RFuture<V> getAndClearExpireAsync()
      Retrieves current element in the holder and clears expiration date set before.

      Requires Redis 6.2.0 and higher.

      Returns:
      element
    • setAsync

      RFuture<Void> setAsync(V value)
      Stores element into the holder.
      Parameters:
      value - - value to set
      Returns:
      void
    • setAsync

      RFuture<Void> setAsync(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
    • setAndKeepTTLAsync

      RFuture<Void> setAndKeepTTLAsync(V value)
      Set value and keep existing TTL.

      Requires Redis 6.0.0 and higher.

      Parameters:
      value - - value to set
      Returns:
      void
    • addListenerAsync

      RFuture<Integer> addListenerAsync(ObjectListener listener)
      Adds object event listener
      Specified by:
      addListenerAsync in interface RObjectAsync
      Parameters:
      listener - - object event listener
      Returns:
      listener id
      See Also: