Module: Valkey::Commands::ClusterCommands

Included in:
Valkey::Commands
Defined in:
lib/valkey/commands/cluster_commands.rb

Overview

This module contains commands related to Redis Cluster management.

Instance Method Summary collapse

Instance Method Details

#askingString

Send ASKING command to the server.

Returns:

  • (String)

    ‘“OK”`



13
14
15
# File 'lib/valkey/commands/cluster_commands.rb', line 13

def asking
  send_command(RequestType::ASKING)
end

#cluster_addslots(*slots) ⇒ String

Add slots to the cluster.

Parameters:

  • slots (Array<Integer>)

    array of slot numbers

Returns:

  • (String)

    ‘“OK”`



21
22
23
# File 'lib/valkey/commands/cluster_commands.rb', line 21

def cluster_addslots(*slots)
  send_command(RequestType::CLUSTER_ADD_SLOTS, slots)
end

#cluster_addslotsrange(start_slot, end_slot) ⇒ String

Add a range of slots to the cluster.

Parameters:

  • start_slot (Integer)

    starting slot number

  • end_slot (Integer)

    ending slot number

Returns:

  • (String)

    ‘“OK”`



30
31
32
# File 'lib/valkey/commands/cluster_commands.rb', line 30

def cluster_addslotsrange(start_slot, end_slot)
  send_command(RequestType::CLUSTER_ADD_SLOTS_RANGE, [start_slot, end_slot])
end

#cluster_bumpepochString

Bump the epoch of the cluster.

Returns:

  • (String)

    ‘“OK”`



37
38
39
# File 'lib/valkey/commands/cluster_commands.rb', line 37

def cluster_bumpepoch
  send_command(RequestType::CLUSTER_BUMP_EPOCH)
end

#cluster_count_failure_reports(node_id) ⇒ Integer

Count failure reports for a node.

Parameters:

  • node_id (String)

    the node ID

Returns:

  • (Integer)

    number of failure reports



45
46
47
# File 'lib/valkey/commands/cluster_commands.rb', line 45

def cluster_count_failure_reports(node_id)
  send_command(RequestType::CLUSTER_COUNT_FAILURE_REPORTS, [node_id])
end

#cluster_countkeysinslot(slot) ⇒ Integer

Count keys in a specific slot.

Parameters:

  • slot (Integer)

    the slot number

Returns:

  • (Integer)

    number of keys in the slot



53
54
55
# File 'lib/valkey/commands/cluster_commands.rb', line 53

def cluster_countkeysinslot(slot)
  send_command(RequestType::CLUSTER_COUNT_KEYS_IN_SLOT, [slot])
end

#cluster_delslots(*slots) ⇒ String

Delete slots from the cluster.

Parameters:

  • slots (Array<Integer>)

    array of slot numbers

Returns:

  • (String)

    ‘“OK”`



61
62
63
# File 'lib/valkey/commands/cluster_commands.rb', line 61

def cluster_delslots(*slots)
  send_command(RequestType::CLUSTER_DEL_SLOTS, slots)
end

#cluster_delslotsrange(start_slot, end_slot) ⇒ String

Delete a range of slots from the cluster.

Parameters:

  • start_slot (Integer)

    starting slot number

  • end_slot (Integer)

    ending slot number

Returns:

  • (String)

    ‘“OK”`



70
71
72
# File 'lib/valkey/commands/cluster_commands.rb', line 70

def cluster_delslotsrange(start_slot, end_slot)
  send_command(RequestType::CLUSTER_DEL_SLOTS_RANGE, [start_slot, end_slot])
end

#cluster_failover(force = nil) ⇒ String

Force a failover of the cluster.

Parameters:

  • force (String) (defaults to: nil)

    force the failover

Returns:

  • (String)

    ‘“OK”`



78
79
80
81
82
# File 'lib/valkey/commands/cluster_commands.rb', line 78

def cluster_failover(force = nil)
  args = []
  args << "FORCE" if force
  send_command(RequestType::CLUSTER_FAILOVER, args)
end

#cluster_flushslotsString

Flush all slots from the cluster.

Returns:

  • (String)

    ‘“OK”`



