Package org.redisson

Class RedissonKeys

java.lang.Object
org.redisson.RedissonKeys
All Implemented Interfaces:
RKeys, RKeysAsync

public class RedissonKeys extends Object implements RKeys
Author:
Nikita Koksharov
  • Constructor Details

  • Method Details

    • getCommandExecutor

      public CommandAsyncExecutor getCommandExecutor()
    • getConnectionManager

      public ConnectionManager getConnectionManager()
    • getType

      public RType getType(String key)
      Description copied from interface: RKeys
      Get Redis object type by key
      Specified by:
      getType in interface RKeys
      Parameters:
      key - - name of key
      Returns:
      type of key
    • getTypeAsync

      public RFuture<RType> getTypeAsync(String key)
      Description copied from interface: RKeysAsync
      Get Redis object type by key
      Specified by:
      getTypeAsync in interface RKeysAsync
      Parameters:
      key - - name of key
      Returns:
      type of key
    • getSlot

      public int getSlot(String key)
      Description copied from interface: RKeys
      Get hash slot identifier for key. Available for cluster nodes only
      Specified by:
      getSlot in interface RKeys
      Parameters:
      key - - name of key
      Returns:
      slot number
    • getSlotAsync

      public RFuture<Integer> getSlotAsync(String key)
      Description copied from interface: RKeysAsync
      Get hash slot identifier for key in async mode. Available for cluster nodes only
      Specified by:
      getSlotAsync in interface RKeysAsync
      Parameters:
      key - - name of key
      Returns:
      slot
    • getKeysByPattern

      public Iterable<String> getKeysByPattern(String pattern)
      Description copied from interface: RKeys
      Get all keys by pattern using iterator. Keys traversed with SCAN operation. Each SCAN operation loads up to 10 keys per request.

      Supported glob-style patterns:

      h?llo subscribes to hello, hallo and hxllo

      h*llo subscribes to hllo and heeeello

      h[ae]llo subscribes to hello and hallo, but not hillo

      Specified by:
      getKeysByPattern in interface RKeys
      Parameters:
      pattern - - match pattern
      Returns:
      Iterable object
    • getKeysByPattern

      public Iterable<String> getKeysByPattern(String pattern, int count)
      Description copied from interface: RKeys
      Get all keys by pattern using iterator. Keys traversed with SCAN operation. Each SCAN operation loads up to count keys per request.

      Supported glob-style patterns:

      h?llo subscribes to hello, hallo and hxllo

      h*llo subscribes to hllo and heeeello

      h[ae]llo subscribes to hello and hallo, but not hillo

      Specified by:
      getKeysByPattern in interface RKeys
      Parameters:
      pattern - - match pattern
      count - - keys loaded per request to Redis
      Returns:
      Iterable object
    • getKeysByPattern

      public <T> Iterable<T> getKeysByPattern(RedisCommand<?> command, String pattern, int limit, int count)
    • getKeysWithLimit

      public Iterable<String> getKeysWithLimit(int limit)
      Description copied from interface: RKeys
      Get keys using iterator with defined limit. Keys are traversed with SCAN operation.
      Specified by:
      getKeysWithLimit in interface RKeys
      Parameters:
      limit - - limit of keys amount
      Returns:
      Iterable object
    • getKeysWithLimit

      public Iterable<String> getKeysWithLimit(String pattern, int limit)
      Description copied from interface: RKeys
      Get keys using iterator with defined limit. Keys are traversed with SCAN operation.

      Supported glob-style patterns:

      h?llo subscribes to hello, hallo and hxllo

      h*llo subscribes to hllo and heeeello

      h[ae]llo subscribes to hello and hallo, but not hillo

      Specified by:
      getKeysWithLimit in interface RKeys
      Parameters:
      pattern - - match pattern
      limit - - limit of keys amount
      Returns:
      Iterable object
    • getKeys

      public Iterable<String> getKeys()
      Description copied from interface: RKeys
      Get all keys using iterator. Keys traversing with SCAN operation. Each SCAN operation loads up to 10 keys per request.
      Specified by:
      getKeys in interface RKeys
      Returns:
      Iterable object
    • getKeys

      public Iterable<String> getKeys(int count)
      Description copied from interface: RKeys
      Get all keys using iterator. Keys traversing with SCAN operation. Each SCAN operation loads up to count keys per request.
      Specified by:
      getKeys in interface RKeys
      Parameters:
      count - - keys loaded per request to Redis
      Returns:
      Iterable object
    • scanIteratorAsync

      public RFuture<ScanResult<Object>> scanIteratorAsync(RedisClient client, MasterSlaveEntry entry, long startPos, String pattern, int count)
    • touch

      public long touch(String... names)
      Description copied from interface: RKeys
      Update the last access time of an object.
      Specified by:
      touch in interface RKeys
      Parameters:
      names - of keys
      Returns:
      count of objects were touched
    • touchAsync

      public RFuture<Long> touchAsync(String... names)
      Description copied from interface: RKeysAsync
      Update the last access time of an object.
      Specified by:
      touchAsync in interface RKeysAsync
      Parameters:
      names - of keys
      Returns:
      count of objects were touched
    • countExists

      public long countExists(String... names)
      Description copied from interface: RKeys
      Checks if provided keys exist
      Specified by:
      countExists in interface RKeys
      Parameters:
      names - of keys
      Returns:
      amount of existing keys
    • countExistsAsync

      public RFuture<Long> countExistsAsync(String... names)
      Description copied from interface: RKeysAsync
      Checks if provided keys exist
      Specified by:
      countExistsAsync in interface RKeysAsync
      Parameters:
      names - of keys
      Returns:
      amount of existing keys
    • randomKey

      public String randomKey()
      Description copied from interface: RKeys
      Get random key
      Specified by:
      randomKey in interface RKeys
      Returns:
      random key
    • randomKeyAsync

      public RFuture<String> randomKeyAsync()
      Description copied from interface: RKeysAsync
      Get random key in async mode
      Specified by:
      randomKeyAsync in interface RKeysAsync
      Returns:
      random key
    • deleteByPattern

      public long deleteByPattern(String pattern)
      Description copied from interface: RKeys
      Delete multiple objects by a key pattern.

      Method executes in NON atomic way in cluster mode due to lua script limitations.

      Supported glob-style patterns: h?llo subscribes to hello, hallo and hxllo h*llo subscribes to hllo and heeeello h[ae]llo subscribes to hello and hallo, but not hillo

      Specified by:
      deleteByPattern in interface RKeys
      Parameters:
      pattern - - match pattern
      Returns:
      number of removed keys
    • deleteByPatternAsync

      public RFuture<Long> deleteByPatternAsync(String pattern)
      Description copied from interface: RKeysAsync
      Delete multiple objects by a key pattern.

      Method executes in NON atomic way in cluster mode due to lua script limitations.

      Supported glob-style patterns: h?llo subscribes to hello, hallo and hxllo h*llo subscribes to hllo and heeeello h[ae]llo subscribes to hello and hallo, but not hillo

      Specified by:
      deleteByPatternAsync in interface RKeysAsync
      Parameters:
      pattern - - match pattern
      Returns:
      number of removed keys
    • delete

      public long delete(String... keys)
      Description copied from interface: RKeys
      Delete multiple objects by name
      Specified by:
      delete in interface RKeys
      Parameters:
      keys - - object names
      Returns:
      number of removed keys
    • delete

      public long delete(RObject... objects)
      Description copied from interface: RKeys
      Delete multiple objects
      Specified by:
      delete in interface RKeys
      Parameters:
      objects - of Redisson
      Returns:
      number of removed keys
    • deleteAsync

      public RFuture<Long> deleteAsync(RObject... objects)
      Description copied from interface: RKeysAsync
      Delete multiple objects
      Specified by:
      deleteAsync in interface RKeysAsync
      Parameters:
      objects - of Redisson
      Returns:
      number of removed keys
    • unlink

      public long unlink(String... keys)
      Description copied from interface: RKeys
      Delete multiple objects by name. Actual removal will happen later asynchronously.

      Requires Redis 4.0+

      Specified by:
      unlink in interface RKeys
      Parameters:
      keys - of objects
      Returns:
      number of removed keys
    • unlinkAsync

      public RFuture<Long> unlinkAsync(String... keys)
      Description copied from interface: RKeysAsync
      Delete multiple objects by name. Actual removal will happen later asynchronously.

      Requires Redis 4.0+

      Specified by:
      unlinkAsync in interface RKeysAsync
      Parameters:
      keys - - object names
      Returns:
      number of removed keys
    • deleteAsync

      public RFuture<Long> deleteAsync(String... keys)
      Description copied from interface: RKeysAsync
      Delete multiple objects by name
      Specified by:
      deleteAsync in interface RKeysAsync
      Parameters:
      keys - - object names
      Returns:
      number of removed keys
    • count

      public long count()
      Description copied from interface: RKeys
      Returns the number of keys in the currently-selected database
      Specified by:
      count in interface RKeys
      Returns:
      count of keys
    • countAsync

      public RFuture<Long> countAsync()
      Description copied from interface: RKeysAsync
      Returns the number of keys in the currently-selected database in async mode
      Specified by:
      countAsync in interface RKeysAsync
      Returns:
      number of keys
    • flushdbParallel

      public void flushdbParallel()
      Description copied from interface: RKeys
      Delete all keys of currently selected database in background without blocking server.

      Requires Redis 4.0+

      Specified by:
      flushdbParallel in interface RKeys
    • flushdbParallelAsync

      public RFuture<Void> flushdbParallelAsync()
      Description copied from interface: RKeysAsync
      Delete all keys of currently selected database in background without blocking server.

      Requires Redis 4.0+

      Specified by:
      flushdbParallelAsync in interface RKeysAsync
      Returns:
      void
    • flushallParallel

      public void flushallParallel()
      Description copied from interface: RKeys
      Delete all keys of all existing databases in background without blocking server.

      Requires Redis 4.0+

      Specified by:
      flushallParallel in interface RKeys
    • flushallParallelAsync

      public RFuture<Void> flushallParallelAsync()
      Description copied from interface: RKeysAsync
      Delete all keys of all existing databases in background without blocking server.

      Requires Redis 4.0+

      Specified by:
      flushallParallelAsync in interface RKeysAsync
      Returns:
      void
    • flushdb

      public void flushdb()
      Description copied from interface: RKeys
      Delete all keys of currently selected database
      Specified by:
      flushdb in interface RKeys
    • flushdbAsync

      public RFuture<Void> flushdbAsync()
      Description copied from interface: RKeysAsync
      Delete all keys of currently selected database
      Specified by:
      flushdbAsync in interface RKeysAsync
      Returns:
      void
    • flushall

      public void flushall()
      Description copied from interface: RKeys
      Delete all keys of all existing databases
      Specified by:
      flushall in interface RKeys
    • flushallAsync

      public RFuture<Void> flushallAsync()
      Description copied from interface: RKeysAsync
      Delete all keys of all existing databases
      Specified by:
      flushallAsync in interface RKeysAsync
      Returns:
      void
    • remainTimeToLive

      public long remainTimeToLive(String name)
      Description copied from interface: RKeys
      Remaining time to live of Redisson object that has a timeout
      Specified by:
      remainTimeToLive in interface RKeys
      Parameters:
      name - of key
      Returns:
      time in milliseconds -2 if the key does not exist. -1 if the key exists but has no associated expire.
    • remainTimeToLiveAsync

      public RFuture<Long> remainTimeToLiveAsync(String name)
      Description copied from interface: RKeysAsync
      Remaining time to live of Redisson object that has a timeout
      Specified by:
      remainTimeToLiveAsync in interface RKeysAsync
      Parameters:
      name - of key
      Returns:
      time in milliseconds -2 if the key does not exist. -1 if the key exists but has no associated expire.
    • rename

      public void rename(String currentName, String newName)
      Description copied from interface: RKeys
      Rename current object key to newName
      Specified by:
      rename in interface RKeys
      Parameters:
      currentName - - current name of object
      newName - - new name of object
    • renameAsync

      public RFuture<Void> renameAsync(String currentName, String newName)
      Description copied from interface: RKeysAsync
      Rename current object key to newName
      Specified by:
      renameAsync in interface RKeysAsync
      Parameters:
      currentName - - current name of object
      newName - - new name of object
      Returns:
      void
    • renamenx

      public boolean renamenx(String oldName, String newName)
      Description copied from interface: RKeys
      Rename object with oldName to newName only if new key is not exists
      Specified by:
      renamenx in interface RKeys
      Parameters:
      oldName - - old name of object
      newName - - new name of object
      Returns:
      true if object has been renamed successfully and false otherwise
    • renamenxAsync

      public RFuture<Boolean> renamenxAsync(String oldName, String newName)
      Description copied from interface: RKeysAsync
      Rename object with oldName to newName only if new key is not exists
      Specified by:
      renamenxAsync in interface RKeysAsync
      Parameters:
      oldName - - old name of object
      newName - - new name of object
      Returns:
      true if object has been renamed successfully and false otherwise
    • clearExpire

      public boolean clearExpire(String name)
      Description copied from interface: RKeys
      Clear an expire timeout or expire date for object.
      Specified by:
      clearExpire in interface RKeys
      Parameters:
      name - of object
      Returns:
      true if timeout was removed false if object does not exist or does not have an associated timeout
    • clearExpireAsync

      public RFuture<Boolean> clearExpireAsync(String name)
      Description copied from interface: RKeysAsync
      Clear an expire timeout or expire date for object.
      Specified by:
      clearExpireAsync in interface RKeysAsync
      Parameters:
      name - of object
      Returns:
      true if timeout was removed false if object does not exist or does not have an associated timeout
    • expireAt

      public boolean expireAt(String name, long timestamp)
      Description copied from interface: RKeys
      Set an expire date for object. When expire date comes the key will automatically be deleted.
      Specified by:
      expireAt in interface RKeys
      Parameters:
      name - of object
      timestamp - - expire date in milliseconds (Unix timestamp)
      Returns:
      true if the timeout was set and false if not
    • expireAtAsync

      public RFuture<Boolean> expireAtAsync(String name, long timestamp)
      Description copied from interface: RKeysAsync
      Set an expire date for object. When expire date comes the key will automatically be deleted.
      Specified by:
      expireAtAsync in interface RKeysAsync
      Parameters:
      name - of object
      timestamp - - expire date in milliseconds (Unix timestamp)
      Returns:
      true if the timeout was set and false if not
    • expire

      public boolean expire(String name, long timeToLive, TimeUnit timeUnit)
      Description copied from interface: RKeys
      Set a timeout for object. After the timeout has expired, the key will automatically be deleted.
      Specified by:
      expire in interface RKeys
      Parameters:
      name - of object
      timeToLive - - timeout before object will be deleted
      timeUnit - - timeout time unit
      Returns:
      true if the timeout was set and false if not
    • expireAsync

      public RFuture<Boolean> expireAsync(String name, long timeToLive, TimeUnit timeUnit)
      Description copied from interface: RKeysAsync
      Set a timeout for object. After the timeout has expired, the key will automatically be deleted.
      Specified by:
      expireAsync in interface RKeysAsync
      Parameters:
      name - of object
      timeToLive - - timeout before object will be deleted
      timeUnit - - timeout time unit
      Returns:
      true if the timeout was set and false if not
    • migrate

      public void migrate(String name, String host, int port, int database, long timeout)
      Description copied from interface: RKeys
      Transfer object from source Redis instance to destination Redis instance
      Specified by:
      migrate in interface RKeys
      Parameters:
      name - of object
      host - - destination host
      port - - destination port
      database - - destination database
      timeout - - maximum idle time in any moment of the communication with the destination instance in milliseconds
    • migrateAsync

      public RFuture<Void> migrateAsync(String name, String host, int port, int database, long timeout)
      Description copied from interface: RKeysAsync
      Transfer object from source Redis instance to destination Redis instance
      Specified by:
      migrateAsync in interface RKeysAsync
      Parameters:
      name - of object
      host - - destination host
      port - - destination port
      database - - destination database
      timeout - - maximum idle time in any moment of the communication with the destination instance in milliseconds
      Returns:
      void
    • copy

      public void copy(String name, String host, int port, int database, long timeout)
      Description copied from interface: RKeys
      Copy object from source Redis instance to destination Redis instance
      Specified by:
      copy in interface RKeys
      Parameters:
      name - of object
      host - - destination host
      port - - destination port
      database - - destination database
      timeout - - maximum idle time in any moment of the communication with the destination instance in milliseconds
    • copyAsync

      public RFuture<Void> copyAsync(String name, String host, int port, int database, long timeout)
      Description copied from interface: RKeysAsync
      Copy object from source Redis instance to destination Redis instance in async mode
      Specified by:
      copyAsync in interface RKeysAsync
      Parameters:
      name - of object
      host - - destination host
      port - - destination port
      database - - destination database
      timeout - - maximum idle time in any moment of the communication with the destination instance in milliseconds
      Returns:
      void
    • move

      public boolean move(String name, int database)
      Description copied from interface: RKeys
      Move object to another database
      Specified by:
      move in interface RKeys
      Parameters:
      name - of object
      database - - Redis database number
      Returns:
      true if key was moved else false
    • moveAsync

      public RFuture<Boolean> moveAsync(String name, int database)
      Description copied from interface: RKeysAsync
      Move object to another database
      Specified by:
      moveAsync in interface RKeysAsync
      Parameters:
      name - of object
      database - - Redis database number
      Returns:
      true if key was moved else false
    • getKeysStreamByPattern

      public Stream<String> getKeysStreamByPattern(String pattern)
      Description copied from interface: RKeys
      Get all keys by pattern using Stream. Keys traversed with SCAN operation. Each SCAN operation loads up to 10 keys per request.

      Supported glob-style patterns:

      h?llo subscribes to hello, hallo and hxllo

      h*llo subscribes to hllo and heeeello

      h[ae]llo subscribes to hello and hallo, but not hillo

      Specified by:
      getKeysStreamByPattern in interface RKeys
      Parameters:
      pattern - - match pattern
      Returns:
      Iterable object
    • toStream

      protected <T> Stream<T> toStream(Iterator<T> iterator)
    • getKeysStreamByPattern

      public Stream<String> getKeysStreamByPattern(String pattern, int count)
      Description copied from interface: RKeys
      Get all keys by pattern using Stream. Keys traversed with SCAN operation. Each SCAN operation loads up to count keys per request.

      Supported glob-style patterns:

      h?llo subscribes to hello, hallo and hxllo

      h*llo subscribes to hllo and heeeello

      h[ae]llo subscribes to hello and hallo, but not hillo

      Specified by:
      getKeysStreamByPattern in interface RKeys
      Parameters:
      pattern - - match pattern
      count - - keys loaded per request to Redis
      Returns:
      Iterable object
    • getKeysStream

      public Stream<String> getKeysStream()
      Description copied from interface: RKeys
      Get all keys using Stream. Keys traversing with SCAN operation. Each SCAN operation loads up to 10 keys per request.
      Specified by:
      getKeysStream in interface RKeys
      Returns:
      Iterable object
    • getKeysStream

      public Stream<String> getKeysStream(int count)
      Description copied from interface: RKeys
      Get all keys using Stream. Keys traversing with SCAN operation. Each SCAN operation loads up to count keys per request.
      Specified by:
      getKeysStream in interface RKeys
      Parameters:
      count - - keys loaded per request to Redis
      Returns:
      Iterable object
    • swapdb

      public void swapdb(int db1, int db2)
      Description copied from interface: RKeys
      Swap two databases.
      Specified by:
      swapdb in interface RKeys
    • swapdbAsync

      public RFuture<Void> swapdbAsync(int db1, int db2)
      Description copied from interface: RKeysAsync
      Swap two databases.

      Requires Redis 4.0+

      Specified by:
      swapdbAsync in interface RKeysAsync
      Returns:
      void