rladmin node enslave

Summary: Changes a node's resources to replicas.

Overview

Changes the resources of a node to replicas.

`node enslave`

Changes all of the node's endpoints and shards to replicas.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Changes all of the node's endpoints and shards to replicas             |
| demote_node           |                                | If the node is a primary node, changes the node to replica                     |
| retry_timeout_seconds | integer                        | Retries on failure until the specified number of seconds has passed.                    |

Returns

Returns `OK` if the roles were successfully changed. Otherwise, it returns an error.

Use [`rladmin status shards`]() to verify that the roles were changed.

Example

[code example]

`node enslave endpoints_only`

Changes the role for all endpoints on a node to replica.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Changes all of the node's endpoints to replicas                        |
| retry_timeout_seconds | integer                        | Retries on failure until the specified number of seconds has passed.                    |

Returns

Returns `OK` if the roles were successfully changed. Otherwise, it returns an error.

Use [`rladmin status endpoints`]() to verify that the roles were changed.

Example

[code example]

`node enslave shards_only`

Changes the role for all shards of a node to replica.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Changes all of the node's shards to replicas                          |
| retry_timeout_seconds | integer                        | Retries on failure until the specified number of seconds has passed.                    |

Returns

Example

[code example]

rladmin node <ID> enslave
        [demote_node]
        [retry_timeout_seconds <seconds>]

$ rladmin status shards node 2
SHARDS:
DB:ID      NAME           ID               NODE         ROLE         SLOTS                  USED_MEMORY            STATUS
db:6       tr02           redis:14         node:2       master       0-4095                 3.2MB                  OK
db:6       tr02           redis:16         node:2       master       4096-8191              3.12MB                 OK
db:6       tr02           redis:18         node:2       master       8192-12287             3.16MB                 OK
db:6       tr02           redis:20         node:2       master       12288-16383            3.12MB                 OK
$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS
*node:1 slave  192.0.2.12 198.51.100.1      3d99db1fdf4b 1/100  6           14.43GB/19.54GB  10.87GB/16.02GB  6.2.12-37 OK
node:2  master 192.0.2.13 198.51.100.2      fc7a3d332458 4/100  6           14.43GB/19.54GB  10.88GB/16.02GB  6.2.12-37 OK
node:3  slave  192.0.2.14                   b87cc06c830f 5/120  6           14.43GB/19.54GB  10.83GB/16.02GB  6.2.12-37 OK
$ rladmin node 2 enslave demote_node
Performing enslave_node action on node:2: 100%
OK
$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS
*node:1 master 192.0.2.12 198.51.100.1      3d99db1fdf4b 1/100  6           14.72GB/19.54GB  10.91GB/16.02GB  6.2.12-37 OK
node:2  slave  192.0.2.13 198.51.100.2      fc7a3d332458 4/100  6           14.72GB/19.54GB  11.17GB/16.02GB  6.2.12-37 OK
node:3  slave  192.0.2.14                   b87cc06c830f 5/120  6           14.72GB/19.54GB  10.92GB/16.02GB  6.2.12-37 OK
$ rladmin status shards node 2
SHARDS:
DB:ID      NAME             ID               NODE         ROLE       SLOTS                  USED_MEMORY            STATUS
db:6       tr02             redis:14         node:2       slave      0-4095                 2.99MB                 OK
db:6       tr02             redis:16         node:2       slave      4096-8191              3.01MB                 OK
db:6       tr02             redis:18         node:2       slave      8192-12287             2.93MB                 OK
db:6       tr02             redis:20         node:2       slave      12288-16383            3.06MB                 OK

rladmin node <ID> enslave endpoints_only
        [retry_timeout_seconds <seconds>]

$ rladmin status endpoints
ENDPOINTS:
DB:ID         NAME        ID                             NODE            ROLE                                       SSL
db:5          tr01        endpoint:5:1                   node:1          single                                     No
db:6          tr02        endpoint:6:1                   node:3          all-master-shards                          No
$ rladmin node 1 enslave endpoints_only
Performing enslave_node action on node:1: 100%
OK
$ rladmin status endpoints
ENDPOINTS:
DB:ID         NAME        ID                             NODE            ROLE                                       SSL
db:5          tr01        endpoint:5:1                   node:3          single                                     No
db:6          tr02        endpoint:6:1                   node:3          all-master-shards                          No

rladmin node <ID> enslave shards_only
        [retry_timeout_seconds <seconds>]

$ rladmin status shards node 3
SHARDS:
DB:ID      NAME           ID               NODE         ROLE         SLOTS                  USED_MEMORY            STATUS
db:5       tr01           redis:12         node:3       master       0-16383                3.04MB                 OK
db:6       tr02           redis:15         node:3       master       0-4095                 4.13MB                 OK
db:6       tr02           redis:17         node:3       master       4096-8191              4.13MB                 OK
db:6       tr02           redis:19         node:3       master       8192-12287             4.13MB                 OK
db:6       tr02           redis:21         node:3       master       12288-16383            4.13MB                 OK
$ rladmin node 3 enslave shards_only
Performing enslave_node action on node:3: 100%
OK
$ rladmin status shards node 3
SHARDS:
DB:ID      NAME             ID               NODE         ROLE       SLOTS                  USED_MEMORY            STATUS
db:5       tr01             redis:12         node:3       slave      0-16383                2.98MB                 OK
db:6       tr02             redis:15         node:3       slave      0-4095                 4.23MB                 OK
db:6       tr02             redis:17         node:3       slave      4096-8191              4.11MB                 OK
db:6       tr02             redis:19         node:3       slave      8192-12287             4.19MB                 OK
db:6       tr02             redis:21         node:3       slave      12288-16383            4.27MB                 OK


rladmin node external_addr

Summary: Configures a node's external IP addresses.

Overview

`node external_addr add`

Adds an external IP address that accepts inbound user connections for the node.

[code example]

Parameters

| Parameter | Type/Value                     | Description                                                                                |
|-----------|--------------------------------|-----------------------------------------------------------------------------------------------|
| node      | integer                        | Adds an external IP address for the specified node                                               |
| IP address | IP address                     | External IP address of the node                                                               |

Returns

Returns `Updated successfully` if the IP address was added. Otherwise, it returns an error.

Use [`rladmin status nodes`]() to verify the external IP address was added.

Example

[code example]

`node external_addr set`

Sets one or more external IP addresses that accepts inbound user connections for the node.

[code example]

Parameters

| Parameter | Type/Value                     | Description                                                                                |
|-----------|--------------------------------|-----------------------------------------------------------------------------------------------|
| node      | integer                        | Sets external IP addresses for the specified node                                             |
| IP address | list of IP addresses           | Sets specified IP addresses as external addresses                                                 |

Returns

Returns `Updated successfully` if the IP addresses were set. Otherwise, it returns an error.

Use [`rladmin status nodes`]() to verify the external IP address was set.

Example

[code example]

`node external_addr remove`

Removes the specified external IP address from the node.

[code example]

Parameters

| Parameter | Type/Value                     | Description                                                                                |
|-----------|--------------------------------|-----------------------------------------------------------------------------------------------|
| node      | integer                        | Removes an external IP address for the specified node                                            |
| IP address | IP address                     | Removes the specified IP address of the node                                                      |

Returns

Returns `Updated successfully` if the IP address was removed. Otherwise, it returns an error.

Use [`rladmin status nodes`]() to verify the external IP address was removed.

Example

[code example]

rladmin node <ID> external_addr
        add <IP address>

$ rladmin node 1 external_addr add 198.51.100.1
Updated successfully.
$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS   EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS
*node:1 master 192.0.2.2 198.51.100.1      3d99db1fdf4b 5/100  6           14.75GB/19.54GB  11.15GB/16.02GB  6.2.12-37 OK
node:2  slave  192.0.2.3                   fc7a3d332458 0/100  6           14.75GB/19.54GB  11.24GB/16.02GB  6.2.12-37 OK
node:3  slave  192.0.2.4                   b87cc06c830f 5/120  6           14.75GB/19.54GB  11.15GB/16.02GB  6.2.12-37 OK

rladmin node <ID> external_addr
        set <IP address 1> ... <IP address N>

rladmin node <ID> external_addr
        remove <IP address>

$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS   EXTERNAL_ADDRESS          HOSTNAME     SHARDS CORES FREE_RAM        PROVISIONAL_RAM VERSION   STATUS
*node:1 master 192.0.2.2 198.51.100.1              3d99db1fdf4b 5/100  6     14.75GB/19.54GB 11.15GB/16.02GB 6.2.12-37 OK
node:2  slave  192.0.2.3 198.51.100.2,198.51.100.3 fc7a3d332458 0/100  6     14.75GB/19.54GB 11.23GB/16.02GB 6.2.12-37 OK
node:3  slave  192.0.2.4                           b87cc06c830f 5/120  6     14.75GB/19.54GB 11.15GB/16.02GB 6.2.12-37 OK
$ rladmin node 2 external_addr remove 198.51.100.3
Updated successfully.
$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS   EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS
*node:1 master 192.0.2.2 198.51.100.1      3d99db1fdf4b 5/100  6           14.74GB/19.54GB  11.14GB/16.02GB  6.2.12-37 OK
node:2  slave  192.0.2.3 198.51.100.2      fc7a3d332458 0/100  6           14.74GB/19.54GB  11.22GB/16.02GB  6.2.12-37 OK
node:3  slave  192.0.2.4                   b87cc06c830f 5/120  6           14.74GB/19.54GB  11.14GB/16.02GB  6.2.12-37 OK


rladmin node

Summary: Manage nodes.

Summary: Sets a node's internal IP address.

rladmin node addr set

Summary: Changes a node's resources to replicas.

rladmin node enslave

rladmin node external_addr

Summary: Turns quorum-only mode on or off for a node.

rladmin node maintenance_mode

Summary: Sets a node's local recovery path.

rladmin node recovery_path set