87
88
89
# File 'lib/valkey/commands/cluster_commands.rb', line 87

def cluster_flushslots
  send_command(RequestType::CLUSTER_FLUSH_SLOTS)
end

#cluster_forget(node_id) ⇒ String

Remove a node from the cluster.

Parameters:

  • node_id (String)

    the node ID to forget

Returns:

  • (String)

    ‘“OK”`



95
96
97
# File 'lib/valkey/commands/cluster_commands.rb', line 95

def cluster_forget(node_id)
  send_command(RequestType::CLUSTER_FORGET, [node_id])
end

#cluster_getkeysinslot(slot, count) ⇒ Array<String>

Get keys in a specific slot.

Parameters:

  • slot (Integer)

    the slot number

  • count (Integer)

    maximum number of keys to return

Returns:

  • (Array<String>)

    array of keys



104
105
106
# File 'lib/valkey/commands/cluster_commands.rb', line 104

def cluster_getkeysinslot(slot, count)
  send_command(RequestType::CLUSTER_GET_KEYS_IN_SLOT, [slot, count])
end

#cluster_infoHash<String, String>

Get information about the cluster.

Returns:

  • (Hash<String, String>)

    cluster information



111
112
113
114
115
# File 'lib/valkey/commands/cluster_commands.rb', line 111

def cluster_info
  send_command(RequestType::CLUSTER_INFO) do |reply|
    Utils::HashifyInfo.call(reply)
  end
end

#cluster_keyslot(key) ⇒ Integer

Get the slot for a key.

Parameters:

  • key (String)

    the key name

Returns:

  • (Integer)

    slot number



121
122
123
# File 'lib/valkey/commands/cluster_commands.rb', line 121

def cluster_keyslot(key)
  send_command(RequestType::CLUSTER_KEY_SLOT, [key])
end

Get information about cluster links.

Returns:

  • (Array<Hash>)

    array of link information



128
129
130
# File 'lib/valkey/commands/cluster_commands.rb', line 128

def cluster_links
  send_command(RequestType::CLUSTER_LINKS)
end

#cluster_meet(ip, port) ⇒ String

Meet another node in the cluster.

Parameters:

  • ip (String)

    IP address of the node

  • port (Integer)

    port of the node

Returns:

  • (String)

    ‘“OK”`



137
138
139
# File 'lib/valkey/commands/cluster_commands.rb', line 137

def cluster_meet(ip, port)
  send_command(RequestType::CLUSTER_MEET, [ip, port])
end

#cluster_myidString

Get the ID of the current node.

Returns:

  • (String)

    node ID



144
145
146
# File 'lib/valkey/commands/cluster_commands.rb', line 144

def cluster_myid
  send_command(RequestType::CLUSTER_MY_ID)
end

#cluster_myshardidString

Get the shard ID of the current node.

Returns:

  • (String)

    shard ID



151
152
153
# File 'lib/valkey/commands/cluster_commands.rb', line 151

def cluster_myshardid
  send_command(RequestType::CLUSTER_MY_SHARD_ID)
end

#cluster_nodesArray<Hash>

Get information about all nodes in the cluster.

Returns:

  • (Array<Hash>)

    array of node information



158
159
160
161
162
# File 'lib/valkey/commands/cluster_commands.rb', line 158

def cluster_nodes
  send_command(RequestType::CLUSTER_NODES) do |reply|
    Utils::HashifyClusterNodes.call(reply)
  end
end

#cluster_replicas(node_id) ⇒ Array<Hash>

Get information about replica nodes.

Parameters:

  • node_id (String)

    the master node ID

Returns:

  • (Array<Hash>)

    array of replica information



168
169
170
171
172
# File 'lib/valkey/commands/cluster_commands.rb', line 168

