Class RedissonKeys
- java.lang.Object
-
- org.redisson.RedissonKeys
-
- All Implemented Interfaces:
RKeys
,RKeysAsync
public class RedissonKeys extends Object implements RKeys
- Author:
- Nikita Koksharov
-
-
Constructor Summary
Constructors Constructor Description RedissonKeys(CommandAsyncExecutor commandExecutor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
clearExpire(String name)
Clear an expire timeout or expire date for object.RFuture<Boolean>
clearExpireAsync(String name)
Clear an expire timeout or expire date for object.void
copy(String name, String host, int port, int database, long timeout)
Copy object from source Redis instance to destination Redis instanceRFuture<Void>
copyAsync(String name, String host, int port, int database, long timeout)
Copy object from source Redis instance to destination Redis instance in async modelong
count()
Returns the number of keys in the currently-selected databaseRFuture<Long>
countAsync()
Returns the number of keys in the currently-selected database in async modelong
countExists(String... names)
Checks if provided keys existRFuture<Long>
countExistsAsync(String... names)
Checks if provided keys existlong
delete(String... keys)
Delete multiple objects by namelong
delete(RObject... objects)
Delete multiple objectsRFuture<Long>
deleteAsync(String... keys)
Delete multiple objects by nameRFuture<Long>
deleteAsync(RObject... objects)
Delete multiple objectslong
deleteByPattern(String pattern)
Delete multiple objects by a key pattern.RFuture<Long>
deleteByPatternAsync(String pattern)
Delete multiple objects by a key pattern.boolean
expire(String name, long timeToLive, TimeUnit timeUnit)
Set a timeout for object.RFuture<Boolean>
expireAsync(String name, long timeToLive, TimeUnit timeUnit)
Set a timeout for object.boolean
expireAt(String name, long timestamp)
Set an expire date for object.RFuture<Boolean>
expireAtAsync(String name, long timestamp)
Set an expire date for object.void
flushall()
Delete all keys of all existing databasesRFuture<Void>
flushallAsync()
Delete all keys of all existing databasesvoid
flushallParallel()
Delete all keys of all existing databases in background without blocking server.RFuture<Void>
flushallParallelAsync()
Delete all keys of all existing databases in background without blocking server.void
flushdb()
Delete all keys of currently selected databaseRFuture<Void>
flushdbAsync()
Delete all keys of currently selected databasevoid
flushdbParallel()
Delete all keys of currently selected database in background without blocking server.RFuture<Void>
flushdbParallelAsync()
Delete all keys of currently selected database in background without blocking server.CommandAsyncExecutor
getCommandExecutor()
ConnectionManager
getConnectionManager()
Iterable<String>
getKeys()
Get all keys using iterator.Iterable<String>
getKeys(int count)
Get all keys using iterator.Iterable<String>
getKeysByPattern(String pattern)
Get all keys by pattern using iterator.Iterable<String>
getKeysByPattern(String pattern, int count)
Get all keys by pattern using iterator.<T> Iterable<T>
getKeysByPattern(RedisCommand<?> command, String pattern, int limit, int count)
Stream<String>
getKeysStream()
Get all keys using Stream.Stream<String>
getKeysStream(int count)
Get all keys using Stream.Stream<String>
getKeysStreamByPattern(String pattern)
Get all keys by pattern using Stream.Stream<String>
getKeysStreamByPattern(String pattern, int count)
Get all keys by pattern using Stream.Iterable<String>
getKeysWithLimit(int limit)
Get keys using iterator with definedlimit
.Iterable<String>
getKeysWithLimit(String pattern, int limit)
Get keys using iterator with definedlimit
.int
getSlot(String key)
Get hash slot identifier for key.RFuture<Integer>
getSlotAsync(String key)
Get hash slot identifier for key in async mode.RType
getType(String key)
Get Redis object type by keyRFuture<RType>
getTypeAsync(String key)
Get Redis object type by keyvoid
migrate(String name, String host, int port, int database, long timeout)
Transfer object from source Redis instance to destination Redis instanceRFuture<Void>
migrateAsync(String name, String host, int port, int database, long timeout)
Transfer object from source Redis instance to destination Redis instanceboolean
move(String name, int database)
Move object to another databaseRFuture<Boolean>
moveAsync(String name, int database)
Move object to another databaseString
randomKey()
Get random keyRFuture<String>
randomKeyAsync()
Get random key in async modelong
remainTimeToLive(String name)
Remaining time to live of Redisson object that has a timeoutRFuture<Long>
remainTimeToLiveAsync(String name)
Remaining time to live of Redisson object that has a timeoutvoid
rename(String currentName, String newName)
Rename current object key tonewName
RFuture<Void>
renameAsync(String currentName, String newName)
Rename current object key tonewName
boolean
renamenx(String oldName, String newName)
Rename object witholdName
tonewName
only if new key is not existsRFuture<Boolean>
renamenxAsync(String oldName, String newName)
Rename object witholdName
tonewName
only if new key is not existsRFuture<ScanResult<Object>>
scanIteratorAsync(RedisClient client, MasterSlaveEntry entry, long startPos, String pattern, int count)
RFuture<ScanResult<Object>>
scanIteratorAsync(RedisClient client, MasterSlaveEntry entry, RedisCommand<?> command, long startPos, String pattern, int count)
void
swapdb(int db1, int db2)
Swap two databases.RFuture<Void>
swapdbAsync(int db1, int db2)
Swap two databases.protected <T> Stream<T>
toStream(Iterator<T> iterator)
long
touch(String... names)
Update the last access time of an object.RFuture<Long>
touchAsync(String... names)
Update the last access time of an object.long
unlink(String... keys)
Delete multiple objects by name.RFuture<Long>
unlinkAsync(String... keys)
Delete multiple objects by name.
-
-
-
Constructor Detail
-
RedissonKeys
public RedissonKeys(CommandAsyncExecutor commandExecutor)
-
-
Method Detail
-
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
-
getTypeAsync
public RFuture<RType> getTypeAsync(String key)
Description copied from interface:RKeysAsync
Get Redis object type by key- Specified by:
getTypeAsync
in interfaceRKeysAsync
- 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
-
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 interfaceRKeysAsync
- 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 interfaceRKeys
- 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 tocount
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 interfaceRKeys
- Parameters:
pattern
- - match patterncount
- - 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 definedlimit
. Keys are traversed with SCAN operation.- Specified by:
getKeysWithLimit
in interfaceRKeys
- 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 definedlimit
. 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 interfaceRKeys
- Parameters:
pattern
- - match patternlimit
- - 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 to10
keys per request.
-
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 tocount
keys per request.
-
scanIteratorAsync
public RFuture<ScanResult<Object>> scanIteratorAsync(RedisClient client, MasterSlaveEntry entry, RedisCommand<?> command, long startPos, String pattern, int count)
-
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.
-
touchAsync
public RFuture<Long> touchAsync(String... names)
Description copied from interface:RKeysAsync
Update the last access time of an object.- Specified by:
touchAsync
in interfaceRKeysAsync
- 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 interfaceRKeys
- 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 interfaceRKeysAsync
- Parameters:
names
- of keys- Returns:
- amount of existing keys
-
randomKeyAsync
public RFuture<String> randomKeyAsync()
Description copied from interface:RKeysAsync
Get random key in async mode- Specified by:
randomKeyAsync
in interfaceRKeysAsync
- 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 interfaceRKeys
- 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 interfaceRKeysAsync
- 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
-
delete
public long delete(RObject... objects)
Description copied from interface:RKeys
Delete multiple objects
-
deleteAsync
public RFuture<Long> deleteAsync(RObject... objects)
Description copied from interface:RKeysAsync
Delete multiple objects- Specified by:
deleteAsync
in interfaceRKeysAsync
- 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+
-
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 interfaceRKeysAsync
- 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 interfaceRKeysAsync
- 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
-
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 interfaceRKeysAsync
- 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 interfaceRKeys
-
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 interfaceRKeysAsync
- 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 interfaceRKeys
-
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 interfaceRKeysAsync
- Returns:
- void
-
flushdb
public void flushdb()
Description copied from interface:RKeys
Delete all keys of currently selected database
-
flushdbAsync
public RFuture<Void> flushdbAsync()
Description copied from interface:RKeysAsync
Delete all keys of currently selected database- Specified by:
flushdbAsync
in interfaceRKeysAsync
- Returns:
- void
-
flushall
public void flushall()
Description copied from interface:RKeys
Delete all keys of all existing databases
-
flushallAsync
public RFuture<Void> flushallAsync()
Description copied from interface:RKeysAsync
Delete all keys of all existing databases- Specified by:
flushallAsync
in interfaceRKeysAsync
- 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 interfaceRKeys
- 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 interfaceRKeysAsync
- 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 tonewName
-
renameAsync
public RFuture<Void> renameAsync(String currentName, String newName)
Description copied from interface:RKeysAsync
Rename current object key tonewName
- Specified by:
renameAsync
in interfaceRKeysAsync
- Parameters:
currentName
- - current name of objectnewName
- - new name of object- Returns:
- void
-
renamenx
public boolean renamenx(String oldName, String newName)
Description copied from interface:RKeys
Rename object witholdName
tonewName
only if new key is not exists
-
renamenxAsync
public RFuture<Boolean> renamenxAsync(String oldName, String newName)
Description copied from interface:RKeysAsync
Rename object witholdName
tonewName
only if new key is not exists- Specified by:
renamenxAsync
in interfaceRKeysAsync
- Parameters:
oldName
- - old name of objectnewName
- - new name of object- Returns:
true
if object has been renamed successfully andfalse
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 interfaceRKeys
- Parameters:
name
- of object- Returns:
true
if timeout was removedfalse
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 interfaceRKeysAsync
- Parameters:
name
- of object- Returns:
true
if timeout was removedfalse
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.
-
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 interfaceRKeysAsync
- Parameters:
name
- of objecttimestamp
- - expire date in milliseconds (Unix timestamp)- Returns:
true
if the timeout was set andfalse
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.
-
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 interfaceRKeysAsync
- Parameters:
name
- of objecttimeToLive
- - timeout before object will be deletedtimeUnit
- - timeout time unit- Returns:
true
if the timeout was set andfalse
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
-
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 interfaceRKeysAsync
- Parameters:
name
- of objecthost
- - destination hostport
- - destination portdatabase
- - destination databasetimeout
- - 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
-
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 interfaceRKeysAsync
- Parameters:
name
- of objecthost
- - destination hostport
- - destination portdatabase
- - destination databasetimeout
- - 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
-
moveAsync
public RFuture<Boolean> moveAsync(String name, int database)
Description copied from interface:RKeysAsync
Move object to another database- Specified by:
moveAsync
in interfaceRKeysAsync
- Parameters:
name
- of objectdatabase
- - Redis database number- Returns:
true
if key was moved elsefalse
-
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 interfaceRKeys
- Parameters:
pattern
- - match pattern- Returns:
- Iterable object
-
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 tocount
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 interfaceRKeys
- Parameters:
pattern
- - match patterncount
- - 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 to10
keys per request.- Specified by:
getKeysStream
in interfaceRKeys
- 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 tocount
keys per request.- Specified by:
getKeysStream
in interfaceRKeys
- 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.
-
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 interfaceRKeysAsync
- Returns:
- void
-
-