Summary: Removes a node from the cluster.

rladmin node remove

Summary: Manages snapshots of the configuration of a node's shards and endpoints.

rladmin node snapshot

Content

`rladmin node` commands manage nodes in the cluster.


rladmin node maintenance_mode

Overview

Configures [quorum-only mode]() on a node.

`node maintenance_mode on`

Migrates shards out of the node and turns the node into a quorum node to prevent shards from returning to it.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Turns the specified node into a quorum node                                              |
| demote_node           |                                | If the node is a primary node, changes the node to replica                                |
| evict_ha_replica | `enabled`
`disabled` | Migrates the HA replica shards in the node |
| evict_active_active_replica | `enabled`
`disabled` | Migrates the Active-Active replica shards in the node |
| evict_dbs | list of database names or IDs | Specify databases whose shards should be evicted from the node when entering maintenance mode.

Examples:
`$ rladmin node 1 maintenance_mode on evict_dbs db:1 db:2`
`$ rladmin node 1 maintenance_mode on evict_dbs db_name1 db_name2` |
| keep_slave_shards     |                                | Keeps replica shards in the node and demotes primary shards to replicas.

Deprecated as of Redis Software 7.4.2. Use `evict_ha_replica disabled evict_active_active_replica disabled` instead. |
| max_concurrent_actions | integer | Maximum number of concurrent actions during node maintenance |
| overwrite_snapshot | | Overwrites the latest existing node snapshot taken when enabling maintenance mode |

Returns

Returns `OK` if the node was converted successfully. If the cluster does not have enough resources to migrate the shards, the process returns a warning.

Use [`rladmin status nodes`]() to verify the node became a quorum node.

Example

[code example]

`node maintenance_mode off`

Turns maintenance mode off and returns the node to its previous state.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Restores the node back to the previous state                                              |
| max_concurrent_actions | integer | Maximum number of concurrent actions during node maintenance |
| skip_shards_restore   |                                | Does not restore shards back to the node                                                  |
| snapshot_name         | string                         | Restores the node back to a state stored in the specified snapshot                        |

Returns

Returns `OK` if the node was restored successfully.

Use [`rladmin status nodes`]() to verify the node was restored.

Example

[code example]

rladmin node <ID> maintenance_mode on
        [ keep_slave_shards ]
        [ evict_ha_replica { enabled | disabled } ]
        [ evict_active_active_replica { enabled | disabled } ]
        [ evict_dbs <list of database names or IDs> ]
        [ demote_node ]
        [ overwrite_snapshot ]
        [ max_concurrent_actions <integer> ]

$ rladmin node 2 maintenance_mode on overwrite_snapshot
Found snapshot from 2024-01-06T11:36:47Z, overwriting the snapshot
Performing maintenance_on action on node:2: 0%
created snapshot NodeSnapshot<name=maintenance_mode_2024-01-11_20-25-37,time=None,node_uid=2>

node:2 will not accept any more shards
Performing maintenance_on action on node:2: 100%
OK
$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS
*node:1 master 192.0.2.12 198.51.100.1      3d99db1fdf4b 5/100  6           14.21GB/19.54GB  10.62GB/16.02GB  6.2.12-37 OK
node:2  slave  192.0.2.13 198.51.100.2      fc7a3d332458 0/0    6           14.21GB/19.54GB  0KB/0KB          6.2.12-37 OK
node:4  slave  192.0.2.14                   6d754fe12cb9 5/100  6           14.21GB/19.54GB  10.62GB/16.02GB  6.2.12-37 OK

rladmin node <ID> maintenance_mode off
        [ { snapshot_name <name> | skip_shards_restore } ]
        [ max_concurrent_actions <integer> ]

$ rladmin node 2 maintenance_mode off
Performing maintenance_off action on node:2: 0%
Found snapshot: NodeSnapshot<name=maintenance_mode_2022-05-12_20-25-37,time=2022-05-12T20:25:37Z,node_uid=2>
Performing maintenance_off action on node:2: 0%
migrate redis:12 to node:2: executing
Performing maintenance_off action on node:2: 0%
migrate redis:12 to node:2: finished
Performing maintenance_off action on node:2: 0%
migrate redis:17 to node:2: executing

migrate redis:15 to node:2: executing
Performing maintenance_off action on node:2: 0%
migrate redis:17 to node:2: finished

migrate redis:15 to node:2: finished
Performing maintenance_off action on node:2: 0%
failover redis:16: executing

failover redis:14: executing
Performing maintenance_off action on node:2: 0%
failover redis:16: finished

failover redis:14: finished
Performing maintenance_off action on node:2: 0%
failover redis:18: executing
Performing maintenance_off action on node:2: 0%
failover redis:18: finished

migrate redis:21 to node:2: executing

migrate redis:19 to node:2: executing
Performing maintenance_off action on node:2: 0%
migrate redis:21 to node:2: finished

migrate redis:19 to node:2: finished

failover redis:20: executing
Performing maintenance_off action on node:2: 0%
failover redis:20: finished
Performing maintenance_off action on node:2: 0%
rebind endpoint:6:1: executing
Performing maintenance_off action on node:2: 0%
rebind endpoint:6:1: finished
Performing maintenance_off action on node:2: 100%
OK
$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME      SHARDS CORES       FREE_RAM        PROVISIONAL_RAM  VERSION   STATUS
*node:1 master 192.0.2.12 198.51.100.1      3d99db1fdf4b  5/100  6           14.2GB/19.54GB  10.61GB/16.02GB  6.2.12-37 OK
node:2  slave  192.0.2.13 198.51.100.2      fc7a3d332458  5/100  6           14.2GB/19.54GB  10.61GB/16.02GB  6.2.12-37 OK
node:4  slave  192.0.2.14                   6d754fe12cb9  0/100  6           14.2GB/19.54GB  10.69GB/16.02GB  6.2.12-37 OK


rladmin node recovery_path set

Summary: Sets a node's local recovery path.

Overview

Sets the node's local recovery path, which specifies the directory where [persistence files]() are stored. You can use these persistence files to [recover a failed database]().

[code example]

Parameters

| Parameter | Type/Value                     | Description                                                                                |
|-----------|--------------------------------|-----------------------------------------------------------------------------------------------|
| node      | integer                        | Sets the recovery path for the specified node                                            |
| path      | filepath                       | Path to the folder where persistence files are stored                                         |

Returns

Returns `Updated successfully` if the recovery path was set. Otherwise, it returns an error.

Example

[code example]

rladmin node <ID> recovery_path set <path>

$ rladmin node 2 recovery_path set /var/opt/redislabs/persist/redis
Updated successfully.


rladmin node remove

Summary: Removes a node from the cluster.

Overview

Removes the specified node from the cluster.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                 |
|-----------------------|--------------------------------|-------------------------------------------------------------|
| node                  | integer                        | The node to remove from the cluster                    |
| wait_for_persistence  | `enabled`<br />`disabled`      | Ensures persistence files are available for recovery. The cluster policy `persistent_node_removal` determines the default value. |

Returns

Returns `OK` if the node was removed successfully. Otherwise, it returns an error.

Use [`rladmin status nodes`]() to verify that the node was removed.

Example

[code example]

rladmin node <ID> remove [ wait_for_persistence { enabled | disabled } ]

$ rladmin status nodes
CLUSTER NODES:
NODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS
*node:1 master 192.0.2.12 198.51.100.1      3d99db1fdf4b 5/100  6           14.26GB/19.54GB  10.67GB/16.02GB  6.2.12-37 OK
node:2  slave  192.0.2.13 198.51.100.2      fc7a3d332458 4/100  6           14.26GB/19.54GB  10.71GB/16.02GB  6.2.12-37 OK
node:3  slave  192.0.2.14                   b87cc06c830f 1/120  6           14.26GB/19.54GB  10.7GB/16.02GB   6.2.12-37 OK
$ rladmin node 3 remove
Performing remove action on node:3: 100%
OK
CLUSTER NODES:
NODE:ID ROLE   ADDRESS    EXTERNAL_ADDRESS  HOSTNAME     SHARDS CORES       FREE_RAM         PROVISIONAL_RAM  VERSION   STATUS
*node:1 master 192.0.2.12 198.51.100.1      3d99db1fdf4b 5/100  6           14.34GB/19.54GB  10.74GB/16.02GB  6.2.12-37 OK
node:2  slave  192.0.2.13 198.51.100.2      fc7a3d332458 5/100  6           14.34GB/19.54GB  10.74GB/16.02GB  6.2.12-37 OK


rladmin node snapshot

Overview

Manages snapshots of the configuration of a node's shards and endpoints.

You can create node snapshots and use them to restore the node's shards and endpoints to a configuration from a previous point in time. If you restore a node from a snapshot (for example, after an event such as failover or maintenance), the node's shards have the same placement and roles as when the snapshot was created.

`node snapshot create`

Creates a snapshot of a node's current configuration, including the placement of shards and endpoints on the node and the shards' roles.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Creates a snapshot of the specified node                    |
| name                  | string                         | Name of the created snapshot                                |

Returns

Returns `Done` if the snapshot was created successfully. Otherwise, returns an error.

Example

[code example]

`node snapshot delete`

Deletes an existing snapshot of a node.

[code example]

You cannot use this command to delete a snapshot created by maintenance mode. As of Redis Software version 7.4.2, only the latest maintenance mode snapshot is kept.

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Deletes a snapshot of the specified node                    |
| name                  | string                         | Deletes the specified snapshot                                |

Returns

Returns `Done` if the snapshot was deleted successfully. Otherwise, returns an error.

Example

[code example]

`node snapshot list`

Displays a list of created snapshots for the specified node.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Displays snapshots of the specified node                    |

Returns

Returns a list of snapshots of the specified node.

Example

[code example]

`node snapshot restore`

Restores a node's shards and endpoints as close to the stored snapshot as possible.

[code example]

