Module lettuce.core

Interface RedisClusterCommands<K,​V>

Type Parameters:
K - Key type.
V - Value type.
All Superinterfaces:
BaseRedisCommands<K,​V>, RedisAclCommands<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>, 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
  • Method Details

    • setTimeout

      void setTimeout​(Duration timeout)
      Set the default timeout for operations. A zero timeout value indicates to not time out.
      Parameters:
      timeout - the timeout value
      Since:
      5.0
    • 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 username
      password - the password
      Returns:
      String simple-string-reply
      Since:
      6.0
    • 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.
    • 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 host
      port - port number.
      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
    • 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
    • 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
    • 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 in nodeId
      Parameters:
      slot - the slot
      nodeId - 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
    • clusterSetSlotMigrating

      String clusterSetSlotMigrating​(int slot, String nodeId)
      Flag a slot as MIGRATING (outgoing) towards the node specified in nodeId. The slot must be handled by the current node in order to be migrated.
      Parameters:
      slot - the slot
      nodeId - the id of the node is targeted to become the master for the slot
      Returns:
      String simple-string-reply
    • clusterSetSlotImporting

      String clusterSetSlotImporting​(int slot, String nodeId)
      Flag a slot as IMPORTING (incoming) from the node specified in nodeId.
      Parameters:
      slot - the slot
      nodeId - the id of the node is the master of the slot
      Returns:
      String simple-string-reply
    • 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.
    • 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 using ClusterPartitionParser.parse(java.lang.String)
      Returns:
      String bulk-string-reply as a collection of text lines
    • clusterSlaves

      List<String> clusterSlaves​(String nodeId)
      List replicas for a certain node identified by its nodeId. Can be parsed using ClusterPartitionParser.parse(java.lang.String)
      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.
    • clusterGetKeysInSlot

      List<K> clusterGetKeysInSlot​(int slot, int count)
      Retrieve the list of keys within the slot.
      Parameters:
      slot - the slot
      count - maximal number of keys
      Returns:
      List<K> array-reply list of keys
    • clusterCountKeysInSlot

      Long clusterCountKeysInSlot​(int slot)
      Returns the number of keys in the specified Redis Cluster hash slot.
      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.
    • 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.
    • 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 as SlotHash.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.
    • 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.
    • 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.
    • asking

      String asking()
      The asking command is required after a -ASK redirection. The client should issue ASKING before to actually send the command to the target instance. See the Redis Cluster specification for more information.
      Returns:
      String simple-string-reply
    • clusterReplicate

      String clusterReplicate​(String nodeId)
      Turn this node into a replica of the node with the id nodeId.
      Parameters:
      nodeId - master node id
      Returns:
      String simple-string-reply
    • 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 if true
      Returns:
      String simple-string-reply
    • 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
    • clusterFlushslots

      String clusterFlushslots()
      Delete all the slots associated with the specified node. The number of deleted slots is returned.
      Returns:
      String simple-string-reply
    • 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 interface BaseRedisCommands<K,​V>
      Returns:
      String simple-string-reply
    • readWrite

      String readWrite()
      Resets readOnly flag.
      Specified by:
      readWrite in interface BaseRedisCommands<K,​V>
      Returns:
      String simple-string-reply