--- Title: Upgrade a Redis Software database alwaysopen: false categories: - docs - operate - rs description: Upgrade a Redis Software database. linkTitle: Upgrade database weight: 50 --- ## Default Redis database versions {#default-db-versions} When you upgrade an existing database, it uses the latest bundled Redis version unless you specify a different version with the `redis_version` option in the [REST API]({{< relref "/operate/rs/references/rest-api/requests/bdbs" >}}) or [`rladmin upgrade db`]({{< relref "/operate/rs/references/cli-utilities/rladmin/upgrade#upgrade-db" >}}). To view available Redis database versions: - In the Cluster Manager UI, see **Redis database versions** on the **Cluster > Configuration** screen. - Send a [`GET /nodes` REST API request]({{< relref "/operate/rs/references/rest-api/requests/nodes" >}}) and see `supported_database_versions` in the response. The default Redis database version differs between Redis Software releases as follows: | Redis
Software | Bundled Redis
DB versions | Default DB version
(upgraded/new databases) | |-------|----------|-----| | 8.0.x | 6.2, 7.2, 7.4, 8.2 | 8.2 | | 7.22.x | 6.2, 7.2, 7.4 | 7.4 | | 7.8.x | 6.2, 7.2, 7.4 | 7.4 | | 7.4.x | 6.0, 6.2, 7.2 | 7.2 | | 7.2.4 | 6.0, 6.2, 7.2 | 7.2 | | 6.4.2 | 6.0, 6.2 | 6.2 | | 6.2.x | 6.0, 6.2 | 6.0 | ## Upgrade prerequisites Before upgrading a database: - Review the relevant [release notes]({{< relref "/operate/rs/release-notes" >}}) for any preparation instructions. - Verify that both the [current database version and the target database version are supported](#db-versions-table) by the cluster's Redis Software version. To determine the current database version: - Use the Cluster Manager UI to open the **Configuration** tab for the database and select {{< image filename="/images/rs/icons/info-icon.png#no-click" alt="The About database button" width="18px" class="inline" >}} **About**. - _(Optional)_ Use the [`rladmin status extra all`]({{< relref "/operate/rs/references/cli-utilities/rladmin/status" >}}) command to display configuration details: ```sh rladmin status extra all ``` When the database compatibility version is outdated, `OLD REDIS VERSION` appears in the command output. - Verify the cluster is fully upgraded and operational. Use the Cluster Manager UI to display the **Configuration** tab for the cluster. The tab displays the cluster version information and the Redis database compatibility version. - Check client compatibility with the database version. If you run Redis Stack commands with Go-Redis versions 9 and later or Lettuce versions 6 and later, set the client’s protocol version to RESP2 before upgrading your database to Redis version 7.2 to prevent potential application issues due to RESP3 breaking changes. See [Client prerequisites for Redis 7.2 upgrade]({{< relref "/operate/rs/references/compatibility/resp#client-prerequisites-for-redis-72-upgrade" >}}) for more details and examples. - To avoid data loss during the upgrade, [back up your data]({{< relref "/operate/rs/databases/import-export/schedule-backups" >}}). You can [export the data]({{< relref "/operate/rs/databases/import-export/export-data" >}}) to an external location, [enable replication]({{< relref "/operate/rs/databases/durability-ha/replication" >}}), or [enable persistence]({{< relref "/operate/rs/databases/configure/database-persistence" >}}). When choosing how to back up data, keep the following in mind: - To reduce downtime when replication is enabled, a failover is performed before restarting the primary (master) database. - When persistence is enabled without replication, the database is unavailable during restart because the data is restored from the persistence file. AOF persistence restoration is slower than snapshot restoration. ## Upgrade database To upgrade a database: 1. Complete all [prerequisites](#upgrade-prerequisites) before starting the upgrade. 1. _(Optional)_ Back up the database to minimize the risk of data loss. 1. Use [`rladmin`]({{< relref "/operate/rs/references/cli-utilities/rladmin/upgrade" >}}) to upgrade the database. During the upgrade process, the database will restart without losing any data. Use the `preserve_roles` option to keep the database's current state, including primary shard placement, and prevent the cluster from becoming unbalanced. - To upgrade a database and its modules: ``` shell rladmin upgrade db preserve_roles ``` Example of a successful upgrade: ``` shell rladmin> upgrade db demo Monitoring d194c4a3-631c-4726-b799-331b399fc85c active - SMUpgradeBDB init active - SMUpgradeBDB wait_for_version active - SMUpgradeBDB configure_shards completed - SMUpgradeBDB Done ``` - To upgrade the database to a version other than the default version, use the `redis_version` parameter: ```sh rladmin upgrade db redis_version preserve_roles ``` 1. Check the Redis database compatibility version for the database to confirm the upgrade. To do so: - Use the Cluster Manager UI to open the **Configuration** tab for the database and select {{< image filename="/images/rs/icons/info-icon.png#no-click" alt="The About database button" width="18px" class="inline" >}} **About**. - Use [`rladmin status databases extra all`]({{< relref "/operate/rs/references/cli-utilities/rladmin/status#status-databases" >}}) to display a list of the databases in your cluster and their current Redis database compatibility version: ```sh rladmin status databases extra all ``` Verify that the Redis version is set to the expected value.