Parameters

| Parameter             | Type/Value                     | Description                                                                               |
|-----------------------|--------------------------------|-------------------------------------------------------------------------------------------|
| node                  | integer                        | Restore the specified node from a snapshot.                    |
| restore              | string                           | Name of the snapshot used to restore the node.              |

Returns

Returns `Snapshot restore completed successfully` if the actions needed to restore the snapshot completed successfully. Otherwise, it returns an error.

Example

[code example]

rladmin node <ID> snapshot create <name>

$ rladmin node 1 snapshot create snap1
Creating node snapshot 'snap1' for node:1
Done.

rladmin node <ID> snapshot delete <name>

$ rladmin node 1 snapshot delete snap1
Deleting node snapshot 'snap1' for node:1
Done.

$ rladmin node 2 snapshot list
Name                                               Node    Time
snap2                                              2       2022-05-12T19:27:51Z

rladmin node <ID> snapshot restore <name>

$ rladmin node 2 snapshot restore snap2
Reading node snapshot 'snap2' for node:2
Planning restore
Planned actions:
* migrate redis:15 to node:2
* failover redis:14
* migrate redis:17 to node:2
* failover redis:16
* migrate redis:19 to node:2
* failover redis:18
* migrate redis:21 to node:2
* failover redis:20
Proceed?[Y]es/[N]o? Y
2022-05-12T19:43:31.486613 Scheduling 8 actions
[2022-05-12T19:43:31.521422 Actions Status: 8 waiting ]
* [migrate redis:21 to node:2] waiting => executing
* [migrate redis:19 to node:2] waiting => executing
* [migrate redis:17 to node:2] waiting => executing
* [migrate redis:15 to node:2] waiting => executing
[2022-05-12T19:43:32.586084 Actions Status: 4 executing | 4 waiting ]
* [migrate redis:21 to node:2] executing => finished
* [migrate redis:19 to node:2] executing => finished
* [migrate redis:17 to node:2] executing => finished
* [migrate redis:15 to node:2] executing => finished
* [failover redis:20] waiting => executing
* [failover redis:18] waiting => executing
* [failover redis:16] waiting => executing
* [failover redis:14] waiting => executing
[2022-05-12T19:43:33.719496 Actions Status: 4 finished | 4 executing ]
* [failover redis:20] executing => finished
* [failover redis:18] executing => finished
* [failover redis:16] executing => finished
* [failover redis:14] executing => finished
Snapshot restore completed successfully.


rladmin placement

Summary: Configures the shard placement policy for a database.

Overview

Configures the shard placement policy for a specified database.

[code example]

`rladmin placement db` is deprecated and will be removed in a future version. Use [`rladmin tune db`]() with the `shards_placement` parameter instead.

Parameters

| Parameter | Type/Value                     | Description                                                                                |
|-----------|--------------------------------|-----------------------------------------------------------------------------------------------|
| db        | db:\<id\><br /> name           | Configures shard placement for the specified database                                         |
| dense     |                                | Places new shards on the same node as long as it has resources                                |
| sparse    |                                | Places new shards on the maximum number of available nodes within the cluster                 |

Returns

Returns the new shard placement policy if the policy was changed successfully. Otherwise, it returns an error.

Use [`rladmin status databases`]() to verify that the failover completed.

Example

[code example]

rladmin placement
        db { db:<id> | <name> }
        { dense | sparse }

$ rladmin status databases
DATABASES:
DB:ID  NAME       TYPE   STATUS   SHARDS   PLACEMENT    REPLICATION    PERSISTENCE    ENDPOINT
db:5   tr01       redis  active   1        dense        enabled        aof            redis-12000.cluster.local:12000
$ rladmin placement db db:5 sparse
Shards placement policy is now sparse
$ rladmin status databases
DATABASES:
DB:ID  NAME       TYPE   STATUS   SHARDS   PLACEMENT    REPLICATION    PERSISTENCE    ENDPOINT
db:5   tr01       redis  active   1        sparse       enabled        aof            redis-12000.cluster.local:12000


rladmin recover

Summary: Recovers databases in recovery mode.

Overview

Recovers databases in recovery mode after events such as cluster failure, and restores the databases' configurations and data from stored persistence files. See [Recover a failed database]() for detailed instructions.

Database persistence files are stored in `/var/opt/redislabs/persist/redis/` by default, but you can specify a different directory to use for database recovery with [`rladmin node <id> recovery_path set <path>`]().

`recover all`

Recovers all databases in recovery mode.

[code example]

Parameters

| Parameters         | Type/Value | Description                                 |
|--------------------|------------|---------------------------------------------|
| only_configuration |            | Recover database configuration without data |

Returns

Returns `Completed successfully` if the database was recovered. Otherwise, returns an error.

Example

[code example]

`recover db`

Recovers a specific database in recovery mode.

[code example]

Parameters

| Parameters         | Type/Value           | Description                                 |
|--------------------|----------------------|---------------------------------------------|
| db                 | db:\<id\> <br />name | Database to recover                         |
| only_configuration |                      | Recover database configuration without data |

Returns

Example

[code example]

`recover list`

Shows a list of all databases that are currently in recovery mode.

[code example]

Parameters

Returns

Displays a list of all recoverable databases. If no databases are in recovery mode, returns `No recoverable databases found`.

Example

[code example]

`recover s3_import`

Imports current database snapshot files from an AWS S3 bucket to a directory on the node.

[code example]

Parameters

| Parameters           | Type/Value | Description                                                      |
|----------------------|------------|------------------------------------------------------------------|
| s3_bucket            | string     | S3 bucket name                                                   |
| s3_prefix            | string     | S3 object prefix                                                 |
| s3_access_key_id     | string     | S3 access key ID                                                 |
| s3_secret_access_key | string     | S3 secret access key                                             |
| import_path           | filepath   | Local import path where all database snapshots will be imported  |

Returns

Returns `Completed successfully` if the database files were imported. Otherwise, returns an error.

Example

[code example]

rladmin recover all
        [ only_configuration ]

$ rladmin recover all
  0% [ 0 recovered | 0 failed ] |         | Elapsed Time: 0:00:00[first-db (db:1) recovery] Initiated.[second-db (db:2) recovery] Initiated.
 50% [ 0 recovered | 0 failed ] |###      | Elapsed Time: 0:00:04[first-db (db:1) recovery] Completed successfully
 75% [ 1 recovered | 0 failed ] |######   | Elapsed Time: 0:00:06[second-db (db:2) recovery] Completed successfully
100% [ 2 recovered | 0 failed ] |#########| Elapsed Time: 0:00:08

rladmin recover db { db:<id> | <name> }
        [ only_configuration ]

$ rladmin recover db db:1
  0% [ 0 recovered | 0 failed ] |      | Elapsed Time: 0:00:00[demo-db (db:1) recovery] Initiated.
 50% [ 0 recovered | 0 failed ] |###   | Elapsed Time: 0:00:00[demo-db (db:1) recovery] Completed successfully
100% [ 1 recovered | 0 failed ] |######| Elapsed Time: 0:00:02

$ rladmin recover list
DATABASES IN RECOVERY STATE:
DB:ID  NAME  TYPE   SHARDS  REPLICATION  PERSISTENCE  STATUS
db:5   tr01  redis  1       enabled      aof          missing-files
db:6   tr02  redis  4       enabled      snapshot     ready

rladmin recover s3_import
                s3_bucket <bucket name>
                [ s3_prefix <prefix> ]
                s3_access_key_id <access key>
                s3_secret_access_key <secret access key>
                import_path <path>

rladmin recover s3_import s3_bucket <bucket-name> s3_prefix <s3-prefix>/ s3_access_key_id <access-key> s3_secret_access_key <secret-access-key> import_path /tmp


rladmin restart

Summary: Restarts Redis Software processes for a specific database.

Overview

Schedules a restart of the Redis Software processes on primary and replica instances of a specific database.

[code example]

Parameters

| Parameter      | Type/Value                     | Description                                                           |
|----------------|--------------------------------|-----------------------------------------------------------------------|
| db             | db:\<id\><br /> name           | Restarts Redis Software processes for the specified database                |
| discard_data   |                                | Allows discarding data if there is no persistence or replication      |
| force_discard  |                                | Forcibly discards data even if there is persistence or replication    |
| preserve_roles |                                | Performs an additional failover to maintain shard roles               |

Returns

Returns `Done` if the restart completed successfully. Otherwise, it returns an error.

Example

[code example]

rladmin restart db { db:<id> | <name> }
        [preserve_roles]
        [discard_data]
        [force_discard]

$ rladmin restart db db:5 preserve_roles
Monitoring 1db07491-35da-4bb6-9bc1-56949f4c312a
active - SMUpgradeBDB init
active - SMUpgradeBDB stop_forwarding
active - SMUpgradeBDB stop_active_expire
active - SMUpgradeBDB check_slave
oactive - SMUpgradeBDB stop_active_expire
active - SMUpgradeBDB second_failover
completed - SMUpgradeBDB
Done


rladmin status

Summary: Displays the current cluster status and topology information.

Overview

`status`

Displays the current status of all nodes, databases, database endpoints, and shards on the cluster.

[code example]

Parameters

| Parameter | Description |
|-----------|-------------|
| extra \<parameter\> | Extra options that show more information |
| issues_only | Filters out all items that have an `OK` status  |

| Extra parameter | Description |
|-------------------|-------------|
| extra all | Shows all `extra` information |
| extra backups | Shows periodic backup status |
| extra frag | Shows fragmented memory available after the restart |
| extra nodestats | Shows shards per node |
| extra rack_id | Shows `rack_id` and `second_rack_id` even if the cluster is not `rack_aware` |
| extra redis_version | Shows Redis version of all databases in the cluster |
| extra state_machine | Shows execution of state machine information  |
| extra watchdog | Shows watchdog status  |

Returns

Returns tables of the status of all nodes, databases, and database endpoints on the cluster.

