Package io.lettuce.core.cluster.api.sync
Interface RedisClusterCommands<K,V>
-
- Type Parameters:
K
- Key type.V
- Value type.
- All Superinterfaces:
BaseRedisCommands<K,V>
,RedisAclCommands<K,V>
,RedisFunctionCommands<K,V>
,RedisGeoCommands<K,V>
,RedisHashCommands<K,V>
,RedisHLLCommands<K,V>
,RedisKeyCommands<K,V>
,RedisListCommands<K,V>
,RedisScriptingCommands<K,V>
,RedisServerCommands<K,V>
,RedisSetCommands<K,V>
,RedisSortedSetCommands<K,V>
,RedisStreamCommands<K,V>
,RedisStringCommands<K,V>
- All Known Subinterfaces:
RedisAdvancedClusterCommands<K,V>
,RedisClusterPubSubCommands<K,V>
,RedisCommands<K,V>
,RedisPubSubCommands<K,V>
public interface RedisClusterCommands<K,V> extends BaseRedisCommands<K,V>, RedisAclCommands<K,V>, RedisFunctionCommands<K,V>, RedisGeoCommands<K,V>, RedisHashCommands<K,V>, RedisHLLCommands<K,V>, RedisKeyCommands<K,V>, RedisListCommands<K,V>, RedisScriptingCommands<K,V>, RedisServerCommands<K,V>, RedisSetCommands<K,V>, RedisSortedSetCommands<K,V>, RedisStreamCommands<K,V>, RedisStringCommands<K,V>
A complete synchronous and thread-safe Redis Cluster API with 400+ Methods.- Since:
- 4.0
- Author:
- Mark Paluch, dengliming
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description String
asking()
The asking command is required after a-ASK
redirection.String
auth(CharSequence password)
Authenticate to the server.String
auth(String username, CharSequence password)
Authenticate to the server with username and password.String
clusterAddSlots(int... slots)
Adds slots to the cluster node.String
clusterAddSlotsRange(Range<Integer>... ranges)
Takes a list of slot ranges (specified by start and end slots) to assign to the node.String
clusterBumpepoch()
Generate a new config epoch, incrementing the current epoch, assign the new epoch to this node, WITHOUT any consensus and persist the configuration on disk before sending packets with the new configuration.Long
clusterCountFailureReports(String nodeId)
Returns the number of failure reports for the specified node.Long
clusterCountKeysInSlot(int slot)
Returns the number of keys in the specified Redis Cluster hashslot
.String
clusterDelSlots(int... slots)
Removes slots from the cluster node.String
clusterDelSlotsRange(Range<Integer>... ranges)
Takes a list of slot ranges (specified by start and end slots) to remove to the node.String
clusterFailover(boolean force)
Failover a cluster node.String
clusterFailover(boolean force, boolean takeOver)
Failover a cluster node.String
clusterFlushslots()
Delete all the slots associated with the specified node.String
clusterForget(String nodeId)
Disallow connections and remove the cluster node from the cluster.List<K>
clusterGetKeysInSlot(int slot, int count)
Retrieve the list of keys within theslot
.String
clusterInfo()
Get information and statistics about the cluster viewed by the current node.Long
clusterKeyslot(K key)
Returns an integer identifying the hash slot the specified key hashes to.String
clusterMeet(String ip, int port)
Meet another cluster node to include the node into the cluster.String
clusterMyId()
Obtain the nodeId for the currently connected node.String
clusterNodes()
Obtain details about all cluster nodes.List<String>
clusterReplicas(String nodeId)
List replicas for a certain node identified by itsnodeId
.String
clusterReplicate(String nodeId)
Turn this node into a replica of the node with the idnodeId
.String
clusterReset(boolean hard)
Reset a node performing a soft or hard reset: All other nodes are forgotten All the assigned / open slots are released If the node is a replica, it turns into a master Only for hard reset: a new Node ID is generated Only for hard reset: currentEpoch and configEpoch are set to 0 The new configuration is saved and the cluster state updated If the node was a replica, the whole data set is flushed awayString
clusterSaveconfig()
Forces a node to save the nodes.conf configuration on disk.String
clusterSetConfigEpoch(long configEpoch)
This command sets a specific config epoch in a fresh node.String
clusterSetSlotImporting(int slot, String nodeId)
Flag a slot as IMPORTING (incoming) from the node specified innodeId
.String
clusterSetSlotMigrating(int slot, String nodeId)
Flag a slot as MIGRATING (outgoing) towards the node specified innodeId
.String
clusterSetSlotNode(int slot, String nodeId)
Assign a slot to a node.String
clusterSetSlotStable(int slot)
Clears migrating / importing state from the slot.List<Object>
clusterShards()
Get array of cluster shardsList<String>
clusterSlaves(String nodeId)
Deprecated.since 6.1.7, useclusterReplicas(String)
instead.List<Object>
clusterSlots()
Get array of cluster slots to node mappings.String
readOnly()
Tells a Redis cluster replica node that the client is ok reading possibly stale data and is not interested in running write queries.String
readWrite()
Resets readOnly flag.void
setTimeout(Duration timeout)
Deprecated.since 6.2.-
Methods inherited from interface io.lettuce.core.api.sync.BaseRedisCommands
dispatch, dispatch, echo, isOpen, ping, publish, pubsubChannels, pubsubChannels, pubsubNumpat, pubsubNumsub, quit, reset, role, waitForReplication
-
Methods inherited from interface io.lettuce.core.api.sync.RedisAclCommands
aclCat, aclCat, aclDeluser, aclDryRun, aclDryRun, aclGenpass, aclGenpass, aclGetuser, aclList, aclLoad, aclLog, aclLog, aclLogReset, aclSave, aclSetuser, aclUsers, aclWhoami
-
Methods inherited from interface io.lettuce.core.api.sync.RedisFunctionCommands
fcall, fcall, fcallReadOnly, fcallReadOnly, functionDump, functionFlush, functionKill, functionList, functionList, functionLoad, functionLoad, functionRestore, functionRestore
-
Methods inherited from interface io.lettuce.core.api.sync.RedisGeoCommands
geoadd, geoadd, geoadd, geoadd, geoadd, geoadd, geodist, geohash, geopos, georadius, georadius, georadius, georadiusbymember, georadiusbymember, georadiusbymember, geosearch, geosearch, geosearchstore
-
Methods inherited from interface io.lettuce.core.api.sync.RedisHashCommands
hdel, hexists, hget, hgetall, hgetall, hincrby, hincrbyfloat, hkeys, hkeys, hlen, hmget, hmget, hmset, hrandfield, hrandfield, hrandfieldWithvalues, hrandfieldWithvalues, hscan, hscan, hscan, hscan, hscan, hscan, hscan, hscan, hset, hset, hsetnx, hstrlen, hvals, hvals
-
Methods inherited from interface io.lettuce.core.api.sync.RedisHLLCommands
pfadd, pfcount, pfmerge
-
Methods inherited from interface io.lettuce.core.api.sync.RedisKeyCommands
copy, copy, del, dump, exists, expire, expire, expire, expire, expireat, expireat, expireat, expireat, expireat, expireat, expiretime, keys, keys, migrate, migrate, move, objectEncoding, objectFreq, objectIdletime, objectRefcount, persist, pexpire, pexpire, pexpire, pexpire, pexpireat, pexpireat, pexpireat, pexpireat, pexpireat, pexpireat, pexpiretime, pttl, randomkey, rename, renamenx, restore, restore, scan, scan, scan, scan, scan, scan, scan, scan, sort, sort, sort, sort, sortReadOnly, sortReadOnly, sortReadOnly, sortReadOnly, sortStore, touch, ttl, type, unlink
-
Methods inherited from interface io.lettuce.core.api.sync.RedisListCommands
blmove, blmove, blmpop, blmpop, blpop, blpop, brpop, brpop, brpoplpush, brpoplpush, lindex, linsert, llen, lmove, lmpop, lpop, lpop, lpos, lpos, lpos, lpos, lpush, lpushx, lrange, lrange, lrem, lset, ltrim, rpop, rpop, rpoplpush, rpush, rpushx
-
Methods inherited from interface io.lettuce.core.api.sync.RedisScriptingCommands
digest, digest, eval, eval, eval, eval, evalReadOnly, evalsha, evalsha, evalshaReadOnly, scriptExists, scriptFlush, scriptFlush, scriptKill, scriptLoad, scriptLoad
-
Methods inherited from interface io.lettuce.core.api.sync.RedisServerCommands
bgrewriteaof, bgsave, clientCaching, clientGetname, clientGetredir, clientId, clientInfo, clientKill, clientKill, clientList, clientList, clientNoEvict, clientPause, clientSetinfo, clientSetname, clientTracking, clientUnblock, command, commandCount, commandInfo, commandInfo, configGet, configGet, configResetstat, configRewrite, configSet, configSet, dbsize, debugCrashAndRecover, debugHtstats, debugObject, debugOom, debugReload, debugRestart, debugSdslen, debugSegfault, flushall, flushall, flushallAsync, flushdb, flushdb, flushdbAsync, info, info, lastsave, memoryUsage, replicaof, replicaofNoOne, save, shutdown, shutdown, slaveof, slaveofNoOne, slowlogGet, slowlogGet, slowlogLen, slowlogReset, time
-
Methods inherited from interface io.lettuce.core.api.sync.RedisSetCommands
sadd, scard, sdiff, sdiff, sdiffstore, sinter, sinter, sintercard, sintercard, sinterstore, sismember, smembers, smembers, smismember, smove, spop, spop, srandmember, srandmember, srandmember, srem, sscan, sscan, sscan, sscan, sscan, sscan, sscan, sscan, sunion, sunion, sunionstore
-
Methods inherited from interface io.lettuce.core.api.sync.RedisSortedSetCommands
bzmpop, bzmpop, bzmpop, bzmpop, bzpopmax, bzpopmax, bzpopmin, bzpopmin, zadd, zadd, zadd, zadd, zadd, zadd, zaddincr, zaddincr, zcard, zcount, zcount, zcount, zdiff, zdiffstore, zdiffWithScores, zincrby, zinter, zinter, zintercard, zintercard, zinterstore, zinterstore, zinterWithScores, zinterWithScores, zlexcount, zlexcount, zmpop, zmpop, zmscore, zpopmax, zpopmax, zpopmin, zpopmin, zrandmember, zrandmember, zrandmemberWithScores, zrandmemberWithScores, zrange, zrange, zrangebylex, zrangebylex, zrangebylex, zrangebylex, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscore, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangebyscoreWithScores, zrangestore, zrangestorebylex, zrangestorebyscore, zrangeWithScores, zrangeWithScores, zrank, zrankWithScore, zrem, zremrangebylex, zremrangebylex, zremrangebyrank, zremrangebyscore, zremrangebyscore, zremrangebyscore, zrevrange, zrevrange, zrevrangebylex, zrevrangebylex, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscore, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangebyscoreWithScores, zrevrangestore, zrevrangestorebylex, zrevrangestorebyscore, zrevrangeWithScores, zrevrangeWithScores, zrevrank, zrevrankWithScore, zscan, zscan, zscan, zscan, zscan, zscan, zscan, zscan, zscore, zunion, zunion, zunionstore, zunionstore, zunionWithScores, zunionWithScores
-
Methods inherited from interface io.lettuce.core.api.sync.RedisStreamCommands
xack, xadd, xadd, xadd, xadd, xautoclaim, xclaim, xclaim, xdel, xgroupCreate, xgroupCreate, xgroupCreateconsumer, xgroupDelconsumer, xgroupDestroy, xgroupSetid, xinfoConsumers, xinfoGroups, xinfoStream, xlen, xpending, xpending, xpending, xpending, xrange, xrange, xread, xread, xreadgroup, xreadgroup, xrevrange, xrevrange, xtrim, xtrim, xtrim
-
Methods inherited from interface io.lettuce.core.api.sync.RedisStringCommands
append, bitcount, bitcount, bitfield, bitopAnd, bitopNot, bitopOr, bitopXor, bitpos, bitpos, bitpos, decr, decrby, get, getbit, getdel, getex, getrange, getset, incr, incrby, incrbyfloat, mget, mget, mset, msetnx, psetex, set, set, setbit, setex, setGet, setGet, setnx, setrange, stralgoLcs, strlen
-
-
-
-
Method Detail
-
setTimeout
@Deprecated void setTimeout(Duration timeout)
Deprecated.since 6.2. Use the correspondingStatefulConnection.setTimeout(Duration)
method on the connection interface. To be removed with Lettuce 7.0.Set the default timeout for operations. A zero timeout value indicates to not time out.- Parameters:
timeout
- the timeout value- Since:
- 5.0
-
asking
String asking()
The asking command is required after a-ASK
redirection. The client should issueASKING
before to actually send the command to the target instance. See the Redis Cluster specification for more information.- Returns:
- String simple-string-reply
-
auth
String auth(CharSequence password)
Authenticate to the server.- Parameters:
password
- the password- Returns:
- String simple-string-reply
-
auth
String auth(String username, CharSequence password)
Authenticate to the server with username and password. Requires Redis 6 or newer.- Parameters:
username
- the usernamepassword
- the password- Returns:
- String simple-string-reply
- Since:
- 6.0
-
clusterAddSlots
String clusterAddSlots(int... slots)
Adds slots to the cluster node. The current node will become the master for the specified slots.- Parameters:
slots
- one or more slots from 0 to 16384- Returns:
- String simple-string-reply
-
clusterBumpepoch
String clusterBumpepoch()
Generate a new config epoch, incrementing the current epoch, assign the new epoch to this node, WITHOUT any consensus and persist the configuration on disk before sending packets with the new configuration.- Returns:
- String simple-string-reply If the new config epoch is generated and assigned either BUMPED (epoch) or STILL (epoch) are returned.
-
clusterCountFailureReports
Long clusterCountFailureReports(String nodeId)
Returns the number of failure reports for the specified node. Failure reports are the way Redis Cluster uses in order to promote a PFAIL state, that means a node is not reachable, to a FAIL state, that means that the majority of masters in the cluster agreed within a window of time that the node is not reachable.- Parameters:
nodeId
- the node id- Returns:
- Integer reply: The number of active failure reports for the node.
-
clusterCountKeysInSlot
Long clusterCountKeysInSlot(int slot)
Returns the number of keys in the specified Redis Cluster hashslot
.- Parameters:
slot
- the slot- Returns:
- Integer reply: The number of keys in the specified hash slot, or an error if the hash slot is invalid.
-
clusterAddSlotsRange
String clusterAddSlotsRange(Range<Integer>... ranges)
Takes a list of slot ranges (specified by start and end slots) to assign to the node.- Parameters:
ranges
- a list of slot ranges (specified by start and end slots)- Returns:
- String simple-string-reply
- Since:
- 6.2
-
clusterDelSlots
String clusterDelSlots(int... slots)
Removes slots from the cluster node.- Parameters:
slots
- one or more slots from 0 to 16384- Returns:
- String simple-string-reply
-
clusterDelSlotsRange
String clusterDelSlotsRange(Range<Integer>... ranges)
Takes a list of slot ranges (specified by start and end slots) to remove to the node.- Parameters:
ranges
- a list of slot ranges (specified by start and end slots)- Returns:
- String simple-string-reply
- Since:
- 6.2
-
clusterFailover
String clusterFailover(boolean force)
Failover a cluster node. Turns the currently connected node into a master and the master into its replica.- Parameters:
force
- do not coordinate with master iftrue
- Returns:
- String simple-string-reply
-
clusterFailover
String clusterFailover(boolean force, boolean takeOver)
Failover a cluster node. Turns the currently connected node into a master and the master into its replica.- Parameters:
force
- do not coordinate with master iftrue
takeOver
- do not coordinate with the rest of the cluster iftrue
force will take precedence over takeOver if both are set.- Returns:
- String simple-string-reply
- Since:
- 6.2.3
-
clusterFlushslots
String clusterFlushslots()
Delete all the slots associated with the specified node. The number of deleted slots is returned.- Returns:
- String simple-string-reply
-
clusterForget
String clusterForget(String nodeId)
Disallow connections and remove the cluster node from the cluster.- Parameters:
nodeId
- the node Id- Returns:
- String simple-string-reply
-
clusterGetKeysInSlot
List<K> clusterGetKeysInSlot(int slot, int count)
Retrieve the list of keys within theslot
.- Parameters:
slot
- the slotcount
- maximal number of keys- Returns:
- List<K> array-reply list of keys
-
clusterInfo
String clusterInfo()
Get information and statistics about the cluster viewed by the current node.- Returns:
- String bulk-string-reply as a collection of text lines.
-
clusterKeyslot
Long clusterKeyslot(K key)
Returns an integer identifying the hash slot the specified key hashes to. This command is mainly useful for debugging and testing, since it exposes via an API the underlying Redis implementation of the hashing algorithm. Basically the same asSlotHash.getSlot(byte[])
. If not, call Houston and report that we've got a problem.- Parameters:
key
- the key.- Returns:
- Integer reply: The hash slot number.
-
clusterMeet
String clusterMeet(String ip, int port)
Meet another cluster node to include the node into the cluster. The command starts the cluster handshake and returns with OK when the node was added to the cluster.- Parameters:
ip
- IP address of the hostport
- port number.- Returns:
- String simple-string-reply
-
clusterMyId
String clusterMyId()
Obtain the nodeId for the currently connected node.- Returns:
- String simple-string-reply
-
clusterNodes
String clusterNodes()
Obtain details about all cluster nodes. Can be parsed usingClusterPartitionParser.parse(java.util.List<java.lang.Object>)
- Returns:
- String bulk-string-reply as a collection of text lines
-
clusterReplicate
String clusterReplicate(String nodeId)
Turn this node into a replica of the node with the idnodeId
.- Parameters:
nodeId
- master node id- Returns:
- String simple-string-reply
-
clusterReplicas
List<String> clusterReplicas(String nodeId)
List replicas for a certain node identified by itsnodeId
. Can be parsed usingClusterPartitionParser.parse(java.util.List<java.lang.Object>)
- Parameters:
nodeId
- node id of the master node- Returns:
- List<String> array-reply list of replicas. The command returns data in the same format as
clusterNodes()
but one line per replica. - Since:
- 6.1.7
-
clusterReset
String clusterReset(boolean hard)
Reset a node performing a soft or hard reset:- All other nodes are forgotten
- All the assigned / open slots are released
- If the node is a replica, it turns into a master
- Only for hard reset: a new Node ID is generated
- Only for hard reset: currentEpoch and configEpoch are set to 0
- The new configuration is saved and the cluster state updated
- If the node was a replica, the whole data set is flushed away
- Parameters:
hard
-true
for hard reset. Generates a new nodeId and currentEpoch/configEpoch are set to 0- Returns:
- String simple-string-reply
-
clusterSaveconfig
String clusterSaveconfig()
Forces a node to save the nodes.conf configuration on disk.- Returns:
- String simple-string-reply:
OK
or an error if the operation fails.
-
clusterSetConfigEpoch
String clusterSetConfigEpoch(long configEpoch)
This command sets a specific config epoch in a fresh node. It only works when:- The nodes table of the node is empty.
- The node current config epoch is zero.
- Parameters:
configEpoch
- the config epoch- Returns:
- String simple-string-reply:
OK
or an error if the operation fails.
-
clusterSetSlotImporting
String clusterSetSlotImporting(int slot, String nodeId)
Flag a slot as IMPORTING (incoming) from the node specified innodeId
.- Parameters:
slot
- the slotnodeId
- the id of the node is the master of the slot- Returns:
- String simple-string-reply
-
clusterSetSlotMigrating
String clusterSetSlotMigrating(int slot, String nodeId)
Flag a slot as MIGRATING (outgoing) towards the node specified innodeId
. The slot must be handled by the current node in order to be migrated.- Parameters:
slot
- the slotnodeId
- the id of the node is targeted to become the master for the slot- Returns:
- String simple-string-reply
-
clusterSetSlotNode
String clusterSetSlotNode(int slot, String nodeId)
Assign a slot to a node. The command migrates the specified slot from the current node to the specified node innodeId
- Parameters:
slot
- the slotnodeId
- the id of the node that will become the master for the slot- Returns:
- String simple-string-reply
-
clusterSetSlotStable
String clusterSetSlotStable(int slot)
Clears migrating / importing state from the slot.- Parameters:
slot
- the slot- Returns:
- String simple-string-reply
-
clusterShards
List<Object> clusterShards()
Get array of cluster shards- Returns:
- RedisFuture<List<Object>> array-reply nested list of the shards response.
- Since:
- 6.2
-
clusterSlaves
@Deprecated List<String> clusterSlaves(String nodeId)
Deprecated.since 6.1.7, useclusterReplicas(String)
instead.List replicas for a certain node identified by itsnodeId
. Can be parsed usingClusterPartitionParser.parse(java.util.List<java.lang.Object>)
- Parameters:
nodeId
- node id of the master node- Returns:
- List<String> array-reply list of replicas. The command returns data in the same format as
clusterNodes()
but one line per replica.
-
clusterSlots
List<Object> clusterSlots()
Get array of cluster slots to node mappings.- Returns:
- List<Object> array-reply nested list of slot ranges with IP/Port mappings.
-
readOnly
String readOnly()
Tells a Redis cluster replica node that the client is ok reading possibly stale data and is not interested in running write queries.- Specified by:
readOnly
in interfaceBaseRedisCommands<K,V>
- Returns:
- String simple-string-reply
-
readWrite
String readWrite()
Resets readOnly flag.- Specified by:
readWrite
in interfaceBaseRedisCommands<K,V>
- Returns:
- String simple-string-reply
-
-