{
  "id": "upgrade-cluster",
  "title": "Upgrade a Redis Software cluster",
  "url": "https://redis.io/docs/latest/operate/rs/7.8/installing-upgrading/upgrading/upgrade-cluster/",
  "summary": "Upgrade a cluster to a later version of Redis Software.",
  "content": "\nBefore you upgrade a cluster to a later Redis Software version, review the [supported upgrade paths](#supported-upgrade-paths) and [prerequisites](#upgrade-prerequisites).\n\nTo upgrade a cluster's Redis Software version, use one of the following methods:\n\n- [In-place upgrade](#in-place-upgrade) - Directly upgrade Redis Software on each node in the cluster. Although this method is simpler than the rolling upgrade method, it might cause brief service interruptions as each node is upgraded.\n\n- [Rolling upgrade](#rolling-upgrade) - Minimize downtime by adding new nodes with an updated Redis Software version to the cluster, one at a time, while keeping the rest of the cluster operational. This method is recommended for production environments that require continuous availability.\n\n## Supported upgrade paths\n\n\n\nSee the [Redis Enterprise Software product lifecycle]() for more information about release numbers and the end-of-life schedule.\n\n\nRedis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions]().\n\n\n## Upgrade prerequisites\n\nBefore upgrading a cluster:\n\n- Verify access to [rlcheck]() and [rladmin]() commands.\n\n- Run [rlcheck]() on each node and verify there are no issues:\n\n    ```sh\n    rlcheck\n    ```\n\n- Verify [maintenance mode]() is not enabled:\n\n    1. On a node in the cluster, run [`rladmin status`]():\n\n        ```sh\n        rladmin status\n        ```\n\n    1. Review each node's `SHARDS` field. If the value is yellow, the node is in maintenance mode.\n\n        \n\n    1. To deactivate maintenance mode on a node, run the following [`rladmin node maintenance_mode off`]() command. See [Deactivate maintenance mode]() for additional details.\n\n        ```sh\n        rladmin node \u003cnode_id\u003e maintenance_mode off\n        ```\n\n- Verify that you meet the upgrade path requirements for the target cluster version and review the relevant [release notes](https://redis.io/docs/latest/operate/rs/release-notes/) for any preparation instructions.\n\n- Before you upgrade a cluster from Redis Enterprise Software version 6.2.x to 7.8.x, you must follow these steps if the cluster has any databases with Redis version 6.0:\n\n    1. Set the Redis upgrade policy to `latest`:\n\n        ```sh\n        rladmin tune cluster redis_upgrade_policy latest\n        ```\n\n    1. [Upgrade Redis 6.0 databases]() to Redis 6.2.\n\n- [Upgrade your databases]() to a version that is supported by the target Redis Enterprise Software version before upgrading the cluster. We recommend you upgrade the databases to the latest supported version if possible. Make sure to test the upgrade in a non-production environment to determine any impact.\n\n- Avoid changing the database configuration or performing other cluster management operations during the cluster upgrade process, as this might cause unexpected results.\n\n- Upgrade the cluster's primary (master) node first. To identify the primary node, use one of the following methods:\n\n    - **Nodes** screen in the new Cluster Manager UI (only available for Redis Enterprise versions 7.2 and later)\n\n    - [`rladmin status nodes`]() command\n    \n    - [`GET /nodes/status`]() REST API request\n\n## In-place upgrade\n\nStarting with the primary node, follow these steps for every node in the cluster. To ensure cluster availability, upgrade each node separately.\n\n1.  Verify node operation with the following commands:\n\n    ``` shell\n    $ rlcheck\n    $ rladmin status extra all\n    ```\n\n    \nDo not proceed if any shard, node, or endpoint is not `OK`.\n    \n\n2.  Download the Redis Enterprise Software installation package to the machine running the node from the Download Center on [https://cloud.redis.io](https://cloud.redis.io).  \n\n3.  Extract the installation package:\n\n    ```sh\n    tar vxf \u003ctarfile name\u003e\n    ```\n\n    \nYou cannot change the installation path or the user during the upgrade.\n    \n\n1.  Run the install command. See [installation script options]() for a list of command-line options you can add to the following command:\n\n    ``` shell\n    sudo ./install.sh\n    ```\n\n    The installation script automatically recognizes the upgrade and responds accordingly.\n\n    The upgrade replaces all node processes, which might briefly interrupt any active connections.\n\n2.  Verify the node was upgraded to the new version and is still operational:\n\n    ``` shell\n    $ rlcheck\n    $ rladmin status extra all\n    ```\n\n3.  Visit the Cluster Manager UI.\n\n    If the Cluster Manager UI was open in a web browser during the upgrade, refresh the browser to reload the console.\n\n## Rolling upgrade\n\nTo perform a rolling upgrade of the cluster, use one of the following methods:\n\n- [Extra node method](#extra-node-upgrade) - recommended if you have additional resources available\n\n- [Replace node method](#replace-node-upgrade) - recommended if you cannot temporarily allocate additional resources\n\n### Extra node upgrade method {#extra-node-upgrade}\n\n1. [Install a later version of Redis Software]() on a new node.\n\n1. [Add the new node]() to the cluster.\n\n1. If the [cluster uses DNS](), add the new node’s IP address to the DNS records.\n\n1. [Promote the first new node]() to become the primary node.\n\n1. [Remove one node]() running the earlier Redis Software version from the cluster.\n\n1. Repeat the previous steps until all nodes with the earlier Redis Software version are removed. If the final node to remove from the cluster is the primary node, [demote it]() to a secondary node before you remove it.\n\n### Replace node upgrade method {#replace-node-upgrade}\n\n1. [Remove a node]() with the earlier Redis Software version from the cluster.\n\n1. Uninstall Redis Enterprise Software from the removed node:\n\n    ```sh\n    sudo ./rl_uninstall.sh\n    ```\n\n1. [Install a later version of Redis Software]() on the removed node or a new node.\n\n1. [Add the new node]() to the cluster.\n\n    If you want to reuse the removed node's ID when you add the node to the cluster, run [`rladmin cluster join`]() with the `replace_node` flag:\n\n    ```sh\n    rladmin cluster join nodes \u003ccluster_member_ip_address\u003e username \u003cusername\u003e password \u003cpassword\u003e replace_node \u003cnode_id\u003e\n    ```\n\n1. If the [cluster uses DNS](), add the new node’s IP address to the DNS records.\n\n1. [Promote the first new node]() to become the primary node.\n\n1. Verify node health:\n\n    1. Run `rlcheck` on all nodes:\n\n        ```sh\n        rlcheck\n        ```\n\n        The output lists the result of each verification test:\n\n        ```sh\n        ##### Welcome to Redis Enterprise Cluster settings verification utility ####\n        Running test: verify_bootstrap_status\n\t\t                PASS\n        ...\n        Running test: verify_encrypted_gossip\n\t\t                PASS\n        Summary:\n        -------\n        ALL TESTS PASSED.\n        ```\n\n        For healthy nodes, the expected output is `ALL TESTS PASSED`.\n\n    1. Run [`rladmin status`]() on the new node:\n\n        ```sh\n        rladmin status extra all\n        ```\n\n        The expected output is the `OK` status for the cluster, nodes, endpoints, and shards:\n\n        ```sh\n        CLUSTER:\n        OK. Cluster master: 2 (\u003cIP.address\u003e)\n        Cluster health: OK, [0, 0.0, 0.0]\n        failures/minute - avg1 0.00, avg15 0.00, avg60 0.00.\n        ...\n        ```\n\n1. Repeat the previous steps until all nodes with the earlier Redis Software version are replaced. If the final node to remove from the cluster is the primary node, [demote it]() to a secondary node before you remove it.\n\n## After cluster upgrade\n\nAfter all nodes are upgraded, the cluster is fully upgraded. Certain features introduced in the new version of Redis Software only become available after upgrading the entire cluster.\n\nAfter upgrading from version 6.0.x to 6.2.x, restart `cnm_exec` on each cluster node to enable more advanced state machine handling capabilities:\n\n```sh\nsupervisorctl restart cnm_exec\n```\n",
  "tags": ["docs","operate","rs"],
  "last_updated": "2026-04-01T08:10:08-05:00"
}