If `issues_only` is specified, it only shows instances that do not have an `OK` status.

In the `CLUSTER NODES` section, `*node` indicates which node you are connected to.

For descriptions of the fields returned by `rladmin status extra all`, see the output tables for [nodes](#returns-nodes), [databases](#returns-dbs), [endpoints](#returns-endpoints), and [shards](#returns-shards).

Example

[code example]

`status databases`

Displays the current status of all databases on the cluster.

[code example]

Parameters

| Parameter | Description |
|-----------|-------------|
| extra \<parameter\> | Extra options that show more information |
| sort \<column_titles\> | Sort results by specified column titles |
| issues_only | Filters out all items that have an `OK` status  |

| Extra parameter | Description |
|-------------------|-------------|
| extra all | Shows all `extra` information |
| extra backups | Shows periodic backup status |
| extra frag | Shows fragmented memory available after the restart |
| extra nodestats | Shows shards per node |
| extra rack_id | Shows `rack_id` and `second_rack_id` even if the cluster is not `rack_aware` |
| extra redis_version | Shows Redis version of all databases in the cluster |
| extra state_machine | Shows execution of state machine information  |
| extra watchdog | Shows watchdog status  |

Returns {#returns-dbs}

Returns a table of the status of all databases on the cluster.

If `sort <column_titles>` is specified, the result is sorted by the specified table columns.

If `issues_only` is specified, it only shows databases that do not have an `OK` status.

The following table describes the fields returned by `rladmin status databases extra all`:

| Field | Description |
|-------|-------------|
| DB:ID | Database ID |
| NAME | Database name |
| TYPE | Database type: Redis or Memcached |
| STATUS | Database status |
| SHARDS | The number of primary shards in the database |
| PLACEMENT | How the shards are spread across nodes in the cluster, densely or sparsely |
| REPLICATION | Is replication enabled for the database |
| PERSISTENCE | Is persistence enabled for the database |
| ENDPOINT | Database endpoint |
| EXEC_STATE |  The current state of the state machine |
| EXEC_STATE_MACHINE | The name of the running state machine |
| BACKUP_PROGRESS | The database’s backup progress |
| MISSING_BACKUP_TIME | How long ago a backup was done |
| REDIS_VERSION | The database’s Redis version |

Example

[code example]

`status endpoints`

Displays the current status of all endpoints on the cluster.

[code example]

Parameters

| Parameter | Description |
|-----------|-------------|
| node \<id\> | Only show endpoints for the specified node ID |
| db db:\<id\> | Only show endpoints for the specified database ID |
| db \<name\> | Only show endpoints for the specified database name |
| extra \<parameter\> | Extra options that show more information |
| sort \<column_titles\> | Sort results by specified column titles |
| issues_only | Filters out all items that have an `OK` status  |

| Extra parameter | Description |
|-------------------|-------------|
| extra all | Shows all `extra` information |
| extra backups | Shows periodic backup status |
| extra frag | Shows fragmented memory available after the restart |
| extra nodestats | Shows shards per node |
| extra rack_id | Shows `rack_id` and `second_rack_id` even if the cluster is not `rack_aware` |
| extra redis_version | Shows Redis version of all endpoints in the cluster |
| extra state_machine | Shows execution of state machine information  |
| extra watchdog | Shows watchdog status  |

Returns {#returns-endpoints}

Returns a table of the status of all endpoints on the cluster.

If `sort <column_titles>` is specified, the result is sorted by the specified table columns.

If `issues_only` is specified, it only shows endpoints that do not have an `OK` status.

The following table describes the fields returned by `rladmin status endpoints extra all`:

| Field | Description |
|-------|-------------|
| DB:ID | Database ID |
| NAME | Database name |
| ID | Endpoint ID |
| NODE | The node that hosts the endpoint |
| ROLE | The proxy policy of the database: single, all-master-shards, or all-nodes |
| SSL | Is SSL enabled |
| WATCHDOG_STATUS | The shards related to the endpoint are monitored and healthy |

Example

[code example]

`status modules`

Displays the current status of modules installed on the cluster and modules used by databases. This information is not included in the combined status report returned by [`rladmin status`](#status).

[code example]

Parameters

| Parameter | Description |
|-----------|-------------|
| db db:\<id\> | Provide a list of database IDs to show only modules used by the specified databases
(for example: `rladmin status modules db db:1 db:2`) |
| db \<name\> | Provide a list of database names to show only modules used by the specified databases
(for example: `rladmin status modules db name1 name2`) |
| extra all | Shows all extra information |
| extra compatible_redis_version | Shows the compatible Redis database version for the module |
| extra module_id | Shows module IDs |
| extra min_redis_version | Shows the minimum compatible Redis database version for each module |

Returns

Returns the status of modules installed on the cluster and modules used by databases.

Example

[code example]

`status nodes`

Displays the current status of all nodes on the cluster.

[code example]

Parameters

| Parameter | Description |
|-----------|-------------|
| extra \<parameter\> | Extra options that show more information |
| sort \<column_titles\> | Sort results by specified column titles |
| issues_only | Filters out all items that have an `OK` status  |

| Extra parameter | Description |
|-------------------|-------------|
| extra all | Shows all `extra` information |
| extra backups | Shows periodic backup status |
| extra frag | Shows fragmented memory available after the restart |
| extra nodestats | Shows shards per node |
| extra rack_id | Shows `rack_id` and `second_rack_id` even if the cluster is not `rack_aware` |
| extra redis_version | Shows Redis version of all nodes in the cluster |
| extra state_machine | Shows execution of state machine information  |
| extra watchdog | Shows watchdog status  |

Returns {#returns-nodes}

Returns a table of the status of all nodes on the cluster.

If `sort <column_titles>` is specified, the result is sorted by the specified table columns.

If `issues_only` is specified, it only shows nodes that do not have an `OK` status.

`*node` indicates which node you are connected to.

The following table describes the fields returned by `rladmin status nodes extra all`:

| Field | Description |
|-------|-------------|
| NODE:ID | Node ID |
| ROLE | Is the node a primary (`master`) or secondary (`slave`) node |
| ADDRESS | The node’s internal IP address |
| EXTERNAL ADDRESS | The node’s external IP address |
| HOSTNAME | Node name |
| MASTERS | The number of primary shards on the node |
| SLAVES | The number of replica shards on the node |
| OVERBOOKING_DEPTH | Memory available to create new shards, accounting for the memory reserved for existing shards to grow, even if `shards_overbooking` is enabled. A negative value indicates how much memory is overbooked rather than just showing that no memory is available for new shards. |
| SHARDS | The number of shards on the node |
| CORES | The number of cores on the node |
| FREE_RAM | free_memory/total_memory
**free_memory**: the amount of free memory reported by the OS.
**total_memory**: the total physical memory available on the node. |
| PROVISIONAL_RAM | Memory available to create new shards, displayed as available_provisional_memory/total_provisional_memory.
**available_provisional_memory**: memory currently available for the creation of new shards.
**total_provisional_memory**: memory that would be available to create new shards if the used memory on the node was 0.
If the available provisional memory is 0, the node cannot create new shards because the node has reached its shard limit, is in maintenance mode, or is a quorum-only node. |
| FLASH | The amount of flash memory available on the node, similar to `FREE_RAM` |
| AVAILABLE_FLASH | Flash memory available to create new shards, similar to `PROVISIONAL_RAM` |
| VERSION | The cluster version installed on the node |
| SHA | The node’s SHA hash |
| RACK-ID | The node’s rack ID |
| STATUS | The node’s status |

Example

[code example]

`status shards`

Displays the current status of all shards on the cluster.

[code example]

Parameters

| Parameter | Description |
|-----------|-------------|
| node \<id\> | Only show shards for the specified node ID |
| db db:\<id\> | Only show shards for the specified database ID |
| db \<name\> | Only show shards for the specified database name |
| extra \<parameter\> | Extra options that show more information |
| sort \<column_titles\> | Sort results by specified column titles |
| issues_only | Filters out all items that have an `OK` status  |

| Extra parameter | Description |
|-------------------|-------------|
| extra all | Shows all `extra` information |
| extra backups | Shows periodic backup status |
| extra frag | Shows fragmented memory available after the restart |
| extra shardstats | Shows shards per node |
| extra rack_id | Shows `rack_id` and `second_rack_id` even if the cluster is not `rack_aware` |
| extra redis_version | Shows Redis version of all shards in the cluster |
| extra state_machine | Shows execution of state machine information  |
| extra watchdog | Shows watchdog status  |

Returns {#returns-shards}

Returns a table of the status of all shards on the cluster.

If `sort <column_titles>` is specified, the result is sorted by the specified table columns.

If `issues_only` is specified, it only shows shards that do not have an `OK` status.

The following table describes the fields returned by `rladmin status shards extra all`:

| Field | Description |
|-------|-------------|
| DB:ID | Database ID |
| NAME | Database name |
| ID | Shard ID |
| NODE | The node on which the shard resides |
| ROLE | The shard’s role: primary (`master`) or replica (`slave`) |
| SLOTS | Redis keys slot range of the shard |
| USED_MEMORY | Memory used by the shard |
| BACKUP_PROGRESS | The shard’s backup progress |
| RAM_FRAG | The shard’s RAM fragmentation caused by deleted data or expired keys. A large value can indicate inefficient memory allocation. |
| FLASH_FRAG | For Auto Tiering databases, the shard’s flash fragmentation |
| WATCHDOG_STATUS | The shard is being monitored by the node watchdog and the shard is healthy |
| STATUS | The shard’s status |

Example

[code example]

rladmin status
        [ extra <parameter> ]
        [ issues_only]

$ rladmin status extra all
CLUSTER:
OK. Cluster master: 1 (198.51.100.2)
Cluster health: OK, [1, 0.13333333333333333, 0.03333333333333333]
failures/minute - avg1 1.00, avg15 0.13, avg60 0.03.

CLUSTER NODES:
NODE:ID ROLE   ADDRESS      EXTERNAL_ADDRESS HOSTNAME     MASTERS SLAVES OVERBOOKING_DEPTH SHARDS CORES FREE_RAM        PROVISIONAL_RAM VERSION   SHA    RACK-ID STATUS
node:1  master 198.51.100.2                  3d99db1fdf4b 4       0      10.91GB           4/100  6     14.91GB/19.54GB 10.91GB/16.02GB 6.2.12-37 5c2106 -       OK
node:2  slave  198.51.100.3                  fc7a3d332458 0       0      11.4GB            0/100  6     14.91GB/19.54GB 11.4GB/16.02GB  6.2.12-37 5c2106 -       OK
*node:3 slave  198.51.100.4                  b87cc06c830f 0       0      11.4GB            0/100  6     14.91GB/19.54GB 11.4GB/16.02GB  6.2.12-37 5c2106 -       OK

DATABASES:
DB:ID NAME      TYPE  STATUS SHARDS PLACEMENT REPLICATION PERSISTENCE ENDPOINT                        EXEC_STATE EXEC_STATE_MACHINE BACKUP_PROGRESS MISSING_BACKUP_TIME REDIS_VERSION
db:3  database3 redis active 4      dense     disabled    disabled    redis-11103.cluster.local:11103 N/A        N/A                N/A             N/A                 6.0.16

ENDPOINTS:
DB:ID     NAME             ID                    NODE       ROLE       SSL        WATCHDOG_STATUS
db:3      database3        endpoint:3:1          node:1     single     No         OK

SHARDS:
DB:ID NAME      ID      NODE   ROLE   SLOTS       USED_MEMORY BACKUP_PROGRESS RAM_FRAG WATCHDOG_STATUS STATUS
db:3  database3 redis:4 node:1 master 0-4095      2.08MB      N/A             4.73MB   OK              OK
db:3  database3 redis:5 node:1 master 4096-8191   2.08MB      N/A             4.62MB   OK              OK
db:3  database3 redis:6 node:1 master 8192-12287  2.08MB      N/A             4.59MB   OK              OK
db:3  database3 redis:7 node:1 master 12288-16383 2.08MB      N/A             4.66MB   OK              OK

rladmin status databases
        [ extra <parameters> ]
        [ sort <column_titles> ]
        [ issues_only ]

$ rladmin status databases sort REPLICATION PERSISTENCE
DB:ID NAME      TYPE  STATUS SHARDS PLACEMENT REPLICATION PERSISTENCE ENDPOINT
db:1  database1 redis active 1      dense     disabled    disabled    redis-10269.testdbd11169.localhost:10269
db:2  database2 redis active 1      dense     disabled    snapshot    redis-13897.testdbd11169.localhost:13897
db:3  database3 redis active 1      dense     enabled     snapshot    redis-19416.testdbd13186.localhost:19416

rladmin status endpoints
        [ node <id> ]
        [ db { db:<id> | <name> } ]
        [ extra <parameters> ]
        [ sort <column_titles> ]
        [ issues_only ]

$ rladmin status endpoints
DB:ID     NAME             ID                    NODE        ROLE        SSL
db:1      database1        endpoint:1:1          node:1      single      No
db:2      database2        endpoint:2:1          node:2      single      No
db:3      database3        endpoint:3:1          node:3      single      No

rladmin status modules
        [ db { db:<id1> | <name1> } ... { db:<idN> | <nameN> } ]
        [ extra { all | compatible_redis_version | min_redis_version | module_id } ]

$ rladmin status modules extra all
CLUSTER MODULES:
MODULE           VERSION   MIN_REDIS_VERSION  ID
RedisBloom       2.4.5     6.0                1b895a180592cbcae5bd3bff6af24be2
RedisBloom       2.6.8     7.1                95264e7c9ac9540268c115c86a94659b
RediSearch 2     2.6.12    6.0                2c000539f65272f7a2712ed3662c2b6b
RediSearch 2     2.8.9     7.1                dd9a75710db528afa691767e9310ac6f
RedisGears       2.0.15    7.1                18c83d024b8ee22e7caf030862026ca6
RedisGraph       2.10.12   6.0                5a1f2fdedb8f6ca18f81371ea8d28f68
RedisJSON        2.4.7     6.0                28308b101a0203c21fa460e7eeb9344a
RedisJSON        2.6.8     7.1                b631b6a863edde1b53b2f7a27a49c004
RedisTimeSeries  1.8.11    6.0                8fe09b00f56afe5dba160d234a6606af
RedisTimeSeries  1.10.9    7.1                98a492a017ea6669a162fd3503bf31f3

DATABASE MODULES:
DB:ID      NAME             MODULE            VERSION  ARGS              STATUS
db:1       search-json-db   RediSearch 2      2.8.9    PARTITIONS AUTO   OK
db:1       search-json-db   RedisJSON         2.6.8                      OK
db:2       timeseries-db    RedisTimeSeries   1.10.9                     OK

rladmin status nodes
        [ extra <parameters> ]
        [ sort <column_titles> ]
        [ issues_only ]

$ rladmin status nodes sort PROVISIONAL_RAM HOSTNAME
CLUSTER NODES:
NODE:ID     ROLE       ADDRESS          EXTERNAL_ADDRESS          HOSTNAME            SHARDS     CORES          FREE_RAM                 PROVISIONAL_RAM          VERSION        STATUS
node:1      master     198.51.100.2                                 3d99db1fdf4b        4/100      6              14.74GB/19.54GB          10.73GB/16.02GB          6.2.12-37      OK
*node:3     slave      198.51.100.4                                 b87cc06c830f        0/100      6              14.74GB/19.54GB          11.22GB/16.02GB          6.2.12-37      OK
node:2      slave      198.51.100.3                                 fc7a3d332458        0/100      6              14.74GB/19.54GB          11.22GB/16.02GB          6.2.12-37      OK

rladmin status shards
        [ node <id> ]
        [ db {db:<id> | <name>} ]
        [ extra <parameters> ]
        [ sort <column_titles> ]
        [ issues_only ]

$ rladmin status shards sort USED_MEMORY ID
SHARDS:
DB:ID               NAME                       ID                   NODE               ROLE               SLOTS                           USED_MEMORY                     STATUS
db:3                database3                  redis:6              node:1             master             8192-12287                      2.04MB                          OK
db:3                database3                  redis:4              node:1             master             0-4095                          2.08MB                          OK
db:3                database3                  redis:5              node:1             master             4096-8191                       2.08MB                          OK
db:3                database3                  redis:7              node:1             master             12288-16383                     2.08MB                          OK


rladmin suffix

Summary: Manages the DNS suffixes in the cluster.

Overview

`suffix add`

Adds a DNS suffix to the cluster.

[code example]

Parameters

| Parameter | Type/Value       | Description                                                                                |
|-----------|------------------|-----------------------------------------------------------------------------------------------|
| name      | string           | DNS suffix to add to the cluster                                                             |
| default   |                  | Sets the given suffix as the default. If a default already exists, this overwrites it.  |
| internal  |                  | Forces the given suffix to use private IPs                                                    |
| mdns      |                  | Activates multicast DNS support for the given suffix                                           |
| slaves    | list of IPv4 addresses | The given suffix will notify the frontend DNS servers when a change in the frontend DNS has occurred |
| use_aaaa_ns |                | Activates IPv6 address support |

Returns

Returns `Added suffixes successfully` if the suffix was added. Otherwise, it returns an error.

Example

[code example]

`suffix delete`

Deletes an existing DNS suffix from the cluster.

[code example]

Parameters

| Parameter | Type/Value       | Description                                                                                |
|-----------|------------------|-----------------------------------------------------------------------------------------------|
| name      | string           | DNS suffix to delete from the cluster                                                         |

Returns

Returns `Suffix deleted successfully` if the suffix was deleted. Otherwise, it returns an error.

Example

[code example]

`suffix list`

Lists the DNS suffixes in the cluster.

[code example]

Parameters

Returns

Returns a list of the DNS suffixes.

Example

[code example]

rladmin suffix add name <name>
        [default]
        [internal]
        [mdns]
        [use_aaaa_ns]
        [slaves <ip>..]

$ rladmin suffix add name new.rediscluster.local
Added suffixes successfully

$ rladmin suffix delete name new.rediscluster.local
Suffix deleted successfully

$ rladmin suffix list
List of all suffixes:
cluster.local
new.rediscluster.local


rladmin tune

Summary: Configures parameters for databases, proxies, nodes, and clusters.

Overview

`tune cluster`

Configures cluster parameters.

[code example]

Parameters

| Parameters                             | Type/Value                        | Description                                                                                |
|----------------------------------------|-----------------------------------|------------------------------------------------------------------------------------------------------------------------------|
| acl_pubsub_default | `resetchannels`
 `allchannels` | Default pub/sub ACL rule for all databases in the cluster:
•`resetchannels` blocks access to all channels (restrictive)
•`allchannels` allows access to all channels (permissive) |
| automatic_node_offload | `enabled`
`disabled` | Define whether automatic node offload migration will take place |
| auto_recovery | `enabled`
`disabled` | Defines whether to use automatic recovery after shard failure |
| data_internode_encryption              | `enabled`
`disabled`       | Activates or deactivates [internode encryption]() for new databases    |
| db_conns_auditing                      | `enabled`
 `disabled`      | Activates or deactivates [connection auditing]() by default for new databases of a cluster                                                                  |
| default_concurrent_restore_actions     | integer
`all`              | Default number of concurrent actions when restoring a node from a snapshot (positive integer or "all")                         |
| default_non_sharded_proxy_policy | `single`

`all-master-shards`

`all-nodes` | Default [proxy policy]() for newly created non-sharded databases' endpoints |
| default_oss_sharding | `enabled`
`disabled` | Default hashing policy to use for new databases. Set to `disabled` by default. This field is for future use only and should not be changed. |
| default_recovery_wait_time | integer | The default time for new databases to wait for the persistence file to be available during automatic recovery. After the wait time expires, auto recovery completes with potential data loss. The default `-1` means to wait forever. |
| default_redis_version                  | version number                    | The default Redis database compatibility version used to create new databases.

  The value parameter should be a version number in the form of "x.y" where _x_ represents the major version number and _y_ represents the minor version number.  The final value corresponds to the desired version of Redis.

You cannot set _default_redis_version_ to a value higher than that supported by the current _redis_upgrade_policy_ value. |
| default_sharded_proxy_policy | `single`

`all-master-shards`

`all-nodes` | Default [proxy policy]() for newly created sharded databases' endpoints |
| default_shards_placement | `dense`
`sparse` | New databases place shards according to the default [shard placement policy]() |
| default_tracking_table_max_keys_policy | integer (default: 1000000) | Defines the default value of the client-side caching invalidation table size for new databases. 0 makes the cache unlimited. |
| expose_hostnames_for_all_suffixes      | `enabled`
`disabled`       | Exposes hostnames for all DNS suffixes                                                                                |
| failure_detection_sensitivity | `high`
`low` | Predefined thresholds and timeouts for failure detection (previously known as `watchdog_profile`)
• `high` (previously `local-network`) – high failure detection sensitivity, lower thresholds, faster failure detection and failover
• `low` (previously `cloud`) – low failure detection sensitivity, higher tolerance for latency variance (also called network jitter) |
| filter_node_wd_health_metrics | `enabled`
`disabled` | When enabled, `node_wd` health metrics (`shard_ping_failures`, `endpoint_ping_failures`, `dmc_ping_failures` and their duration counterparts) are not emitted to `statsd` |
| login_lockout_counter_reset_after      | time in seconds                   | Time after failed login attempt before the counter resets to 0                                                                   |
| login_lockout_duration                 | time in seconds                   | Time a locked account remains locked ( "0" means only an admin can unlock the account)                                   |
| login_lockout_threshold                | integer                           | Number of failed sign-in attempts to trigger locking a user account ("0" means never lock the account)                   |
| max_saved_events_per_type              | integer                           | Maximum number of events each type saved in CCS per object type                                                              |
| max_simultaneous_backups               | integer (default: 4)                      | Number of database backups allowed to run at the same time. Combines with `max_redis_forks` (set by [`tune node`](#tune-node)) to determine the number of shard backups allowed to run simultaneously.                                                                                |
| metrics_exporter_expose_bdb_name       | `enabled`
`disabled`       | If enabled, adds a label with the database name to relevant metrics                                                          |
| parallel_shards_upgrade                | integer
`all`              | Number of shards upgraded in parallel during DB upgrade (positive integer or "all")                                          |
| redis_migrate_node_threshold           | size in MB                        | Memory (in MBs by default or can be specified) needed to migrate a database between nodes                                   |
| redis_migrate_node_threshold_percent   | percentage                | Memory (in percentage) needed to migrate a database between nodes                                                            |
| redis_provision_node_threshold         | size in MB                        | Memory (in MBs by default or can be specified) needed to provision a new database                                           |
| redis_provision_node_threshold_percent | percentage                | Memory (in percentage) needed to provision a new database                                                                    |
| redis_upgrade_policy                   | `latest`
`major`           | When you upgrade or create a new Redis database, this policy determines which version of Redis database compatibility is used.

Supported values are:

`latest`, which applies the most recent Redis compatibility update \(_effective default prior to v6.2.4_)

`major`, which applies the most recent major release compatibility update (_default as of v6.2.4_).

                                                                                |
| repl_diskless                          | `enabled`
`disabled`       | Activates or deactivates diskless replication (can be overridden per database)                                              |
| resp3_default | `enabled`
 `disabled` | Determines the default value of the `resp3` option upon upgrading a database to version 7.2 (defaults to `enabled`) |
| show_internals                         | `enabled`
`disabled`       | Controls the visibility of internal databases that are only used for the cluster's management                                |
| slave_ha                               | `enabled`
 `disabled`   | Activates or deactivates [replica high availability]() in the cluster
(enabled by default; use [`rladmin tune db`](#tune-db) to change `slave_ha` for a specific database)

Deprecated as of Redis Software v7.2.4. |
| slave_ha_bdb_cooldown_period           | time in seconds (default: 7200) | Time (in seconds) a database must wait after its shards are relocated by [replica high availability]() before it can go through another shard migration if another node fails (default is 2 hours) |
| slave_ha_cooldown_period               | time in seconds (default: 3600) | Time (in seconds) [replica high availability]() must wait after relocating shards due to node failure before performing another shard migration for any database in the cluster (default is 1 hour) |
| slave_ha_grace_period                  | time in seconds (default: 600) | Time (in seconds) between when a node fails and when [replica high availability]() starts relocating shards to another node      |
| watchdog_profile                       | `cloud`
 `local-network` | Watchdog profiles with preconfigured thresholds and timeouts (deprecated as of Redis Software v6.4.2-69; use `failure_detection_sensitivity` instead)
• `cloud` is suitable for common cloud environments and has a higher tolerance for latency variance (also called network jitter).
• `local-network` is suitable for dedicated LANs and has better failure detection and failover times. |

Returns

Returns `Finished successfully` if the cluster configuration was changed. Otherwise, it returns an error.

Use [`rladmin info cluster`]() to verify the cluster configuration was changed.

Example

[code example]

`tune db`

Configures database parameters.

[code example]

Parameters

| Parameter                            | Type/Value                       | Description                                                                                |
|--------------------------------------|----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
| db:id                                | integer                          | ID of the specified database                                                                                |
| name                                 | string                           | Name of the specified database                                                                                |
| client_buffer                        | value in MB hard:soft:time       | Redis client output buffer limits                                                                                |
| conns                                | integer                          | Size of internal connection pool, specified per-thread or per-shard depending on conns_type                                           |
| conns_type                           | `per-thread`
 `per-shard`   | Specifies connection pool size as either per-thread or per-shard                                                                      |
| continue_on_error                    |                                  | Flag that skips tuning shards that can't be reached                                                                                |
| crdt_repl_backlog                    | value in MB
 `auto`         | Size of the Active-Active replication buffer                                                                                |
| crdt_xadd_id_uniqueness_mode         | `liberal`
 `semi-strict`
 `strict` | XADD's behavior in an Active-Active database, defined as liberal, semi-strict, or strict (see descriptions below)         |
| data_internode_encryption            | `enabled`
 `disabled`       | Activates or deactivates [internode encryption]() for the database               |
| db_conns_auditing                    | `enabled`
 `disabled`       | Activates or deactivates database [connection auditing]() for a database                                                                 |
| gradual_src_mode                     | `enabled`
 `disabled`       | Activates or deactivates gradual sync of sources                                                                                |
| gradual_sync_max_shards_per_source   | integer                          | Number of shards per sync source that can be replicated in parallel (positive integer)                                                |
| gradual_sync_mode                    | `enabled`
 `disabled`
 `auto` | Activates, deactivates, or automatically determines gradual sync of source shards                                              |
| master_persistence                   | `enabled`
 `disabled`       | If enabled, persists the primary shard in addition to replica shards in a replicated and persistent database. |
| max_aof_file_size                    | size in MB                       | Maximum size (in MB, if not specified) of [AoF]() file (minimum value is 10 GB)              |
| max_aof_load_time | time in seconds | Time limit in seconds to load a shard from an append-only file (AOF). If exceeded, an AOF rewrite is initiated to decrease future load time.
Minimum: 2700 seconds (45 minutes)
Default: 3600 seconds (1 hour) |
| max_client_pipeline                  | integer                          | Maximum commands in the proxy's pipeline per client connection (max value is 2047, default value is 200)                              |
| max_connections                      | integer                          | Maximum client connections to the database's endpoint (default value is 0, which is unlimited)                                            |
| max_shard_pipeline                   | integer                          | Maximum commands in the proxy's pipeline per shard connection (default value is 200)                                                  |
| maxclients                           | integer                          | Controls the maximum client connections between the proxy and shards (default value is 10000)                                         |
| metrics_export_all                   | `enabled`
 `disabled`       | Activates the exporter to expose all shard metrics                                                                                |
| mkms                                 | `enabled`
 `disabled`       | Activates multi-key multi-slot commands                                                                                |
| module_config_params | string | Configures module arguments at runtime. Enclose `module_config_params` within quotation marks. |
| module_name | `search`
`ReJSON`
`graph`
`timeseries`
`bf`
`rg` | The module to configure with `module_config_params` |
| mtls_allow_outdated_certs             | `enabled`
 `disabled`       | If enabled, allows outdated certificates in mTLS connections                                   |
| mtls_allow_weak_hashing              | `enabled`
 `disabled`       | Activates weak hashing (less than 2048 bits) in mTLS connections                       |
| oss_cluster                          | `enabled`
 `disabled`       | Activates OSS cluster API                                                                                |
| oss_cluster_api_preferred_ip_type    | `internal`
 `external`      | IP type for the endpoint and database in the OSS cluster API (default is internal)                                     |
| repl_backlog                         | size in MB
 `auto`          | Size of the replication buffer                                                                                |
| repl_diskless                        | `enabled`
 `disabled`
 `default`   | Activates or deactivates diskless replication (defaults to the cluster setting)                                          |
| repl_timeout                         | time in seconds                  | Replication timeout (in seconds)                                                                                |
| resp3 | `enabled`
 `disabled` | Enables or deactivates RESP3 support (defaults to `enabled`) |
| schedpolicy                          | `cmp`
 `mru`
 `spread`
 `mnp` | Controls how server-side connections are used when forwarding traffic to shards                                           |
| shards_placement | `dense`
 `sparse` | Configures the [shard placement policy]() for the database |
| skip_import_analyze                  | `enabled`
 `disabled`       | Skips the analyzing step when importing a database                                                                                |
| slave_buffer                         | `auto`
value in MB
 hard:soft:time | Redis replica output buffer limits
• `auto`: dynamically adjusts the buffer limit based on the shard’s current used memory
• value in MB: sets the buffer limit in MB
• hard:soft:time: sets the hard limit (maximum buffer size in MB), soft limit in MB, and the time in seconds that the soft limit can be exceeded |
| slave_ha                             | `enabled`
 `disabled`       | Activates or deactivates replica high availability (defaults to the cluster setting)                                                      |
| slave_ha_priority                    | integer                          | Priority of the database in the replica high-availability mechanism                                                                           |
| syncer_mode                          | `distributed`
 `centralized`| Configures syncer to run in distributed or centralized mode. For distributed syncer, the DMC policy must be all-nodes or all-master-nodes |
| syncer_monitoring                    | `enabled`
 `disabled`       | Activates syncer monitoring                                                                                |
| tracking_table_max_keys | integer | The client-side caching invalidation table size. 0 makes the cache unlimited. |

| XADD behavior mode | Description |
| - | - |
| liberal | XADD succeeds with any valid ID (not recommended, allows duplicate IDs) |
| semi-strict | Allows a full ID. Partial IDs are completed with the unique database instance ID (not recommended, allows duplicate IDs). |
| strict | XADD fails if a full ID is given. Partial IDs are completed using the unique database instance ID. |

Returns

Returns `Finished successfully` if the database configuration was changed. Otherwise, it returns an error.

Use [`rladmin info db`]() to verify the database configuration was changed.

Example

[code example]

`tune node`

Configures node parameters.

[code example]

Parameters

| Parameter            | Type/Value | Description                                                                                |
|----------------------|------------|----------------------------------------------------------------------------------------------------------------------------------|
| id                   | integer    | ID of the specified node                                                                                |
| all                  |            | Configures settings for all nodes                                                                                |
| max_listeners        | integer    | Maximum number of endpoints that may be bound to the node                                                                        |
| max_redis_forks      | integer    | Maximum number of background processes forked from shards that may exist on the node at any given time                           |
| max_redis_servers    | integer    | Maximum number of shards allowed to reside on the node                                                                           |
| max_slave_full_syncs | integer    | Maximum number of simultaneous replica full-syncs that may be running at any given time (0: Unlimited, -1: Use cluster settings) |
| quorum_only          | `enabled`<br /> `disabled` | If activated, configures the node as a [quorum-only node]()                         |

Returns

Returns `Finished successfully` if the node configuration was changed. Otherwise, it returns an error.

Use [`rladmin info node`]() to verify the node configuration was changed.

Example

[code example]

`tune proxy`

Configures proxy parameters.

[code example]

Parameters

| Parameter       | Type/Value                 | Description                                                                         |
|-----------------|----------------------------|-------------------------------------------------------------------------------------|
| id              | integer                    | ID of the specified proxy                                                           |
| all             |                            | Configures settings for all proxies                                                 |
| client_eviction | boolean (default: false) | If `true,`, enables client eviction based on `maxmemory_clients`. |
| incoming_connections_capacity | integer (default: 0) | The maximum number of concurrent incoming connections, also known as the maximum burst size. The default is 0, which means no limit. |
| incoming_connections_min_capacity | integer (default: 10) | The minimum number of free slots required before accepting new connections after an overflow. |
| incoming_connections_rate_limit | integer (default: 0) | The maximum number of incoming connections per second. The default is 0, which means no limit. |
| max_threads     | integer, (range: 1-255) | Maximum number of threads allowed                                                   |
| mode            | `static`<br /> `dynamic` | Determines if the proxy automatically adjusts the number of threads based on load size  |
| scale_duration  | time in seconds, (range: 10-300) | Time of scale_threshold CPU utilization before the automatic proxy automatically scales |
| scale_threshold | percentage, (range: 50-99) | CPU utilization threshold that triggers spawning new threads                        |
| threads         | integer, (range: 1-255) | Initial number of threads created at startup                                        |

Returns

Returns `OK` if the proxy configuration was changed. Otherwise, it returns an error.

Use [`rladmin info proxy`]() to verify the proxy configuration was changed.

Example

[code example]

rladmin tune cluster
        [ repl_diskless { enabled | disabled } ]
        [ redis_provision_node_threshold <size> ]
        [ redis_migrate_node_threshold <size> ]
        [ redis_provision_node_threshold_percent <percent> ]
        [ redis_migrate_node_threshold_percent <percent> ]
        [ max_simultaneous_backups <number> ]
        [ failure_detection_sensitivity { high | low } ]
        [ watchdog_profile { cloud | local-network } ]
        [ slave_ha { enabled | disabled } ]
        [ slave_ha_grace_period <seconds> ]
        [ slave_ha_cooldown_period <seconds> ]
        [ slave_ha_bdb_cooldown_period <seconds> ]
        [ max_saved_events_per_type <value> ]
        [ metrics_exporter_expose_bdb_name { enabled | disabled } ]
        [ parallel_shards_upgrade <value> ]
        [ default_concurrent_restore_actions <value> ]
        [ show_internals { enabled | disabled } ]
        [ expose_hostnames_for_all_suffixes { enabled | disabled } ]
        [ redis_upgrade_policy { latest | major } ]
        [ default_redis_version <value> ]
        [ default_non_sharded_proxy_policy { single | all-master-shards | all-nodes } ]
        [ default_sharded_proxy_policy { single | all-master-shards | all-nodes } ]
        [ default_shards_placement { dense | sparse } ]
        [ data_internode_encryption { enabled | disabled } ]
        [ db_conns_auditing { enabled | disabled } ]
        [ acl_pubsub_default { resetchannels | allchannels } ]
        [ resp3_default { enabled | disabled } ]
        [ automatic_node_offload { enabled | disabled } ]
        [ auto_recovery { enabled | disabled } ]
        [ default_recovery_wait_time <value> ]
        [ default_tracking_table_max_keys_policy <value> ]
        [ default_oss_sharding { enabled | disabled } ]
        [ filter_node_wd_health_metrics { enabled | disabled } ]
 ]

$ rladmin tune cluster slave_ha enabled
Finished successfully
$ rladmin info cluster | grep slave_ha
    slave_ha: enabled

rladmin tune db { db:<id> | <name> }
        [ slave_buffer <auto | valueMB | hard:soft:time> ]
        [ client_buffer <value> ]
        [ repl_backlog <valueMB | auto> ]
        [ crdt_repl_backlog <valueMB | auto> ]
        [ repl_timeout <seconds> ]
        [ repl_diskless { enabled | disabled | default } ]
        [ master_persistence { enabled | disabled } ]
        [ maxclients <value> ]
        [ schedpolicy { cmp | mru | spread | mnp } ]
        [ max_shard_pipeline <value> ]
        [ conns <value> ]
        [ conns_type <value> ]
        [ max_client_pipeline <value> ]
        [ max_connections <value> ]
        [ max_aof_file_size <size> ]
        [ max_aof_load_time <seconds> ]
        [ oss_cluster { enabled | disabled } ]
        [ oss_cluster_api_preferred_ip_type <value> ]
        [ slave_ha { enabled | disabled } ]
        [ slave_ha_priority <value> ]
        [ skip_import_analyze { enabled | disabled } ]
        [ mkms { enabled | disabled } ]
        [ continue_on_error ]
        [ gradual_src_mode { enabled | disabled } ]
        [ gradual_sync_mode { enabled | disabled | auto } ]
        [ gradual_sync_max_shards_per_source <value> ]
        [ module_name <value> ] [ module_config_params <value> ]
        [ crdt_xadd_id_uniqueness_mode { liberal | semi-strict | strict } ]
        [ metrics_export_all { enabled | disabled } ]
        [ syncer_mode { distributed | centralized }]
        [ syncer_monitoring { enabled | disabled } ]
        [ mtls_allow_weak_hashing { enabled | disabled } ]
        [ mtls_allow_outdated_certs { enabled | disabled } ]
        [ data_internode_encryption { enabled | disabled } ]
        [ db_conns_auditing { enabled | disabled } ]
        [ resp3 { enabled | disabled } ]
        [ shards_placement { dense | sparse } ]
        [ tracking_table_max_keys <size> ]

$ rladmin tune db db:4 repl_timeout 300
Tuning database: o
Finished successfully
$ rladmin info db db:4 | grep repl_timeout
  repl_timeout: 300 seconds

tune node  { <id> | all }
     [ max_listeners <value> ]
     [ max_redis_forks <value> ]
     [ max_redis_servers <value> ]
     [ max_slave_full_syncs <value> ]
     [ quorum_only { enabled | disabled } ]

$ rladmin tune node 3 max_redis_servers 120
Finished successfully
$ rladmin info node 3 | grep "max redis servers"
    max redis servers: 120

rladmin tune proxy { <id> | all }
        [ mode { static | dynamic } ]
        [ threads <value> ]
        [ max_threads <value> ]
        [ scale_threshold <value> ]
        [ scale_duration <seconds> ]

$ rladmin tune proxy 2 scale_threshold 75
Configuring proxies:
  - proxy:2: ok
$ rladmin info proxy 2 | grep scale_threshold
    scale_threshold: 75 (%)


rladmin upgrade

Summary: Upgrades a database's Redis version and modules.

`upgrade db`

Schedules a restart of the primary and replica processes of a database and then upgrades the database to the latest version of Redis.

For more information, see [Upgrade an existing Redis Software Deployment]().

[code example]

As of v6.2.4, the default behavior for `upgrade db` has changed.  It is now controlled by a new parameter that sets the default upgrade policy used to create new databases and to upgrade ones already in the cluster.  To learn more, see [`tune cluster default_redis_version`]().

As of Redis Software version 7.8.2, `upgrade db` will always upgrade modules.

Parameters

| Parameters                 | Type/Value               | Description                                                                                |
|----------------------------|--------------------------|------------------------------------------------------------------------------------------------------------------------|
| db                         | db:\<id\>
name     | Database to upgrade                                                                                |
| and module | [upgrade module](#upgrade-module) command | Clause that allows the upgrade of a database and a specified Redis module in a single step with only one restart (can be specified multiple times). Deprecated as of Redis Software v7.8.2.  |
| discard_data               |                          | Indicates that data will not be saved after the upgrade                                                                |
| force                      |                          | Forces upgrade and skips warnings and confirmations                                                                    |
| force_discard              |                          | Forces `discard_data` if replication or persistence is enabled                                                   |
| keep_crdt_protocol_version |                          | Keeps the current CRDT protocol version                                                                                |
| keep_redis_version       |                          | Upgrades to a new patch release, not to the latest major.minor version. Deprecated as of Redis Software v7.8.2. To upgrade modules without upgrading the Redis database version, set `redis_version` to the current Redis database version instead. |
| parallel_shards_upgrade    | integer
'all'        | Maximum number of shards to upgrade all at once                                                                        |
| preserve_roles             |                          | Performs an additional failover to guarantee the shards' roles are preserved                                             |
| redis_version              | Redis version            | Upgrades the database to the specified version instead of the latest version                                               |

Returns

Returns `Done` if the upgrade completed. Otherwise, it returns an error.

Example

[code example]

rladmin upgrade db { db:<id> | <name> }
                [ preserve_roles ]
                [ keep_redis_version ]
                [ discard_data ]
                [ force_discard ]
                [ parallel_shards_upgrade ]
                [ keep_crdt_protocol_version ]
                [ redis_version <version> ]
                [ force ]
                [ and module module_name <module name> version <version> module_args <arguments string> ]

$ rladmin upgrade db db:5
Monitoring e39c8e87-75f9-4891-8c86-78cf151b720b
active - SMUpgradeBDB init
active - SMUpgradeBDB check_slaves
.active - SMUpgradeBDB prepare
active - SMUpgradeBDB stop_forwarding
oactive - SMUpgradeBDB start_wd
active - SMUpgradeBDB wait_for_version
.completed - SMUpgradeBDB
Done


rladmin verify

Summary: Prints verification reports for the cluster.

Overview

`verify balance`

Prints a balance report that displays all of the unbalanced endpoints or nodes in the cluster.

[code example]

The [proxy policy]() determines which nodes or endpoints to report as unbalanced.

A node is unbalanced if:
- `all-nodes` proxy policy and the node has no endpoint

An endpoint is unbalanced in the following cases:
- `single` proxy policy and one of the following is true:
    - Shard placement is [`sparse`]() and none of the master shards are on the node
    - Shard placement is [`dense`]() and some master shards are on a different node from the endpoint
- `all-master-shards` proxy policy and one of the following is true:
    - None of the master shards are on the node
    - Some master shards are on a different node from the endpoint

Parameters

| Parameter | Type/Value | Description |
|-----------|------------|-------------|
| node | integer | Specify a node ID to return a balance table for that node only (optional) |

Returns

Returns a table of unbalanced endpoints and nodes in the cluster.

Examples

Verify all nodes:

[code example]

Verify a specific node:

[code example]

`verify rack_aware`

Verifies that the cluster complies with the rack awareness policy and reports any discovered rack collisions, if [rack-zone awareness]() is enabled.

[code example]

Parameters

Returns

Returns whether the cluster is rack aware. If rack awareness is enabled, it returns any rack collisions.

Example

[code example]

$ rladmin verify balance
The table presents all of the unbalanced endpoints/nodes in the cluster
BALANCE:
NODE:ID  DB:ID  NAME  ENDPOINT:ID  PROXY_POLICY  LOCAL SHARDS   TOTAL SHARDS

$ rladmin verify balance node 1
The table presents all of the unbalanced endpoints/nodes in the cluster
BALANCE:
NODE:ID  DB:ID  NAME  ENDPOINT:ID  PROXY_POLICY  LOCAL SHARDS   TOTAL SHARDS

$ rladmin verify rack_aware

Cluster policy is not configured for rack awareness.


rlcheck

Summary: Verify nodes.

Overview

The `rlcheck` utility runs various [tests](#tests) to check the health of a Redis Software node and reports any discovered issues.
You can use this utility to confirm a successful installation or to verify that the node is functioning properly.

To resolve issues reported by `rlcheck`, [contact Redis support](https://redis.com/company/support/).

Run rlcheck

You can run `rlcheck` from the node host's command line.
The output of `rlcheck` shows information specific to the host you run it on.

To run `rlcheck` tests:

1. Sign in to the Redis Software host with an account that is a member of the **redislabs** operating system group.

1. Run:

    [code example]

Options

You can run `rlcheck` with the following options:

| Option | Description |
|--------|-------------|
| <nobr>`--suppress-tests TEXT`</nobr> | Skip the specified, comma-delimited list of tests. See [Tests](#tests) for the list of tests and descriptions. |
| <nobr>`--retry-delay INTEGER`</nobr> | Delay between retries, in seconds. |
| <nobr>`--retry INTEGER`</nobr> | Number of retries after a failure. |
| <nobr>`--file-path TEXT`</nobr> | Custom path to `rlcheck.log`. |
| <nobr>`--continue-on-error`</nobr> | Continue to run all tests even if a test fails, then show all errors when complete. |
| `--help` | Return the list of `rlcheck` options. |

Tests

`rlcheck` runs the following tests by default:

| Test name | Description |
|-----------|-------------|
| verify_owner_and_group | Verifies the owner and group for Redis Software files are correct. |
| verify_bootstrap_status | Verifies the local node's bootstrap process completed without errors. |
| verify_services | Verifies all Redis Software services are running. |
| verify_port_range | Verifies the [`ip_local_port_range`](https://www.kernel.org/doc/html/latest/networking/ip-sysctl.html) doesn't conflict with the ports Redis Software might assign to shards. |
| verify_pidfiles | Verifies all active local shards have PID files. |
| verify_capabilities | Verifies all binaries have the proper capability bits. |
| verify_existing_sockets | Verifies sockets exist for all processes that require them. |
| verify_host_settings | Verifies the following:
• Linux `overcommit_memory` setting is 1.
•`transparent_hugepage` is disabled.
• Socket maximum connections setting `somaxconn` is 1024. |
| verify_tcp_connectivity | Verifies this node can connect to all other alive nodes. |
| verify_encrypted_gossip | Verifies gossip communication is encrypted. |


Develop with Redis clients

Summary: Redis client libraries allow you to connect to Redis instances from within your application. This section provides an overview of several recommended Redis clients for popular programming and scripting languages.

Overview

To connect to Redis instances from within your application, use a Redis client library that matches your application's language.

Official clients

| Language | Client name |
| :---------- | :------------- |
| .Net | [NRedisStack]() |
| Go | [go-redis]() |
| Java | [Jedis]() (Synchronous) and [Lettuce]() (Asynchronous) |
| Node.js | [node-redis]() |
| Python | [redis-py]() |

Select a client name to see its quick start.

Other clients

For a list of community-driven Redis clients, which are available for more programming languages, see
[Community-supported clients]().


Client-side caching compatibility with Redis Software and Redis Cloud

Summary: Redis Software and Redis Cloud compatibility with client-side caching.

Overview

Redis Software and Redis Cloud support [client-side caching]() for databases with Redis versions 7.4 or later.

Required database versions

Client-side caching in Redis Software and Redis Cloud requires Redis database versions 7.4 or later.

The following table shows the differences in client-side caching support by product:

| Redis product           | Client-side caching support |
|-------------------------|-----------------------------|
| Redis Open Source       | Redis v6.0 and later |
| Redis Cloud             | Redis database v7.4 and later |
| Redis Software          | Redis database v7.4 and later |

Supported RESP versions

Client-side caching in Redis Software and Redis Cloud requires [RESP3]().

The following table shows the differences in client-side caching support for RESP by product:

| Redis product with client-side caching  | RESP2 | RESP3 |
|-------------------------|-------|-------|
| Redis Open Source       | ✅ | ✅ |
| Redis Cloud             | ❌ | ✅ |
| Redis Software          | ❌ | ✅ |

Two connections mode with REDIRECT not supported

Unlike Redis Open Source, Redis Software and Redis Cloud do not support [two connections mode]() or the `REDIRECT` option for [`CLIENT TRACKING`]().

Change tracking_table_max_keys for a database

When client-side caching is enabled, Redis uses an invalidation table to track which keys are cached by each connected client.

The configuration setting `tracking-table-max-keys` determines the maximum number of keys stored in the invalidation table and is set to `1000000` keys by default. Redis Software does not support using `CONFIG SET` to change this value, but you can use the REST API or rladmin instead.

To change `tracking_table_max_keys` for a database in a Redis Software cluster:

- [`rladmin tune db`]():

    [code example]

    You can use the database name in place of `db:<ID>` in the preceding command.

- [Update database configuration]() REST API request:

    [code example]

Change default tracking_table_max_keys

The cluster-wide option `default_tracking_table_max_keys_policy` determines the default value of `tracking_table_max_keys` for new databases in a Redis Software cluster. `default_tracking_table_max_keys_policy` is set to `1000000` keys by default.

To change `default_tracking_table_max_keys_policy`, use one of the following methods:

- [`rladmin tune cluster`]()

    [code example]

- [Update cluster policy]() REST API request:

    [code example]

rladmin tune db db:<ID> tracking_table_max_keys 2000000

PUT /v1/bdbs/<uid>
    { "tracking_table_max_keys": 2000000 }

rladmin tune cluster default_tracking_table_max_keys_policy 2000000

PUT /v1/cluster/policy
    { "default_tracking_table_max_keys_policy": 2000000 }