def cluster_replicas(node_id)
  send_command(RequestType::CLUSTER_REPLICAS, [node_id]) do |reply|
    Utils::HashifyClusterSlaves.call(reply)
  end
end

#cluster_replicate(node_id) ⇒ String

Set a node as a replica of another node.

Parameters:

  • node_id (String)

    the master node ID

Returns:

  • (String)

    ‘“OK”`



178
179
180
# File 'lib/valkey/commands/cluster_commands.rb', line 178

def cluster_replicate(node_id)
  send_command(RequestType::CLUSTER_REPLICATE, [node_id])
end

#cluster_reset(hard = nil) ⇒ String

Reset the cluster.

Parameters:

  • hard (String) (defaults to: nil)

    hard reset

Returns:

  • (String)

    ‘“OK”`



186
187
188
189
190
# File 'lib/valkey/commands/cluster_commands.rb', line 186

def cluster_reset(hard = nil)
  args = []
  args << "HARD" if hard
  send_command(RequestType::CLUSTER_RESET, args)
end

#cluster_saveconfigString

Save the cluster configuration.

Returns:

  • (String)

    ‘“OK”`



195
196
197
# File 'lib/valkey/commands/cluster_commands.rb', line 195

def cluster_saveconfig
  send_command(RequestType::CLUSTER_SAVE_CONFIG)
end

#cluster_set_config_epoch(epoch) ⇒ String

Set the config epoch for a node.

Parameters:

  • epoch (Integer)

    the config epoch

Returns:

  • (String)

    ‘“OK”`



203
204
205
# File 'lib/valkey/commands/cluster_commands.rb', line 203

def cluster_set_config_epoch(epoch)
  send_command(RequestType::CLUSTER_SET_CONFIG_EPOCH, [epoch])
end

#cluster_setslot(slot, state, node_id = nil) ⇒ String

Set the state of a slot.

Parameters:

  • slot (Integer)

    the slot number

  • state (String)

    the state (importing, migrating, node, stable)

  • node_id (String) (defaults to: nil)

    the node ID (optional)

Returns:

  • (String)

    ‘“OK”`



213
214
215
216
217
# File 'lib/valkey/commands/cluster_commands.rb', line 213

def cluster_setslot(slot, state, node_id = nil)
  args = [slot, state]
  args << node_id if node_id
  send_command(RequestType::CLUSTER_SETSLOT, args)
end

#cluster_shardsArray<Hash>

Get information about cluster shards.

Returns:

  • (Array<Hash>)

    array of shard information



222
223
224
# File 'lib/valkey/commands/cluster_commands.rb', line 222

def cluster_shards
  send_command(RequestType::CLUSTER_SHARDS)
end

#cluster_slaves(node_id) ⇒ Array<Hash>

Get information about slave nodes (deprecated, use cluster_replicas).

Returns:

  • (Array<Hash>)

    array of slave information



229
230
231
232
233
# File 'lib/valkey/commands/cluster_commands.rb', line 229

def cluster_slaves(node_id)
  send_command(RequestType::CLUSTER_SLAVES, [node_id]) do |reply|
    Utils::HashifyClusterSlaves.call(reply)
  end
end

#cluster_slotsArray<Hash>

Get information about cluster slots.

Returns:

  • (Array<Hash>)

    array of slot information



238
239
240
241
242
# File 'lib/valkey/commands/cluster_commands.rb', line 238

def cluster_slots
  send_command(RequestType::CLUSTER_SLOTS) do |reply|
    Utils::HashifyClusterSlots.call(reply)
  end
end

#readonlyString

Set the connection to read-only mode.

Returns:

  • (String)

    “OK”



247
248
249
# File 'lib/valkey/commands/cluster_commands.rb', line 247

def readonly
  send_command(RequestType::READ_ONLY)
end

#readwriteString

Set the connection to read-write mode.

Returns:

  • (String)

    “OK”



254
255
256
# File 'lib/valkey/commands/cluster_commands.rb', line 254

def readwrite
  send_command(RequestType::READ_WRITE)
end