diff --git a/content/operate/rs/8.0/_index.md b/content/operate/rs/8.0/_index.md index d84a9beb8d..01ff00bcf7 100644 --- a/content/operate/rs/8.0/_index.md +++ b/content/operate/rs/8.0/_index.md @@ -24,39 +24,39 @@ With Redis Software, you get many enterprise-grade capabilities, including: You can run self-managed Redis Software in an on-premises data center or on your preferred cloud platform. -If you prefer a fully managed Redis database-as-a-service, available on major public cloud services, consider setting up a [Redis Cloud]({{}}) subscription. You can [try Redis Cloud](https://redis.io/try-free/) for free. +If you prefer a fully managed Redis database-as-a-service, available on major public cloud services, consider setting up a [Redis Cloud](/content/operate/rc/_index.md) subscription. You can [try Redis Cloud](https://redis.io/try-free/) for free. ## Get started Build a small-scale cluster with the Redis Software container image. -- [Linux quickstart]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart" >}}) -- [Docker quickstart]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart" >}}) -- [Get started with Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/get-started" >}}) +- [Linux quickstart](/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md) +- [Docker quickstart](/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md) +- [Get started with Active-Active](/content/operate/rs/8.0/databases/active-active/get-started.md) ## Install & setup -[Install & set up]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) a Redis Software cluster. -- [Networking]({{< relref "/operate/rs/8.0/networking" >}}) -- [Set up]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup" >}}) & [configure]({{< relref "/operate/rs/8.0/clusters/configure" >}}) a [cluster]({{< relref "/operate/rs/8.0/clusters" >}}) -- [Release notes]({{< relref "/operate/rs/release-notes" >}}) +[Install & set up](/content/operate/rs/8.0/installing-upgrading/_index.md) a Redis Software cluster. +- [Networking](/content/operate/rs/8.0/networking/_index.md) +- [Set up](/content/operate/rs/8.0/clusters/new-cluster-setup.md) & [configure](/content/operate/rs/8.0/clusters/configure/_index.md) a [cluster](/content/operate/rs/8.0/clusters/_index.md) +- [Release notes](/content/operate/rs/release-notes/_index.md) ## Databases -Create and manage a [Redis database]({{< relref "/operate/rs/8.0/databases" >}}) on a cluster. -- [Create a Redis Software database]({{< relref "/operate/rs/8.0/databases/create" >}}) -- [Configure database]({{< relref "/operate/rs/8.0/databases/configure" >}}) -- [Create Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active/create" >}}) -- [Edit Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active/manage.md" >}}) +Create and manage a [Redis database](/content/operate/rs/8.0/databases/_index.md) on a cluster. +- [Create a Redis Software database](/content/operate/rs/8.0/databases/create.md) +- [Configure database](/content/operate/rs/8.0/databases/configure/_index.md) +- [Create Active-Active database](/content/operate/rs/8.0/databases/active-active/create.md) +- [Edit Active-Active database](/content/operate/rs/8.0/databases/active-active/manage.md) ## Security -[Manage secure connections]({{< relref "/operate/rs/8.0/security" >}}) to the cluster and databases. -- [Access control]({{< relref "/operate/rs/8.0/security/access-control" >}}) -- [Users]({{< relref "/operate/rs/8.0/security/access-control/manage-users" >}}) & [roles]({{< relref "/operate/rs/8.0/security/access-control" >}}) -- [Certificates]({{< relref "/operate/rs/8.0/security/certificates" >}}) -- [TLS]({{< relref "/operate/rs/8.0/security/encryption/tls" >}}) & [Encryption]({{< relref "/operate/rs/8.0/security/encryption" >}}) +[Manage secure connections](/content/operate/rs/8.0/security/_index.md) to the cluster and databases. +- [Access control](/content/operate/rs/8.0/security/access-control/_index.md) +- [Users](/content/operate/rs/8.0/security/access-control/manage-users/_index.md) & [roles](/content/operate/rs/8.0/security/access-control/_index.md) +- [Certificates](/content/operate/rs/8.0/security/certificates/_index.md) +- [TLS](/content/operate/rs/8.0/security/encryption/tls/_index.md) & [Encryption](/content/operate/rs/8.0/security/encryption/_index.md) ## Reference Use command-line utilities and the REST API to manage the cluster and databases. -- [rladmin]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}), [crdb-cli]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}), & [other utilities]({{< relref "/operate/rs/8.0/references/cli-utilities" >}}) -- [REST API reference]({{< relref "/operate/rs/8.0/references/rest-api" >}}) & [examples]({{< relref "/operate/rs/8.0/references/rest-api/quick-start" >}}) -- [Redis commands]({{< relref "/commands" >}}) +- [rladmin](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md), [crdb-cli](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md), & [other utilities](/content/operate/rs/8.0/references/cli-utilities/_index.md) +- [REST API reference](/content/operate/rs/8.0/references/rest-api/_index.md) & [examples](/content/operate/rs/8.0/references/rest-api/quick-start.md) +- [Redis commands](/content/commands) ## Archive @@ -74,10 +74,10 @@ To view documentation earlier than version 7.4, see the archived website: ## Related info -- [Redis Cloud]({{< relref "/operate/rc" >}}) -- [Redis Open Source]({{< relref "/operate/oss_and_stack" >}}) -- [Redis Stack]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}) -- [Glossary]({{< relref "/glossary" >}}) +- [Redis Cloud](/content/operate/rc/_index.md) +- [Redis Open Source](/content/operate/oss_and_stack/_index.md) +- [Redis Stack](/content/operate/oss_and_stack/stack-with-enterprise/_index.md) +- [Glossary](/content/glossary/_index.md) ## Continue learning with Redis University diff --git a/content/operate/rs/8.0/clusters/_index.md b/content/operate/rs/8.0/clusters/_index.md index 1f96b57daa..cfefe7c36a 100644 --- a/content/operate/rs/8.0/clusters/_index.md +++ b/content/operate/rs/8.0/clusters/_index.md @@ -16,5 +16,5 @@ url: '/operate/rs/8.0/clusters/' You can manage your Redis Software clusters with several different tools: - Cluster Manager UI (the web-based user interface) -- Command-line tools ([rladmin]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}), [redis-cli]({{< relref "/develop/tools/cli" >}}), [crdb-cli]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}})) -- [REST API]({{< relref "/operate/rs/8.0/references/rest-api/_index.md" >}}) +- Command-line tools ([rladmin](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md), [redis-cli](/content/develop/tools/cli.md), [crdb-cli](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md)) +- [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) diff --git a/content/operate/rs/8.0/clusters/add-node.md b/content/operate/rs/8.0/clusters/add-node.md index b29d4ba4db..becbd0e317 100644 --- a/content/operate/rs/8.0/clusters/add-node.md +++ b/content/operate/rs/8.0/clusters/add-node.md @@ -17,12 +17,12 @@ After you install the first node, you can add more nodes to the cluster. Before you add a node to the cluster: -- The clocks on all nodes must always be [synchronized]({{< relref "/operate/rs/8.0/clusters/configure/sync-clocks.md" >}}). +- The clocks on all nodes must always be [synchronized](/content/operate/rs/8.0/clusters/configure/sync-clocks.md). If the clock in the node you are trying to join to the cluster is not synchronized with the nodes already in the cluster, the action fails and an error message is shown indicating that you must synchronize the clocks first. -- You must [update the DNS records]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}) +- You must [update the DNS records](/content/operate/rs/8.0/networking/cluster-dns.md) each time a node is added or replaced. - We recommend that you add nodes one after the other rather than in parallel @@ -32,18 +32,18 @@ Before you add a node to the cluster: To add a node to an existing cluster: -1. [Install the Redis Software installation package]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) on a clean installation - of a [supported operating system]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md" >}}). +1. [Install the Redis Software installation package](/content/operate/rs/8.0/installing-upgrading/_index.md) on a clean installation + of a [supported operating system](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md). 1. To connect to the Cluster Manager UI of the new Redis Software installation, go to: For example, if you installed Redis Software on a machine with IP address 10.0.1.34, go to `https://10.0.1.34:8443`. - {{< tip >}} -The management UI uses TLS encryption with a default certificate. -You can also [replace the TLS certificate]({{< relref "/operate/rs/8.0/security/certificates/updating-certificates" >}}) -with a custom certificate. - {{< /tip >}} + > [!TIP] + > The management UI uses TLS encryption with a default certificate. + > You can also [replace the TLS certificate](/content/operate/rs/8.0/security/certificates/updating-certificates.md) + > with a custom certificate. + > 1. Select **Join cluster**. @@ -59,15 +59,15 @@ with a custom certificate. 1. Configure storage and network settings: - 1. Enter a path for [*Ephemeral storage*]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}), or leave the default path. + 1. Enter a path for [*Ephemeral storage*](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md), or leave the default path. - 1. Enter a path for [*Persistent storage*]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}), + 1. Enter a path for [*Persistent storage*](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md), or leave the default path. - 1. To enable [*Redis Flex or Auto Tiering*]({{< relref "/operate/rs/8.0/databases/flash/" >}}), + 1. To enable [*Redis Flex or Auto Tiering*](/content/operate/rs/8.0/databases/flash/_index.md), select **Enable flash storage** and enter the path to the flash storage. - 1. If the cluster is configured to support [rack-zone awareness]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}), set the **Rack-zone ID** for the new node. + 1. If the cluster is configured to support [rack-zone awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md), set the **Rack-zone ID** for the new node. 1. If your machine has multiple IP addresses, assign a single IPv4 type address for **Node-to-node communication (internal traffic)** and multiple IPv4/IPv6 type addresses for **External traffic**. @@ -92,4 +92,4 @@ We recommend that you verify the node is functioning properly using one of the f - Command-line method: - Run the [`rlcheck`]({{< relref "/operate/rs/8.0/references/cli-utilities/rlcheck" >}}) utility from the node's command line. + Run the [`rlcheck`](/content/operate/rs/8.0/references/cli-utilities/rlcheck/_index.md) utility from the node's command line. diff --git a/content/operate/rs/8.0/clusters/change-node-role.md b/content/operate/rs/8.0/clusters/change-node-role.md index a8105e8dae..eb7c7f1c2e 100644 --- a/content/operate/rs/8.0/clusters/change-node-role.md +++ b/content/operate/rs/8.0/clusters/change-node-role.md @@ -41,14 +41,14 @@ To demote the primary node to a secondary node using the Cluster Manager UI: To demote the primary node to a secondary node using `rladmin`: -1. Identify the primary node's ID with [`rladmin cluster master`]({{}}): +1. Identify the primary node's ID with [`rladmin cluster master`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/master.md): ```sh $ rladmin cluster master Node is the cluster master node ``` -1. Run [`rladmin node enslave`]({{}}) with the `demote_node` option: +1. Run [`rladmin node enslave`](/content/operate/rs/8.0/references/cli-utilities/rladmin/node/enslave.md#node-enslave) with the `demote_node` option: ```sh rladmin node enslave demote_node @@ -79,7 +79,7 @@ To promote a secondary node to become the primary node using the Cluster Manager To promote a secondary node to become the primary node using `rladmin`: -1. To find the IDs of secondary nodes, run [`rladmin status nodes`]({{}}): +1. To find the IDs of secondary nodes, run [`rladmin status nodes`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md#status-nodes): ```sh $ rladmin status nodes @@ -92,7 +92,7 @@ To promote a secondary node to become the primary node using `rladmin`: Nodes with the `slave` role are secondary nodes. -1. Run [`rladmin cluster master set`]({{}}): +1. Run [`rladmin cluster master set`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/master.md): ```sh rladmin cluster master set diff --git a/content/operate/rs/8.0/clusters/cluster-recovery.md b/content/operate/rs/8.0/clusters/cluster-recovery.md index 2ec5e986cd..83b3eea202 100644 --- a/content/operate/rs/8.0/clusters/cluster-recovery.md +++ b/content/operate/rs/8.0/clusters/cluster-recovery.md @@ -14,9 +14,8 @@ url: '/operate/rs/8.0/clusters/cluster-recovery/' When a Redis Software cluster fails, you must use the cluster configuration file and database data to recover the cluster. -{{< note >}} -For cluster recovery in a Kubernetes deployment, see [Recover a Redis Enterprise cluster on Kubernetes]({{< relref "/operate/kubernetes/re-clusters/cluster-recovery" >}}). -{{< /note >}} +> [!NOTE] +> For cluster recovery in a Kubernetes deployment, see [Recover a Redis Enterprise cluster on Kubernetes](/content/operate/kubernetes/re-clusters/cluster-recovery.md). Cluster failure can be caused by: @@ -26,7 +25,7 @@ Cluster failure can be caused by: To recover a cluster and re-create it as it was before the failure, you must restore the cluster configuration `ccs-redis.rdb` to the cluster nodes. To recover databases in the new cluster, you must restore the databases from persistence files such as backup files, append-only files (AOF), or RDB snapshots. -These files are stored in the [persistent storage location]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}). +These files are stored in the [persistent storage location](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md). The cluster recovery process includes: @@ -34,7 +33,7 @@ The cluster recovery process includes: 1. Mount the persistent storage with the recovery files from the original cluster to the nodes of the new cluster. 1. Recover the cluster configuration on the first node in the new cluster. 1. Join the remaining nodes to the new cluster. -1. [Recover the databases]({{< relref "/operate/rs/8.0/databases/recover.md" >}}). +1. [Recover the databases](/content/operate/rs/8.0/databases/recover.md). ## Prerequisites @@ -51,7 +50,7 @@ The cluster recovery process includes: 1. (Optional) If you want to recover the cluster to the original cluster nodes, uninstall Redis Software from the nodes. -1. [Install Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}) on the new cluster nodes. +1. [Install Redis Software](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) on the new cluster nodes. The new servers must have the same basic hardware and software configuration as the original servers, including: @@ -60,21 +59,21 @@ The cluster recovery process includes: - The same Redis Software version - The same installation user and paths - {{< note >}} -The cluster recovery can fail if these requirements are not met. - {{< /note >}} + > [!NOTE] + > The cluster recovery can fail if these requirements are not met. + > 1. Mount the persistent storage drives with the recovery files to the new nodes. These drives must contain the cluster configuration backup files and database persistence files. - {{< note >}} -Make sure that the user redislabs has permissions to access the storage location -of the configuration and persistence files on each of the nodes. - {{< /note >}} + > [!NOTE] + > Make sure that the user redislabs has permissions to access the storage location + > of the configuration and persistence files on each of the nodes. + > If you use local persistent storage, place all of the recovery files on each of the cluster nodes. -1. To recover the original cluster configuration, run [`rladmin cluster recover`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/recover" >}}) on the first node in the new cluster: +1. To recover the original cluster configuration, run [`rladmin cluster recover`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/recover.md) on the first node in the new cluster: ```sh rladmin cluster recover filename [ | ] node_uid rack_id @@ -89,7 +88,7 @@ of the configuration and persistence files on each of the nodes. When the recovery command succeeds, this node is configured as the node from the old cluster that has ID 1. -1. To join the remaining servers to the new cluster, run [`rladmin cluster join`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/join" >}}) from each new node: +1. To join the remaining servers to the new cluster, run [`rladmin cluster join`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/join.md) from each new node: ```sh rladmin cluster join nodes username password replace_node @@ -101,15 +100,15 @@ of the configuration and persistence files on each of the nodes. rladmin cluster join nodes 10.142.0.4 username admin@example.com password mysecret replace_node 2 ``` -1. Run [`rladmin status`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status" >}}) to verify the recovered nodes are now active and the databases are pending recovery: +1. Run [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) to verify the recovered nodes are now active and the databases are pending recovery: ```sh rladmin status ``` - {{< note >}} -Make sure that you update your [DNS records]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}) -with the IP addresses of the new nodes. - {{< /note >}} + > [!NOTE] + > Make sure that you update your [DNS records](/content/operate/rs/8.0/networking/cluster-dns.md) + > with the IP addresses of the new nodes. + > -After the cluster is recovered, you must [recover the databases]({{< relref "/operate/rs/8.0/databases/recover.md" >}}). +After the cluster is recovered, you must [recover the databases](/content/operate/rs/8.0/databases/recover.md). diff --git a/content/operate/rs/8.0/clusters/configure/_index.md b/content/operate/rs/8.0/clusters/configure/_index.md index d5bd0af822..dcdf2b0af7 100644 --- a/content/operate/rs/8.0/clusters/configure/_index.md +++ b/content/operate/rs/8.0/clusters/configure/_index.md @@ -14,8 +14,8 @@ url: '/operate/rs/8.0/clusters/configure/' You can manage your Redis Software clusters with several different tools: - Cluster Manager UI (the web-based user interface) -- Command-line tools ([rladmin]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}), [redis-cli]({{< relref "/develop/tools/cli" >}}), [crdb-cli]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}})) -- [REST API]({{< relref "/operate/rs/8.0/references/rest-api/_index.md" >}}) +- Command-line tools ([rladmin](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md), [redis-cli](/content/develop/tools/cli.md), [crdb-cli](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md)) +- [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) diff --git a/content/operate/rs/8.0/clusters/configure/call-home.md b/content/operate/rs/8.0/clusters/configure/call-home.md index 1db104ce77..9404638e42 100644 --- a/content/operate/rs/8.0/clusters/configure/call-home.md +++ b/content/operate/rs/8.0/clusters/configure/call-home.md @@ -55,7 +55,7 @@ The following example shows the data collected hourly for each database: The cluster collects usage data hourly by default. -To change the data collection schedule, [update job scheduler settings]({{}}) for `bdb_usage_report_job_settings` with a REST API request: +To change the data collection schedule, [update job scheduler settings](/content/operate/rs/8.0/references/rest-api/requests/job_scheduler/_index.md#put-job-scheduler) for `bdb_usage_report_job_settings` with a REST API request: ```sh PUT /v1/job_scheduler @@ -71,7 +71,7 @@ Replace `cron_expression`'s value with a [`cron` expression](https://en.wikipedi ## Turn off call home client -To stop the call home client from sending daily usage statistics to Redis, [update cluster services configuration]({{}}) for `call_home_agent` with a REST API request: +To stop the call home client from sending daily usage statistics to Redis, [update cluster services configuration](/content/operate/rs/8.0/references/rest-api/requests/cluster/services_configuration.md#put-cluster-services_config) for `call_home_agent` with a REST API request: ```sh PUT /v1/cluster/services_configuration diff --git a/content/operate/rs/8.0/clusters/configure/cluster-settings.md b/content/operate/rs/8.0/clusters/configure/cluster-settings.md index e619494ad0..66693fa823 100644 --- a/content/operate/rs/8.0/clusters/configure/cluster-settings.md +++ b/content/operate/rs/8.0/clusters/configure/cluster-settings.md @@ -23,7 +23,7 @@ you can upload the cluster license key, either during initial cluster creation or at any time afterward. The license key defines various cluster settings, such as the maximum number of shards you can have in the cluster. For more detailed information see [Cluster license -keys]({{< relref "/operate/rs/8.0/clusters/configure/license-keys.md" >}}). +keys](/content/operate/rs/8.0/clusters/configure/license-keys.md). ### View max number of allowed shards @@ -44,7 +44,7 @@ You can change the **Time zone** field to ensure the date, time fields, and log The **Alert Settings** tab lets you configure alerts that are relevant to the entire cluster, such as alerts for cluster utilization, nodes, node utilization, security, and database utilization. -You can also configure email server settings and [send alerts by email]({{< relref "/operate/rs/8.0/monitoring/v1_monitoring#send-alerts-by-email" >}}) to relevant users. +You can also configure email server settings and [send alerts by email](/content/operate/rs/8.0/monitoring/v1_monitoring.md#send-alerts-by-email) to relevant users. ### Configure email server settings diff --git a/content/operate/rs/8.0/clusters/configure/license-keys.md b/content/operate/rs/8.0/clusters/configure/license-keys.md index af8b0cbe1c..aba1e4204d 100644 --- a/content/operate/rs/8.0/clusters/configure/license-keys.md +++ b/content/operate/rs/8.0/clusters/configure/license-keys.md @@ -22,21 +22,19 @@ Trial mode allows all features to be enabled during the trial period. Trial mode is limited to 30 days and 4 shards, including master and replica shards. A new Redis Software installation starts its 30-day trial period from the day you set up the cluster on the first node. -Trial mode requires a trial license. If you do not provide a license when you create a cluster using the Cluster Manager UI or a [bootstrapping REST API request]({{< relref "/operate/rs/8.0/references/rest-api/requests/bootstrap#post-bootstrap" >}}), a trial cluster license is generated by default. +Trial mode requires a trial license. If you do not provide a license when you create a cluster using the Cluster Manager UI or a [bootstrapping REST API request](/content/operate/rs/8.0/references/rest-api/requests/bootstrap/_index.md#post-bootstrap), a trial cluster license is generated by default. ## View cluster license key -To view the cluster license key, use a [`GET /v1/license`]({{< relref "/operate/rs/8.0/references/rest-api/requests/license#get-license" >}}) REST API request. For a list of returned fields, see the [response section]({{< relref "/operate/rs/8.0/references/rest-api/requests/license#get-response" >}}). +To view the cluster license key, use a [`GET /v1/license`](/content/operate/rs/8.0/references/rest-api/requests/license/_index.md#get-license) REST API request. For a list of returned fields, see the [response section](/content/operate/rs/8.0/references/rest-api/requests/license/_index.md#get-response). -{{}} -As of version 7.2, Redis Software enforces shard limits by shard types, RAM or flash, instead of the total number of shards. The flash shards limit only appears in the UI if Auto Tiering is enabled. -{{}} +> [!NOTE] +> As of version 7.2, Redis Software enforces shard limits by shard types, RAM or flash, instead of the total number of shards. The flash shards limit only appears in the UI if Auto Tiering is enabled. ## Update cluster license -{{< note >}} -After you add a cluster key, you cannot remove the key to return the cluster to trial mode. -{{< /note >}} +> [!NOTE] +> After you add a cluster key, you cannot remove the key to return the cluster to trial mode. You can update the cluster license key: @@ -105,7 +103,7 @@ To change the cluster license alert settings, use one of the following methods: 1. Click **Save**. -- [Update cluster]({{}}) REST API request: +- [Update cluster](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request: The following example changes the cluster license alert to occur 30 days before the cluster license expiration date: @@ -123,7 +121,7 @@ To change the cluster license alert settings, use one of the following methods: ## Monitor cluster license -As of version 7.2, Redis Software exposes the license quotas and the shards consumption metrics in the Cluster Manager UI or via the [Prometheus integration]({{< relref "/integrate/prometheus-with-redis-enterprise/" >}}). +As of version 7.2, Redis Software exposes the license quotas and the shards consumption metrics in the Cluster Manager UI or via the [Prometheus integration](/content/integrate/prometheus-with-redis-enterprise/_index.md). The `cluster_shards_limit` metric displays the total shard limit by shard type. diff --git a/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md b/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md index c4a5a28c92..d3adcb2662 100644 --- a/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md +++ b/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md @@ -31,12 +31,11 @@ Rack-zone awareness affects various cluster, node, and database actions, such as The rack-zone ID must comply with the following rules: - Maximum length of 63 characters. -- Characters consist of letters, digits, and hyphens ('-'). Underscores ('_') are also accepted as of Redis Software [6.4.2-61]({{< relref "/operate/rs/release-notes/rs-6-4-2-releases/rs-6-4-2-61" >}}). +- Characters consist of letters, digits, and hyphens ('-'). Underscores ('_') are also accepted as of Redis Software [6.4.2-61](/content/operate/rs/release-notes/rs-6-4-2-releases/rs-6-4-2-61.md). - ID starts with a letter and ends with a letter or a digit. -{{< note >}} -Rack-zone IDs are **case-insensitive** (uppercase and lowercase letter are treated as the same). -{{< /note >}} +> [!NOTE] +> Rack-zone IDs are **case-insensitive** (uppercase and lowercase letter are treated as the same). ## Node layout guidelines @@ -53,15 +52,14 @@ If a Redis Software cluster consists of three nodes (the recommended minimum), f To enable rack-zone awareness, you need to configure it for the cluster, nodes, and [databases](#enable-database-rack-zone-awareness). -{{}} -- After rack-zone awareness is enabled for a cluster, it cannot be turned off. - -- After a rack ID is assigned to a node, it cannot be changed. -{{}} +> [!NOTE] +> - After rack-zone awareness is enabled for a cluster, it cannot be turned off. +> +> - After a rack ID is assigned to a node, it cannot be changed. ### New cluster -You can set up rack-zone awareness for the cluster and its nodes during [cluster creation]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup" >}}): +You can set up rack-zone awareness for the cluster and its nodes during [cluster creation](/content/operate/rs/8.0/clusters/new-cluster-setup.md): 1. In the **Cluster** screen's **Configuration** section, enable **Rack zone awareness**. @@ -69,22 +67,22 @@ You can set up rack-zone awareness for the cluster and its nodes during [cluster 1. Enter a **Rack-zone ID** for the current node. -1. Finish [cluster setup]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup" >}}). +1. Finish [cluster setup](/content/operate/rs/8.0/clusters/new-cluster-setup.md). -1. For every [node you add to the cluster]({{< relref "/operate/rs/8.0/clusters/add-node" >}}), assign a different **Rack-zone ID**. +1. For every [node you add to the cluster](/content/operate/rs/8.0/clusters/add-node.md), assign a different **Rack-zone ID**. ### Existing cluster -If you did not configure rack-zone awareness during cluster creation, you can configure rack-zone awareness for existing clusters using the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}): +If you did not configure rack-zone awareness during cluster creation, you can configure rack-zone awareness for existing clusters using the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md): -1. For each node in the cluster, assign a different rack-zone ID using the REST API to [update the node]({{< relref "/operate/rs/8.0/references/rest-api/requests/nodes#put-node" >}}): +1. For each node in the cluster, assign a different rack-zone ID using the REST API to [update the node](/content/operate/rs/8.0/references/rest-api/requests/nodes/_index.md#put-node): ```sh PUT /v1/nodes/ { "rack_id": "rack-zone-ID" } ``` -1. [Update the cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) to enable rack-zone awareness: +1. [Update the cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) to enable rack-zone awareness: ```sh PUT /v1/cluster/policy @@ -99,11 +97,11 @@ You can use two-dimensional rack-zone awareness to create logical zones within a ### New clusters -To set up two-dimensional rack-zone awareness during cluster creation, assign a `second_rack_id` to each node in the cluster in addition to the `rack_id` using the [REST API]({{}}) or [rladmin]({{}}). +To set up two-dimensional rack-zone awareness during cluster creation, assign a `second_rack_id` to each node in the cluster in addition to the `rack_id` using the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) or [rladmin](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md). #### REST API method -To create a new cluster with two-dimensional rack-zone awareness, you can use [bootstrap REST API requests]({{}}): +To create a new cluster with two-dimensional rack-zone awareness, you can use [bootstrap REST API requests](/content/operate/rs/8.0/references/rest-api/requests/bootstrap/_index.md#post-bootstrap): 1. Create the new cluster on the first node, set `rack_aware` to `true`, and assign a `rack_id` and `second_rack_id` to the first node: @@ -158,7 +156,7 @@ To create a new cluster with two-dimensional rack-zone awareness, you can use [b To create a new cluster with two-dimensional rack-zone awareness using the command line: -1. Run [`rladmin cluster create`]({{}}) to create the initial cluster on one node, enable rack-zone awareness, and assign a `rack_id` and `second_rack_id`: +1. Run [`rladmin cluster create`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/create.md) to create the initial cluster on one node, enable rack-zone awareness, and assign a `rack_id` and `second_rack_id`: ```sh $ rladmin cluster create name \ @@ -169,7 +167,7 @@ To create a new cluster with two-dimensional rack-zone awareness using the comma second_rack_id ``` -1. Run [`rladmin cluster join`]({{}}) for each new node you want to add to the cluster and assign a different `rack_id` and `second_rack_id`: +1. Run [`rladmin cluster join`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/join.md) for each new node you want to add to the cluster and assign a different `rack_id` and `second_rack_id`: ```sh $ rladmin cluster join nodes \ @@ -181,9 +179,9 @@ To create a new cluster with two-dimensional rack-zone awareness using the comma ### Existing clusters -You can configure two-dimensional rack-zone awareness for existing clusters using the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}). +You can configure two-dimensional rack-zone awareness for existing clusters using the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). -For each node in the cluster, assign a different `second_rack_id` using the REST API to [update the node]({{< relref "/operate/rs/8.0/references/rest-api/requests/nodes#put-node" >}}): +For each node in the cluster, assign a different `second_rack_id` using the REST API to [update the node](/content/operate/rs/8.0/references/rest-api/requests/nodes/_index.md#put-node): ```sh PUT /v1/nodes/ @@ -197,11 +195,11 @@ Before you can enable rack-zone awareness for a database, you must configure rac -To enable rack-zone awareness for a database, use a [REST API request]({{< relref "/operate/rs/8.0/references/rest-api/requests/bdbs#put-bdbs" >}}): +To enable rack-zone awareness for a database, use a [REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs): ```sh PUT /v1/bdbs/ @@ -225,9 +223,9 @@ PUT /v1/bdbs/ ### Rearrange database shards -After you enable rack-zone awareness for an existing database, you should generate an optimized shard placement blueprint using the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) and use it to rearrange the shards in different racks or zones. +After you enable rack-zone awareness for an existing database, you should generate an optimized shard placement blueprint using the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) and use it to rearrange the shards in different racks or zones. -1. [Generate an optimized shard placement blueprint]({{< relref "/operate/rs/8.0/references/rest-api/requests/bdbs/actions/optimize_shards_placement#get-bdbs-actions-optimize-shards-placement" >}}): +1. [Generate an optimized shard placement blueprint](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/optimize_shards_placement.md#get-bdbs-actions-optimize-shards-placement): 1. Send the following `GET` request: @@ -239,7 +237,7 @@ After you enable rack-zone awareness for an existing database, you should genera 1. Copy the JSON response body, which represents the new shard placement blueprint. -1. [Rearrange the database shards]({{< relref "/operate/rs/8.0/references/rest-api/requests/bdbs/actions/optimize_shards_placement#put-bdbs-rearrange-shards" >}}) according to the new shard placement blueprint: +1. [Rearrange the database shards](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/optimize_shards_placement.md#put-bdbs-rearrange-shards) according to the new shard placement blueprint: 1. In the request headers, include the `cluster-state-id` from the `optimize_shards_placement` response. diff --git a/content/operate/rs/8.0/clusters/configure/sch.md b/content/operate/rs/8.0/clusters/configure/sch.md index 470b62d8f4..f05bcb7199 100644 --- a/content/operate/rs/8.0/clusters/configure/sch.md +++ b/content/operate/rs/8.0/clusters/configure/sch.md @@ -12,7 +12,7 @@ url: '/operate/rs/8.0/clusters/configure/sch/' --- Smart client handoffs (SCH) is a feature of Redis Cloud and Redis Software servers that lets them actively notify clients about planned server maintenance shortly before it happens. This lets a client reconnect or otherwise respond gracefully without significant interruptions in service. -See [Smart client handoffs]({{< relref "/develop/clients/sch" >}}) for more information about SCH. +See [Smart client handoffs](/content/develop/clients/sch.md) for more information about SCH. SCH is supported for Redis Software from v8.0.2 on, and OSS Cluster API from v8.0.16 on. The degree of support for SCH depends on the specific upgrade method you use, as detailed in the table below. @@ -20,7 +20,7 @@ The degree of support for SCH depends on the specific upgrade method you use, as {{< embed-md "rs-sch-support.md" >}} To enable SCH on a Redis Software server, you must use the -[/v1/cluster]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster#put-cluster" >}}) +[/v1/cluster](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request to set the `client_maint_notifications` option to `true`. The example below shows how to do this using the [`curl`](https://curl.se/) command line utility: diff --git a/content/operate/rs/8.0/clusters/configure/sync-clocks.md b/content/operate/rs/8.0/clusters/configure/sync-clocks.md index 7a8a525112..a8ff1d0412 100644 --- a/content/operate/rs/8.0/clusters/configure/sync-clocks.md +++ b/content/operate/rs/8.0/clusters/configure/sync-clocks.md @@ -130,5 +130,5 @@ For more details, refer to the official [RHEL 8 and 9 documentation](https://acc For more details, refer to the official [Amazon Linux 2 documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html). -If you are using Active-Active databases, you must use [Network Time Service (ntpd)]({{< relref "/operate/rs/8.0/databases/active-active/_index.md#network-time-service-ntp-or-chrony" >}}) +If you are using Active-Active databases, you must use [Network Time Service (ntpd)](/content/operate/rs/8.0/databases/active-active/_index.md#network-time-service-ntp-or-chrony) to synchronize OS clocks consistently across clusters to handle conflict resolution according to the OS time. diff --git a/content/operate/rs/8.0/clusters/logging/_index.md b/content/operate/rs/8.0/clusters/logging/_index.md index 3ea27876d5..63a197709b 100644 --- a/content/operate/rs/8.0/clusters/logging/_index.md +++ b/content/operate/rs/8.0/clusters/logging/_index.md @@ -32,8 +32,8 @@ events regarding alerts, notifications, and configuration. You can use the **Logs** screen to review what actions a user has performed, such as editing a database's configuration. - [Redis slow - log]({{< relref "/operate/rs/8.0/clusters/logging/redis-slow-log.md" >}}) -- [rsyslog logging]({{< relref "/operate/rs/8.0/clusters/logging/rsyslog-logging/" >}}) + log](/content/operate/rs/8.0/clusters/logging/redis-slow-log.md) +- [rsyslog logging](/content/operate/rs/8.0/clusters/logging/rsyslog-logging/_index.md) ## View logs in the UI diff --git a/content/operate/rs/8.0/clusters/logging/diagnostic-logging.md b/content/operate/rs/8.0/clusters/logging/diagnostic-logging.md index f3903055ac..891b6a43a1 100644 --- a/content/operate/rs/8.0/clusters/logging/diagnostic-logging.md +++ b/content/operate/rs/8.0/clusters/logging/diagnostic-logging.md @@ -19,7 +19,7 @@ Diagnostic logs are collected at scheduled intervals and saved in the `/var/opt/ ## View log collector settings -To view the current log collection schedule and parameters for each log collector, use the REST API to [get the diagnostic logging service configuration]({{}}). +To view the current log collection schedule and parameters for each log collector, use the REST API to [get the diagnostic logging service configuration](/content/operate/rs/8.0/references/rest-api/requests/diagnostics/_index.md#get-diagnostics). ```sh GET /v1/diagnostics @@ -74,7 +74,7 @@ Example response: ## Change log collector settings -To change how often a log is collected, set the `cron_expression` when you [update the diagnostic logging service configuration]({{}}) with the REST API. +To change how often a log is collected, set the `cron_expression` when you [update the diagnostic logging service configuration](/content/operate/rs/8.0/references/rest-api/requests/diagnostics/_index.md#put-diagnostics) with the REST API. ```sh PUT /v1/diagnostics @@ -103,7 +103,7 @@ PUT /v1/diagnostics ## Turn off log collectors -To turn off a log collector, set its `cron_expression` to an empty string when you [update the diagnostic logging service configuration]({{}}) with the REST API. +To turn off a log collector, set its `cron_expression` to an empty string when you [update the diagnostic logging service configuration](/content/operate/rs/8.0/references/rest-api/requests/diagnostics/_index.md#put-diagnostics) with the REST API. ```sh PUT /v1/diagnostics @@ -128,16 +128,16 @@ Default `cron_expression` values: | Log collector | Description | |---------------|-------------| -| bdb | Logs database metadata similar to [`GET /bdbs`]({{}}). Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | +| bdb | Logs database metadata similar to [`GET /bdbs`](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md). Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | | bdb_client_list | Logs database client lists, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| bdb_info | Logs the result of running [`INFO ALL`]({{}}) on a database, excluding `commandstats`, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| command_stats | Logs [`INFO commandstats`]({{}}) for each database, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/30 * * * *"{{}} | +| bdb_info | Logs the result of running [`INFO ALL`](/content/commands/info.md) on a database, excluding `commandstats`, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | +| command_stats | Logs [`INFO commandstats`](/content/commands/info.md) for each database, with a separate file for each database. Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/30 * * * *"{{}} | | network_stats | Logs the node's network statistics.
Default settings:
{{}}"cron_expression": "*/30 * * * *"{{}} | | persistent_files | Lists persistent files from `/var/opt/redislabs/persist/redis`
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| rladmin_status | Logs data about nodes, databases, endpoints, and shards from [`rladmin status`]({{}}). Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| shard | Logs shard status similar to [`GET /shards`]({{}}). Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| shard_info | Logs the result of running [INFO ALL]({{}}) on a shard, with a separate file for each shard. Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| shard_latency | Logs the result of running [`latency latest`]({{}}) on a shard, with a separate file for each shard.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| `shard_latency_histogram` | Logs the result of running [`latency histogram`]({{}}) on a shard, with a separate file for each shard.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | -| slowlog | Logs slow commands from the databases using [`SLOWLOG GET`]({{}}), with a separate file for each database. Each entry is in JSON format. The log is sanitized, only the commands are visible.
Default settings:
{{}}"cron_expression": "*/10 * * * *",
"max_entries": 100{{
}} | +| rladmin_status | Logs data about nodes, databases, endpoints, and shards from [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md). Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | +| shard | Logs shard status similar to [`GET /shards`](/content/operate/rs/8.0/references/rest-api/requests/shards/_index.md). Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | +| shard_info | Logs the result of running [INFO ALL](/content/commands/info.md) on a shard, with a separate file for each shard. Each entry is in JSON format.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | +| shard_latency | Logs the result of running [`latency latest`](/content/commands/latency-latest.md) on a shard, with a separate file for each shard.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | +| `shard_latency_histogram` | Logs the result of running [`latency histogram`](/content/commands/latency-histogram.md) on a shard, with a separate file for each shard.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | +| slowlog | Logs slow commands from the databases using [`SLOWLOG GET`](/content/commands/slowlog-get.md), with a separate file for each database. Each entry is in JSON format. The log is sanitized, only the commands are visible.
Default settings:
{{}}"cron_expression": "*/10 * * * *",
"max_entries": 100{{
}} | | socket_files | Lists socket files used by Redis Software.
Default settings:
{{}}"cron_expression": "*/10 * * * *"{{}} | diff --git a/content/operate/rs/8.0/clusters/logging/log-security.md b/content/operate/rs/8.0/clusters/logging/log-security.md index adbfb8c26e..f88006dae0 100644 --- a/content/operate/rs/8.0/clusters/logging/log-security.md +++ b/content/operate/rs/8.0/clusters/logging/log-security.md @@ -10,13 +10,13 @@ linktitle: Manage logs weight: 50 url: '/operate/rs/8.0/clusters/logging/log-security/' --- -Redis Software comes with [a set of logs]({{< relref "/operate/rs/8.0/clusters/logging" >}}) on the server and available through the user interface to assist users in investigating actions taken on the server and to troubleshoot issues. +Redis Software comes with [a set of logs](/content/operate/rs/8.0/clusters/logging/_index.md) on the server and available through the user interface to assist users in investigating actions taken on the server and to troubleshoot issues. ## Send logs to a remote logging server Redis Software sends logs to syslog by default. You can send these logs to a remote logging server by configuring syslog. -To do this, modify the syslog or rsyslog configuration on your operating system to send logs in the `$logdir` directory (`/var/opt/redislabs/log` in default installations) to a remote monitoring server of your choice. See [rsyslog logging]({{< relref "/operate/rs/8.0/clusters/logging/rsyslog-logging/" >}}) for additional details. +To do this, modify the syslog or rsyslog configuration on your operating system to send logs in the `$logdir` directory (`/var/opt/redislabs/log` in default installations) to a remote monitoring server of your choice. See [rsyslog logging](/content/operate/rs/8.0/clusters/logging/rsyslog-logging/_index.md) for additional details. ## Log rotation @@ -78,6 +78,5 @@ ${logdir}/cluster_wd.log.long_retention { - `notifempty`: Don't rotate the log file if it is empty. -{{}} -For large scale deployments, you might need to rotate logs at faster intervals than daily. You can also use a cronjob or external vendor solutions. -{{}} +> [!NOTE] +> For large scale deployments, you might need to rotate logs at faster intervals than daily. You can also use a cronjob or external vendor solutions. diff --git a/content/operate/rs/8.0/clusters/logging/redis-slow-log.md b/content/operate/rs/8.0/clusters/logging/redis-slow-log.md index 4f01b805bc..3780bd207c 100644 --- a/content/operate/rs/8.0/clusters/logging/redis-slow-log.md +++ b/content/operate/rs/8.0/clusters/logging/redis-slow-log.md @@ -11,7 +11,7 @@ weight: $weight url: '/operate/rs/8.0/clusters/logging/redis-slow-log/' --- -[Redis slow log]({{}}) is one of the best +[Redis slow log](/content/commands/slowlog.md) is one of the best tools for debugging and tracing your Redis database, especially if you experience high latency and high CPU usage with Redis operations. Because Redis is based on a single threaded architecture, Redis slow log @@ -31,9 +31,9 @@ execution times of the same command, observe spikes in CPU usage, and more. This is especially useful with complex commands such as -[ZUNIONSTORE]({{}}), -[ZINTERSTORE]({{}}), and -[ZRANGEBYSCORE]({{}}). +[ZUNIONSTORE](/content/commands/zunionstore.md), +[ZINTERSTORE](/content/commands/zinterstore.md), and +[ZRANGEBYSCORE](/content/commands/zrangebyscore.md). The enhanced Redis Software slow log adds the **Complexity info** field to the output data. @@ -78,7 +78,7 @@ To view slow log entries for Redis Software databases, use one of the following - Cluster Manager UI: - 1. To access the slow log in the Cluster Manager UI, your [cluster management role]({{}}) must be Admin, Cluster Member, or DB Member. + 1. To access the slow log in the Cluster Manager UI, your [cluster management role](/content/operate/rs/8.0/security/access-control/create-cluster-roles.md) must be Admin, Cluster Member, or DB Member. 1. Select a database from the **Databases** list. @@ -86,7 +86,7 @@ To view slow log entries for Redis Software databases, use one of the following - Command line: - Use [`redis-cli`]({{}}) to run [`SLOWLOG GET`]({{}}): + Use [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) to run [`SLOWLOG GET`](/content/commands/slowlog-get.md): ```sh redis-cli -h -p SLOWLOG GET @@ -94,15 +94,15 @@ To view slow log entries for Redis Software databases, use one of the following ## Change slow log threshold -The slow log includes all database commands that take longer than ten milliseconds (10,000 microseconds) by default. You can use [`redis-cli`]({{}}) to view or change this threshold. +The slow log includes all database commands that take longer than ten milliseconds (10,000 microseconds) by default. You can use [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) to view or change this threshold. -To check the current threshold, run [`CONFIG GET`]({{}}): +To check the current threshold, run [`CONFIG GET`](/content/commands/config-get.md): ```sh redis-cli -h -p CONFIG GET slowlog-log-slower-than ``` -To change the threshold, run [`CONFIG SET`]({{}}): +To change the threshold, run [`CONFIG SET`](/content/commands/config-set.md): ```sh redis-cli -h -p CONFIG SET slowlog-log-slower-than @@ -110,15 +110,15 @@ redis-cli -h -p CONFIG SET slowlog-log-slower-than }}) to view or change the maximum number of entries. +The slow log retains the last 128 entries by default. You can use [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) to view or change the maximum number of entries. -To check the current maximum, run [`CONFIG GET`]({{}}): +To check the current maximum, run [`CONFIG GET`](/content/commands/config-get.md): ```sh redis-cli -h -p CONFIG GET slowlog-max-len ``` -To change the maximum, run [`CONFIG SET`]({{}}): +To change the maximum, run [`CONFIG SET`](/content/commands/config-set.md): ```sh redis-cli -h -p CONFIG SET slowlog-max-len diff --git a/content/operate/rs/8.0/clusters/logging/rsyslog-logging/_index.md b/content/operate/rs/8.0/clusters/logging/rsyslog-logging/_index.md index c829469bd0..bf84993bb5 100644 --- a/content/operate/rs/8.0/clusters/logging/rsyslog-logging/_index.md +++ b/content/operate/rs/8.0/clusters/logging/rsyslog-logging/_index.md @@ -21,13 +21,13 @@ In some cases, a single action, such as removing a node from the cluster, may ac All log entries displayed in the Cluster Manager UI are also written to `syslog`. You can configure `rsyslog` to monitor `syslog`. Enabled alerts are logged to `syslog` and appear with other log entries. -You can also [manage your logs]({{< relref "/operate/rs/8.0/clusters/logging/log-security" >}}) with a remote logging server and log rotation. +You can also [manage your logs](/content/operate/rs/8.0/clusters/logging/log-security.md) with a remote logging server and log rotation. ### Types of log entries Log entries are categorized into events and alerts. Both types of entries appear in the logs, but alert log entries also include a boolean `"state"` parameter that indicates whether the alert is enabled or disabled. -Log entries include information about the specific event that occurred. See the log entry tables for [alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) for more details. +Log entries include information about the specific event that occurred. See the log entry tables for [alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) for more details. ### Severity @@ -64,7 +64,7 @@ The log entries have the following basic structure: - **process id­**: The ID of the logging process - **list of key-value pairs in any order**:­ A list of key-value pairs that describe the specific event. They can appear in any order. Some key­-value pairs are always shown, and some appear depending on the specific event. - **Key-­value pairs that always appear:** - - `"type"`: A unique code­ name for the logged event. For the list of codenames, see the [logged alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) tables. + - `"type"`: A unique code­ name for the logged event. For the list of codenames, see the [logged alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) tables. - `"object"`: Defines the object type and ID (if relevant) of the object this event relates to, such as cluster, node with ID, BDB with ID, etc. Has the format of `[:]`. - `"time"`: Unix epoch time but can be ignored in this context. - **Key-­value pairs that might appear depending on the specific entry:** @@ -106,7 +106,7 @@ In this example, the storage utilization on node 1 reached the value of ~90%, wh - `"object":"node:1"`­ - The object related to this alert - `"state":true­` - Current state of the alert - `"time":1434282560­` - Can be ignored -- `"type":"ephemeral_storage"` - The code name of this specific event. See [logged alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) for more details. +- `"type":"ephemeral_storage"` - The code name of this specific event. See [logged alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) for more details. #### "Alert off" log entry sample @@ -136,7 +136,7 @@ This log entry is an example of when the alert for the node with ID 1 "Ephemeral - `"object":"node:1"` -­ The object related to this alert - `"state":false­` - Current state of the alert - `"time":1434283480­` - Can be ignored -- `"type":"ephemeral_storage"` -­ The code name identifier of this specific event. See [logged alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) for more details. +- `"type":"ephemeral_storage"` -­ The code name identifier of this specific event. See [logged alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) for more details. ### Odd number of nodes with a minimum of three nodes alert @@ -166,7 +166,7 @@ This log entry is an example of when the alert for "True high availability requi - `"state":true` -­ Current state of the alert - `"time":1434284700­` - Can be ignored - `"node_count":1­` - The number of nodes in the cluster -- `"type":"even_node_count"­` - The code name identifier of this specific event. See [logged alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) for more details. +- `"type":"even_node_count"­` - The code name identifier of this specific event. See [logged alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) for more details. #### "Alert off" log entry sample @@ -194,7 +194,7 @@ This log entry is an example of when the alert for "True high availability requi - `"state":false­` - Current state of the alert - `"time":1434285200­` - Can be ignored - `"node_count":3­` - The number of nodes in the cluster -- `"type":"even_node_count"` -­ The code name of this specific event. See [logged alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) for more details. +- `"type":"even_node_count"` -­ The code name of this specific event. See [logged alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) for more details. ### Node has insufficient disk space for AOF rewrite @@ -233,7 +233,7 @@ This log entry is an example of when the alert for "Node has insufficient disk s - `"state":true­` - Current state of the alert - `"time":1434365483` -­ Can be ignored - `"disk":705667072­` - The total size in bytes of the persistent storage -- `"type":"insufficient_disk_aofrw"­` - The code name of this specific event. See [logged alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) for more details. +- `"type":"insufficient_disk_aofrw"­` - The code name of this specific event. See [logged alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) for more details. #### "Alert off" log entry sample @@ -266,4 +266,4 @@ daemon.info: Jun 15 13:51:11 node1 event_log[34252]: - `"state":false­` - Current state of the alert - `"time":1434365471­` - Can be ignored - `"disk":705667072­` - The total size in bytes of the persistent storage -- `"type":"insufficient_disk_aofrw"`­ - The code name of this specific event. See [logged alerts and events]({{< relref "/operate/rs/8.0/clusters/logging/alerts-events" >}}) for more details. +- `"type":"insufficient_disk_aofrw"`­ - The code name of this specific event. See [logged alerts and events](/content/operate/rs/8.0/clusters/logging/alerts-events.md) for more details. diff --git a/content/operate/rs/8.0/clusters/maintenance-mode.md b/content/operate/rs/8.0/clusters/maintenance-mode.md index 58985299b7..3c312dbfd7 100644 --- a/content/operate/rs/8.0/clusters/maintenance-mode.md +++ b/content/operate/rs/8.0/clusters/maintenance-mode.md @@ -19,15 +19,15 @@ When you activate maintenance mode, Redis Software does the following: 1. Checks whether the cluster has enough active nodes to maintain quorum if one goes down. If taking a node offline would cause quorum loss, maintenance mode will not activate. - {{}} -This check does not consider if other nodes are already in maintenance mode. Do not put the majority of nodes into maintenance mode and restart them simultaneously, as this can cause the cluster to lose quorum and lead to data loss. - {{}} + > [!WARNING] + > This check does not consider if other nodes are already in maintenance mode. Do not put the majority of nodes into maintenance mode and restart them simultaneously, as this can cause the cluster to lose quorum and lead to data loss. + > 1. If no maintenance mode snapshots already exist or if you use `overwrite_snapshot` when you activate maintenance mode, Redis Software creates a new node snapshot that records the node's shard and endpoint configuration. 1. Marks the node as a quorum node to prevent shards and endpoints from migrating to it. - At this point, [`rladmin status`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status" >}}) displays the node's shards field in yellow, which indicates that shards cannot migrate to the node. + At this point, [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) displays the node's shards field in yellow, which indicates that shards cannot migrate to the node. {{< image filename="/images/rs/maintenance_mode.png" >}} @@ -105,7 +105,7 @@ By default, a snapshot is required to deactivate maintenance mode. If the snaps ### Specify a snapshot -When you turn off maintenance mode, you can restore the node configuration from a maintenance mode snapshot or any snapshots previously created by [`rladmin node snapshot create`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/node/snapshot#node-snapshot-create" >}}). If you do not specify a snapshot, Redis Software uses the latest maintenance mode snapshot by default. +When you turn off maintenance mode, you can restore the node configuration from a maintenance mode snapshot or any snapshots previously created by [`rladmin node snapshot create`](/content/operate/rs/8.0/references/cli-utilities/rladmin/node/snapshot.md#node-snapshot-create). If you do not specify a snapshot, Redis Software uses the latest maintenance mode snapshot by default. To get a list of available snapshots, run: @@ -119,10 +119,9 @@ To specify a snapshot when you turn maintenance mode off, run: rladmin node maintenance_mode off snapshot_name ``` -{{}} -If an error occurs when you turn on maintenance mode, the snapshot is not deleted. -When you rerun the command, use the snapshot from the initial attempt since it contains the original state of the node. -{{}} +> [!NOTE] +> If an error occurs when you turn on maintenance mode, the snapshot is not deleted. +> When you rerun the command, use the snapshot from the initial attempt since it contains the original state of the node. ### Skip shard restoration @@ -147,7 +146,7 @@ Use these commands with caution. For best results, contact Support before runni ## Cluster status example -This example shows how the output of [`rladmin status`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status" >}}) changes when you turn on maintenance mode for a node. +This example shows how the output of [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) changes when you turn on maintenance mode for a node. The cluster status before turning on maintenance mode: @@ -184,7 +183,7 @@ Now node 2 has `0/0` shards because shards cannot migrate to it while it is in m ## Maintenance mode REST API -You can also turn maintenance mode on or off using [REST API requests]({{< relref "/operate/rs/8.0/references/rest-api" >}}) to [POST `/nodes/{node_uid}/actions/{action}`]({{< relref "/operate/rs/8.0/references/rest-api/requests/nodes/actions#post-node-action" >}}). +You can also turn maintenance mode on or off using [REST API requests](/content/operate/rs/8.0/references/rest-api/_index.md) to [POST `/nodes/{node_uid}/actions/{action}`](/content/operate/rs/8.0/references/rest-api/requests/nodes/actions.md#post-node-action). ### Activate maintenance mode (REST API) @@ -232,7 +231,7 @@ The `maintenance_off` request returns a JSON response body: ### Track action status -You can send a request to [GET `/nodes/{node_uid}/actions/{action}`]({{< relref "/operate/rs/8.0/references/rest-api/requests/nodes/actions#get-node-action" >}}) to track the [status]({{< relref "/operate/rs/8.0/references/rest-api/objects/action" >}}) of the `maintenance_on` and `maintenance_off` actions. +You can send a request to [GET `/nodes/{node_uid}/actions/{action}`](/content/operate/rs/8.0/references/rest-api/requests/nodes/actions.md#get-node-action) to track the [status](/content/operate/rs/8.0/references/rest-api/objects/action.md) of the `maintenance_on` and `maintenance_off` actions. This request returns the status of the `maintenance_on` action: diff --git a/content/operate/rs/8.0/clusters/new-cluster-setup.md b/content/operate/rs/8.0/clusters/new-cluster-setup.md index e7471b4511..c6b19d221e 100644 --- a/content/operate/rs/8.0/clusters/new-cluster-setup.md +++ b/content/operate/rs/8.0/clusters/new-cluster-setup.md @@ -13,24 +13,23 @@ url: '/operate/rs/8.0/clusters/new-cluster-setup/' A Redis Software cluster typically consists of several nodes. For production deployments, we recommend an uneven number of nodes, with a minimum of three. -{{< note >}} -In a cluster that consists of only one node, some features and capabilities are not enabled, -such as database replication that provides high availability. -{{< /note >}} +> [!NOTE] +> In a cluster that consists of only one node, some features and capabilities are not enabled, +> such as database replication that provides high availability. -To set up a new cluster, you must first [install the Redis Software package]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) +To set up a new cluster, you must first [install the Redis Software package](/content/operate/rs/8.0/installing-upgrading/_index.md) and then set up the cluster as described below. -After the cluster is created you can [add multiple nodes to the cluster]({{< relref "/operate/rs/8.0/clusters/add-node.md" >}}). +After the cluster is created you can [add multiple nodes to the cluster](/content/operate/rs/8.0/clusters/add-node.md). To create a cluster: 1. In a browser, go to `https://:8443`. For example, if you installed Redis Software on a machine with IP address 10.0.1.34, go to . - {{< note >}} -- The management UI uses a [self-signed certificate for TLS encryption]({{< relref "/operate/rs/8.0/security/certificates/updating-certificates" >}}). -- If the machine has both an internal IP address and an external IP address, use the external IP address to access the setup UI. - {{< /note >}} + > [!NOTE] + > - The management UI uses a [self-signed certificate for TLS encryption](/content/operate/rs/8.0/security/certificates/updating-certificates.md). + > - If the machine has both an internal IP address and an external IP address, use the external IP address to access the setup UI. + > 1. Select **Create new cluster**. @@ -42,26 +41,26 @@ To create a cluster: 1. For **FQDN (Fully Qualified Domain Name)**, enter a unique name for the cluster. - See the [instructions for DNS setup]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}) + See the [instructions for DNS setup](/content/operate/rs/8.0/networking/cluster-dns.md) to make sure your cluster is reachable by name. - 1. Choose whether to [**Enable private & public endpoints support**]({{< relref "/operate/rs/8.0/networking/private-public-endpoints.md" >}}). + 1. Choose whether to [**Enable private & public endpoints support**](/content/operate/rs/8.0/networking/private-public-endpoints.md). - 1. Choose whether to [**Enable rack-zone awareness**]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}). + 1. Choose whether to [**Enable rack-zone awareness**](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md). 1. Click **Next**. 1. Configure storage and network settings: - 1. Enter a path for [*Ephemeral storage*]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}), or leave the default path. + 1. Enter a path for [*Ephemeral storage*](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md), or leave the default path. - 1. Enter a path for [*Persistent storage*]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}), + 1. Enter a path for [*Persistent storage*](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md), or leave the default path. - 1. To enable [*Redis Flex or Auto Tiering*]({{< relref "/operate/rs/8.0/databases/flash/" >}}), + 1. To enable [*Redis Flex or Auto Tiering*](/content/operate/rs/8.0/databases/flash/_index.md), select **Enable flash storage** and enter the path to the flash storage. - 1. If the cluster is configured to support [rack-zone awareness]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}), set the **Rack-zone ID** for the new node. + 1. If the cluster is configured to support [rack-zone awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md), set the **Rack-zone ID** for the new node. 1. If your machine has multiple IP addresses, assign a single IPv4 type address for **Node-to-node communication (internal traffic)** and multiple IPv4/IPv6 type addresses for **External traffic**. @@ -74,5 +73,5 @@ After a short wait, your cluster is created and you can sign in to the Cluster M You can now access any of the management capabilities, including: -- [Creating a new database]({{< relref "/operate/rs/8.0/databases/create.md" >}}) -- [Joining a new node to a cluster]({{< relref "/operate/rs/8.0/clusters/add-node.md" >}}) +- [Creating a new database](/content/operate/rs/8.0/databases/create.md) +- [Joining a new node to a cluster](/content/operate/rs/8.0/clusters/add-node.md) diff --git a/content/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios.md b/content/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios.md index 35b5fb88d1..123916fa27 100644 --- a/content/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios.md +++ b/content/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios.md @@ -11,9 +11,9 @@ linktitle: Disk sizing weight: $weight url: '/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios/' --- -In extreme write scenarios when append-only files (AOF) are enabled, the AOF rewrite process can require considerably more disk space for [database persistence]({{}}). +In extreme write scenarios when append-only files (AOF) are enabled, the AOF rewrite process can require considerably more disk space for [database persistence](/content/operate/rs/8.0/databases/configure/database-persistence.md). -For disk size requirements for standard usage, see [Hardware requirements]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). +For disk size requirements for standard usage, see [Hardware requirements](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md). ## Estimate required disk space diff --git a/content/operate/rs/8.0/clusters/optimize/memtier-benchmark.md b/content/operate/rs/8.0/clusters/optimize/memtier-benchmark.md index 0779572e66..2d964f173d 100644 --- a/content/operate/rs/8.0/clusters/optimize/memtier-benchmark.md +++ b/content/operate/rs/8.0/clusters/optimize/memtier-benchmark.md @@ -20,7 +20,7 @@ Prerequisites: - A cluster configured - A database created -For help with the prerequisites, see the [Redis Software quickstart]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart" >}}). +For help with the prerequisites, see the [Redis Software quickstart](/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md). It is recommended to run memtier_benchmark on a separate node that is not part of the cluster being tested. If you run it on a node of the diff --git a/content/operate/rs/8.0/clusters/optimize/optimization.md b/content/operate/rs/8.0/clusters/optimize/optimization.md index c466ca2e8f..56a3c99319 100644 --- a/content/operate/rs/8.0/clusters/optimize/optimization.md +++ b/content/operate/rs/8.0/clusters/optimize/optimization.md @@ -36,7 +36,7 @@ configuration. ## Change failure detection sensitivity -To change the cluster's `failure_detection_sensitivity`, run one of the following [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}) commands. +To change the cluster's `failure_detection_sensitivity`, run one of the following [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster) commands. - For Redis Software version 6.4.2-69 and later, run: diff --git a/content/operate/rs/8.0/clusters/optimize/oss-cluster-api.md b/content/operate/rs/8.0/clusters/optimize/oss-cluster-api.md index a41492a7a9..01c1d601c0 100644 --- a/content/operate/rs/8.0/clusters/optimize/oss-cluster-api.md +++ b/content/operate/rs/8.0/clusters/optimize/oss-cluster-api.md @@ -18,8 +18,8 @@ You can use the Redis OSS Cluster API along with other Redis Enterprise Software to get high performance with low latency and let applications stay current with cluster topology changes, including add node, remove node, and node failover. -For more about working with the OSS Cluster API in Redis Software, see [Enable OSS Cluster API]({{< relref "/operate/rs/8.0/databases/configure/oss-cluster-api" >}}). +For more about working with the OSS Cluster API in Redis Software, see [Enable OSS Cluster API](/content/operate/rs/8.0/databases/configure/oss-cluster-api.md). -To learn how to enable OSS Cluster API in Redis Cloud, see [Clustering Redis databases]({{< relref "/operate/rc/databases/configuration/clustering#cluster-api" >}}). +To learn how to enable OSS Cluster API in Redis Cloud, see [Clustering Redis databases](/content/operate/rc/databases/configuration/clustering.md#cluster-api). -To enable OSS Cluster API in Kubernetes, see [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}). +To enable OSS Cluster API in Kubernetes, see [Enable cluster-aware clients (OSS Cluster API)](/content/operate/kubernetes/networking/cluster-aware-clients.md). diff --git a/content/operate/rs/8.0/clusters/optimize/turn-off-services.md b/content/operate/rs/8.0/clusters/optimize/turn-off-services.md index 7dce2a9686..67fe73e3b1 100644 --- a/content/operate/rs/8.0/clusters/optimize/turn-off-services.md +++ b/content/operate/rs/8.0/clusters/optimize/turn-off-services.md @@ -22,9 +22,9 @@ The services that you can turn off are: - RS Admin Console - `cm_server` - Logs in CSV format - `stats_archiver` -- [LDAP authentication]({{< relref "/operate/rs/8.0/security/access-control/ldap" >}}) - `saslauthd` -- [Discovery service]({{< relref "/operate/rs/8.0/networking/cluster-dns.md" >}})- `mdns_server`, `pdns_server` -- [Active-Active databases]({{< relref "/operate/rs/8.0/databases/active-active" >}}) - `crdb_coordinator`, `crdb_worker` +- [LDAP authentication](/content/operate/rs/8.0/security/access-control/ldap/_index.md) - `saslauthd` +- [Discovery service](/content/operate/rs/8.0/networking/cluster-dns.md)- `mdns_server`, `pdns_server` +- [Active-Active databases](/content/operate/rs/8.0/databases/active-active/_index.md) - `crdb_coordinator`, `crdb_worker` - Alert Manager - `alert_mgr` (For best results, disable only if you have an alternate alert system.) To turn off a service with the `rladmin cluster config` command, use the `services` parameter and the name of the service, followed by `disabled`. @@ -33,7 +33,7 @@ To turn off a service with the `rladmin cluster config` command, use the `servic [ services ] ``` -To turn off a service with the API, use the [`PUT /v1/services_configuration`]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/services_configuration#put-cluster-services_config" >}}) endpoint +To turn off a service with the API, use the [`PUT /v1/services_configuration`](/content/operate/rs/8.0/references/rest-api/requests/cluster/services_configuration.md#put-cluster-services_config) endpoint with the name of the service and the operating mode (enabled/disabled) in JSON format. For example: diff --git a/content/operate/rs/8.0/clusters/optimize/wait.md b/content/operate/rs/8.0/clusters/optimize/wait.md index 29263575af..0c73660ecb 100644 --- a/content/operate/rs/8.0/clusters/optimize/wait.md +++ b/content/operate/rs/8.0/clusters/optimize/wait.md @@ -13,7 +13,7 @@ url: '/operate/rs/8.0/clusters/optimize/wait/' --- Redis Software comes with the ability to replicate data to another replica for high availability and persist in-memory data on -disk permanently for durability. With the [`WAIT`]({{}}) command, you can +disk permanently for durability. With the [`WAIT`](/content/commands/wait.md) command, you can control the consistency and durability guarantees for the replicated and persisted database. @@ -36,7 +36,7 @@ acknowledged within the replica. These are steps 7 and 8. ## Blocking write operation on replication -With the [`WAIT`]({{}}) or [`WAITAOF`]({{}}) commands, applications can ask to wait for +With the [`WAIT`](/content/commands/wait.md) or [`WAITAOF`](/content/commands/waitaof.md) commands, applications can ask to wait for acknowledgments only after replication or persistence is confirmed on the replica. The flow of a write operation with `WAIT` or `WAITAOF` is: @@ -52,4 +52,4 @@ The application only gets the acknowledgment from the write after durability is The `WAIT` command always returns the number of replicas that acknowledged the write commands sent by the current client before the `WAIT` command, both in the case where the specified number of replicas are reached, or when the timeout is reached. In Redis Software, the number of replicas is always 1 for databases with high availability enabled. -See the [`WAITAOF`]({{}}) command for details for enhanced data safety and durability capabilities introduced with Redis 7.2. +See the [`WAITAOF`](/content/commands/waitaof.md) command for details for enhanced data safety and durability capabilities introduced with Redis 7.2. diff --git a/content/operate/rs/8.0/clusters/remove-node.md b/content/operate/rs/8.0/clusters/remove-node.md index 3a1730d8e7..5bbaafda2c 100644 --- a/content/operate/rs/8.0/clusters/remove-node.md +++ b/content/operate/rs/8.0/clusters/remove-node.md @@ -16,12 +16,11 @@ You might want to remove a node from a Redis Software cluster for one of the fol - To [replace a faulty node](#replace-a-faulty-node) with a healthy node. - To [replace a healthy node](#replace-a-healthy-node) with a different node. -You can configure [email alerts from the cluster]({{< relref "/operate/rs/8.0/monitoring/v1_monitoring#cluster-alerts" >}}) to notify you of cluster changes, including when a node is removed. +You can configure [email alerts from the cluster](/content/operate/rs/8.0/monitoring/v1_monitoring.md#cluster-alerts) to notify you of cluster changes, including when a node is removed. -{{}} -Read through these explanations thoroughly before taking -any action. -{{}} +> [!WARNING] +> Read through these explanations thoroughly before taking +> any action. ## Permanently remove a node @@ -51,7 +50,7 @@ existence of a faulty node and automatically replaces the faulty node with the new node. For guidelines, refer to [Replacing a faulty -node]({{< relref "/operate/rs/8.0/clusters/replace-node.md" >}}). +node](/content/operate/rs/8.0/clusters/replace-node.md). ## Replace a healthy node @@ -60,15 +59,14 @@ must first add the new node to the cluster, migrate all the resources from the node you would like to remove, and only then remove the node. For further guidance, refer to [adding a new node to a -cluster]({{< relref "/operate/rs/8.0/clusters/add-node.md" >}}). +cluster](/content/operate/rs/8.0/clusters/add-node.md). You can migrate resources by using the `rladmin` command-line interface (CLI). For guidelines, refer to [`rladmin` command-line interface -(CLI)]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}). +(CLI)](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md). -{{< note >}} -The [DNS records]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}) must be updated each time a node is added or replaced. -{{< /note >}} +> [!NOTE] +> The [DNS records](/content/operate/rs/8.0/networking/cluster-dns.md) must be updated each time a node is added or replaced. ## Remove a node @@ -90,15 +88,15 @@ To remove a node using the Cluster Manager UI: Redis Software examines the node and the cluster, then takes the actions required to remove the node, such as migrating shards to other nodes. After the process finishes, the node is no longer shown in the UI. - {{}} -At any point, you can click the **Cancel removal** button to stop the process. When cancelled, the current internal action is completed, and then the process stops. - {{}} + > [!NOTE] + > At any point, you can click the **Cancel removal** button to stop the process. When cancelled, the current internal action is completed, and then the process stops. + > -To remove a node using the REST API, use [`POST /v1/nodes//actions/remove`]({{< relref "/operate/rs/8.0/references/rest-api/requests/nodes/actions#post-node-action" >}}). +To remove a node using the REST API, use [`POST /v1/nodes//actions/remove`](/content/operate/rs/8.0/references/rest-api/requests/nodes/actions.md#post-node-action). By default, the remove node action completes after all resources migrate off the removed node. Node removal does not wait for migrated shards' persistence files to be created on the new nodes. -To change node removal to wait for the creation of new persistence files for all migrated shards, set `wait_for_persistence` to `true` in the request body or [update the cluster policy]({{}}) `persistent_node_removal` to `true` to change the cluster's default behavior. +To change node removal to wait for the creation of new persistence files for all migrated shards, set `wait_for_persistence` to `true` in the request body or [update the cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) `persistent_node_removal` to `true` to change the cluster's default behavior. For example: @@ -109,8 +107,7 @@ POST https://:9443/v1/nodes//actions/remove } ``` -{{< note >}} -If you need to add a removed node back to the cluster, -you must [uninstall]({{< relref "/operate/rs/8.0/installing-upgrading/uninstalling.md" >}}) -and [reinstall]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) the software on that node. -{{< /note >}} +> [!NOTE] +> If you need to add a removed node back to the cluster, +> you must [uninstall](/content/operate/rs/8.0/installing-upgrading/uninstalling.md) +> and [reinstall](/content/operate/rs/8.0/installing-upgrading/_index.md) the software on that node. diff --git a/content/operate/rs/8.0/clusters/replace-node.md b/content/operate/rs/8.0/clusters/replace-node.md index 896f3f4597..a2a3577fec 100644 --- a/content/operate/rs/8.0/clusters/replace-node.md +++ b/content/operate/rs/8.0/clusters/replace-node.md @@ -17,13 +17,13 @@ To replace a failed node: 1. Prepare a new node identical to the old one. 1. Install and - configure Redis Software on the node. See [Install and setup]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) for more information. + configure Redis Software on the node. See [Install and setup](/content/operate/rs/8.0/installing-upgrading/_index.md) for more information. - {{< note >}} -If you are using [Redis Flex or Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}}), make sure the required flash storage is set up on this new node. - {{< /note >}} + > [!NOTE] + > If you are using [Redis Flex or Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md), make sure the required flash storage is set up on this new node. + > -1. [Add the node]({{< relref "/operate/rs/8.0/clusters/add-node" >}}) to the cluster. Make sure the new node has as much available memory as the faulty +1. [Add the node](/content/operate/rs/8.0/clusters/add-node.md) to the cluster. Make sure the new node has as much available memory as the faulty node. If the new node does not have enough memory, you will be prompted to add a node with enough memory. @@ -31,8 +31,8 @@ If you are using [Redis Flex or Auto Tiering]({{< relref "/operate/rs/8.0/databa 1. A message will appear informing you that the cluster has a faulty node and that the new node will replace the faulty node. - {{< note >}} -- If there is a faulty node in the cluster to which you are adding a node, Redis Software will use the new node to replace the faulty one. -- Any existing [DNS records]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}) must be updated -each time a node is added or replaced. - {{< /note >}} + > [!NOTE] + > - If there is a faulty node in the cluster to which you are adding a node, Redis Software will use the new node to replace the faulty one. + > - Any existing [DNS records](/content/operate/rs/8.0/networking/cluster-dns.md) must be updated + > each time a node is added or replaced. + > diff --git a/content/operate/rs/8.0/databases/_index.md b/content/operate/rs/8.0/databases/_index.md index b00874bf32..2696090597 100644 --- a/content/operate/rs/8.0/databases/_index.md +++ b/content/operate/rs/8.0/databases/_index.md @@ -16,7 +16,7 @@ url: '/operate/rs/8.0/databases/' You can manage your Redis Software databases with several different tools: - Cluster Manager UI (the web-based user interface) -- Command-line tools ([`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}), [`redis-cli`]({{< relref "/develop/tools/cli" >}}), [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}})) -- [REST API]({{< relref "/operate/rs/8.0/references/rest-api/_index.md" >}}) +- Command-line tools ([`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md), [`redis-cli`](/content/develop/tools/cli.md), [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md)) +- [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) diff --git a/content/operate/rs/8.0/databases/active-active/_index.md b/content/operate/rs/8.0/databases/active-active/_index.md index d52424312f..4a91332bd9 100644 --- a/content/operate/rs/8.0/databases/active-active/_index.md +++ b/content/operate/rs/8.0/databases/active-active/_index.md @@ -22,9 +22,9 @@ Active-Active databases also provide disaster recovery and accelerated data read ## High availability -The [high availability]({{< relref "/operate/rs/8.0/databases/durability-ha/" >}}) that Active-Active replication provides is built upon a number of Redis Software features (such as [clustering]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering.md" >}}), [replication]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}), and [replica HA]({{< relref "/operate/rs/8.0/databases/configure/replica-ha.md" >}})) as well as some features unique to Active-Active ([multi-primary replication]({{}}), [automatic conflict resolution]({{}}), and [strong eventual consistency]({{}})). +The [high availability](/content/operate/rs/8.0/databases/durability-ha/_index.md) that Active-Active replication provides is built upon a number of Redis Software features (such as [clustering](/content/operate/rs/8.0/databases/durability-ha/clustering.md), [replication](/content/operate/rs/8.0/databases/durability-ha/replication.md), and [replica HA](/content/operate/rs/8.0/databases/configure/replica-ha.md)) as well as some features unique to Active-Active ([multi-primary replication](#multi-primary-replication/), [automatic conflict resolution](#conflict-resolution/), and [strong eventual consistency](#strong-eventual-consistency/)). -Clustering and replication are used together in Active-Active databases to distribute multiple copies of the dataset across multiple nodes and multiple clusters. As a result, a node or cluster is less likely to become a single point of failure. If a primary node or primary shard fails, a replica is automatically promoted to primary. To avoid having one node hold all copies of certain data, the [replica HA]({{< relref "/operate/rs/8.0/databases/configure/replica-ha.md" >}}) feature (enabled by default) automatically migrates replica shards to available nodes. +Clustering and replication are used together in Active-Active databases to distribute multiple copies of the dataset across multiple nodes and multiple clusters. As a result, a node or cluster is less likely to become a single point of failure. If a primary node or primary shard fails, a replica is automatically promoted to primary. To avoid having one node hold all copies of certain data, the [replica HA](/content/operate/rs/8.0/databases/configure/replica-ha.md) feature (enabled by default) automatically migrates replica shards to available nodes. ## Multi-primary replication @@ -32,34 +32,33 @@ In Redis Software, replication copies data from primary shards to replica shards Each participating cluster hosts an instance of your database, and each instance has its own primary node. Having multiple primary nodes means you can connect to the proxy in any of your participating clusters. Connecting to the closest cluster geographically enables near-local latency. Multi-primary replication (previously referred to as multi-master replication) also means that your users still have access to the database if one of the participating clusters fails. -{{< note >}} -Active-Active databases do not replicate the entire database, only the data. -Database configurations, LUA scripts, and other support info are not replicated. -{{< /note >}} +> [!NOTE] +> Active-Active databases do not replicate the entire database, only the data. +> Database configurations, LUA scripts, and other support info are not replicated. ## Syncer -Keeping multiple copies of the dataset consistent across multiple clusters is no small task. To achieve consistency between participating clusters, Redis Active-Active replication uses a process called the [syncer]({{< relref "/operate/rs/8.0/databases/active-active/syncer" >}}). +Keeping multiple copies of the dataset consistent across multiple clusters is no small task. To achieve consistency between participating clusters, Redis Active-Active replication uses a process called the [syncer](/content/operate/rs/8.0/databases/active-active/syncer.md). -The syncer keeps a [replication backlog]({{< relref "/operate/rs/8.0/databases/active-active/manage#replication-backlog/" >}}), which stores changes to the dataset that the syncer sends to other participating clusters. The syncer uses partial syncs to keep replicas up to date with changes, or a full sync in the event a replica or primary is lost. +The syncer keeps a [replication backlog](/content/operate/rs/8.0/databases/active-active/manage.md#replication-backlog/), which stores changes to the dataset that the syncer sends to other participating clusters. The syncer uses partial syncs to keep replicas up to date with changes, or a full sync in the event a replica or primary is lost. ## Conflict resolution Because you can connect to any participating cluster to perform a write operation, concurrent and conflicting writes are always possible. Conflict resolution is an important part of the Active-Active technology. Active-Active databases only use [conflict-free replicated data types (CRDTs)](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type). These data types provide a predictable conflict resolution and don't require any additional work from the application or client side. -When developing with CRDTs for Active-Active databases, you need to consider some important differences. See [Develop applications with Active-Active databases]({{< relref "/operate/rs/8.0/databases/active-active/develop/_index.md" >}}) for related information. +When developing with CRDTs for Active-Active databases, you need to consider some important differences. See [Develop applications with Active-Active databases](/content/operate/rs/8.0/databases/active-active/develop/_index.md) for related information. ## Strong eventual consistency Maintaining strong consistency for replicated databases comes with tradeoffs in scalability and availability. Redis Active-Active databases use a strong eventual consistency model, which means that local values may differ across replicas for short periods of time, but they all eventually converge to one consistent state. Redis uses vector clocks and the CRDT conflict resolution to strengthen consistency between replicas. You can also enable the causal consistency feature to preserve the order of operations as they are synchronized among replicas. -Other Redis Software features can also be used to enhance the performance, scalability, or durability of your Active-Active database. These include [data persistence]({{< relref "/operate/rs/8.0/databases/configure/database-persistence.md" >}}), [multiple active proxies]({{< relref "/operate/rs/8.0/databases/configure/proxy-policy.md" >}}), [distributed synchronization]({{< relref "/operate/rs/8.0/databases/active-active/synchronization-mode.md" >}}), [OSS Cluster API]({{< relref "/operate/rs/8.0/databases/configure/oss-cluster-api.md" >}}), and [rack-zone awareness]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}). +Other Redis Software features can also be used to enhance the performance, scalability, or durability of your Active-Active database. These include [data persistence](/content/operate/rs/8.0/databases/configure/database-persistence.md), [multiple active proxies](/content/operate/rs/8.0/databases/configure/proxy-policy.md), [distributed synchronization](/content/operate/rs/8.0/databases/active-active/synchronization-mode.md), [OSS Cluster API](/content/operate/rs/8.0/databases/configure/oss-cluster-api.md), and [rack-zone awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md). ## Next steps -- [Plan your Active-Active deployment]({{< relref "/operate/rs/8.0/databases/active-active/planning.md" >}}) -- [Get started with Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/get-started.md" >}}) -- [Create an Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active/create.md" >}}) -- [Develop applications with Active-Active databases]({{}}) -- Review [disaster recovery strategies for Active-Active databases]({{< relref "/operate/rs/8.0/databases/active-active/disaster-recovery" >}}) \ No newline at end of file +- [Plan your Active-Active deployment](/content/operate/rs/8.0/databases/active-active/planning.md) +- [Get started with Active-Active](/content/operate/rs/8.0/databases/active-active/get-started.md) +- [Create an Active-Active database](/content/operate/rs/8.0/databases/active-active/create.md) +- [Develop applications with Active-Active databases](/content/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md) +- Review [disaster recovery strategies for Active-Active databases](/content/operate/rs/8.0/databases/active-active/disaster-recovery/_index.md) \ No newline at end of file diff --git a/content/operate/rs/8.0/databases/active-active/connect.md b/content/operate/rs/8.0/databases/active-active/connect.md index 9854aa46e3..25e700d238 100644 --- a/content/operate/rs/8.0/databases/active-active/connect.md +++ b/content/operate/rs/8.0/databases/active-active/connect.md @@ -66,12 +66,11 @@ redis-cli is a simple command-line tool to interact with redis database. A simple python application running on the host machine can also connect to the database. -{{< note >}} -Before you continue, you must have python and -[redis-py](https://github.com/andymccurdy/redis-py#installation) -(python library for connecting to Redis) configured on the host machine -running the container. -{{< /note >}} +> [!NOTE] +> Before you continue, you must have python and +> [redis-py](https://github.com/andymccurdy/redis-py#installation) +> (python library for connecting to Redis) configured on the host machine +> running the container. 1. In the command-line terminal, create a new file called "redis_test.py" diff --git a/content/operate/rs/8.0/databases/active-active/create.md b/content/operate/rs/8.0/databases/active-active/create.md index cb0158f4a9..f299dbd093 100644 --- a/content/operate/rs/8.0/databases/active-active/create.md +++ b/content/operate/rs/8.0/databases/active-active/create.md @@ -11,11 +11,11 @@ linkTitle: Create weight: 25 url: '/operate/rs/8.0/databases/active-active/create/' --- -[Active-Active geo-replicated databases]({{< relref "/operate/rs/8.0/databases/active-active" >}}) (formerly known as CRDBs) give applications write access +[Active-Active geo-replicated databases](/content/operate/rs/8.0/databases/active-active/_index.md) (formerly known as CRDBs) give applications write access to replicas of the dataset in different geographical locations. The participating Redis Software clusters that host the instances can be distributed in different geographic locations. -Every instance of an Active-Active database can receive write operations, and all operations are [synchronized]({{< relref "/operate/rs/8.0/databases/active-active/develop#example-of-synchronization" >}}) to all instances without conflict. +Every instance of an Active-Active database can receive write operations, and all operations are [synchronized](/content/operate/rs/8.0/databases/active-active/develop/_index.md#example-of-synchronization) to all instances without conflict. ## Steps to create an Active-Active database @@ -30,7 +30,7 @@ Every instance of an Active-Active database can receive write operations, and al - Two or more machines with the same version of Redis Software installed - Network connectivity and cluster FQDN name resolution between all participating clusters -- [Network time service]({{< relref "/operate/rs/8.0/databases/active-active#network-time-service-ntp-or-chrony" >}}) listener (ntpd) configured and running on each node in all clusters +- [Network time service](/content/operate/rs/8.0/databases/active-active/_index.md#network-time-service-ntp-or-chrony) listener (ntpd) configured and running on each node in all clusters ## Create an Active-Active database @@ -87,15 +87,15 @@ Every instance of an Active-Active database can receive write operations, and al {{Add cluster panel.}} - {{}} -If an Active-Active database [runs on flash memory]({{}}), you cannot add participating clusters that run on RAM only. - {{}} + > [!NOTE] + > If an Active-Active database [runs on flash memory](/content/operate/rs/8.0/databases/flash/_index.md), you cannot add participating clusters that run on RAM only. + > 1. Click **Join cluster** to add the cluster to the list of participating clusters. 1. Enter a **Database name**. -1. If your cluster supports [Redis Flex or Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}}), in **Runs on** you can select **Flash** so that your database uses Flash memory. We recommend that you use AOF every 1 sec for the best performance during the initial Active-Active database sync of a new replica. +1. If your cluster supports [Redis Flex or Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md), in **Runs on** you can select **Flash** so that your database uses Flash memory. We recommend that you use AOF every 1 sec for the best performance during the initial Active-Active database sync of a new replica. 1. To configure additional database settings, expand each relevant section to make changes. @@ -119,28 +119,28 @@ If an Active-Active database [runs on flash memory]({{}} -You cannot change the [port number]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) -after the database is created. - {{< /note >}} + > [!NOTE] + > You cannot change the [port number](/content/operate/rs/8.0/networking/port-configurations.md) + > after the database is created. + > -- **Memory limit** - [Database memory limits]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit.md" >}}) include all database replicas and shards, including replica shards in database replication and database shards in database clustering. +- **Memory limit** - [Database memory limits](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md) include all database replicas and shards, including replica shards in database replication and database shards in database clustering. If the total size of the database in the cluster reaches the memory limit, the data eviction policy for the database is enforced. - {{< note >}} -If you create a database with Auto Tiering enabled, you also need to set the RAM-to-Flash ratio -for this database. Minimum RAM is 10%. Maximum RAM is 50%. - {{< /note >}} + > [!NOTE] + > If you create a database with Auto Tiering enabled, you also need to set the RAM-to-Flash ratio + > for this database. Minimum RAM is 10%. Maximum RAM is 50%. + > -- **Memory eviction** - The default [eviction policy]({{}}) for Active-Active databases is `noeviction`. Redis Software versions 6.0.20 and later support all eviction policies for Active-Active databases, unless [Redis Flex or Auto Tiering]({{}}) is enabled. +- **Memory eviction** - The default [eviction policy](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md) for Active-Active databases is `noeviction`. Redis Software versions 6.0.20 and later support all eviction policies for Active-Active databases, unless [Redis Flex or Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md) is enabled. -- [**Capabilities**]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}) (previously **Modules**) - When you create a new in-memory database, you can enable additional capabilities in the database. You cannot enable them after database creation. +- [**Capabilities**](/content/operate/oss_and_stack/stack-with-enterprise/_index.md) (previously **Modules**) - When you create a new in-memory database, you can enable additional capabilities in the database. You cannot enable them after database creation. - Active-Active databases created with or upgraded to Redis version 8 or later automatically enable [Redis Search]({{}}) and [JSON]({{}}), which allows you to index, query, and perform full-text searches of nested JSON documents. + Active-Active databases created with or upgraded to Redis version 8 or later automatically enable [Redis Search](/content/operate/oss_and_stack/stack-with-enterprise/search/search-active-active.md) and [JSON](/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md), which allows you to index, query, and perform full-text searches of nested JSON documents. For Auto Tiering databases, you can enable capabilities that support Auto Tiering. See [Redis Software and Redis Stack feature compatibility -]({{< relref "/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities" >}}) for compatibility details. +](/content/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities.md) for compatibility details. To add capabilities to the database: @@ -158,27 +158,27 @@ After you create the Active-Active database, you can set the TLS mode to **Requi ### High availability -- [**Replication**]({{< relref "/operate/rs/8.0/databases/durability-ha/replication" >}}) - We recommend that all Active-Active database use replication for best intercluster synchronization performance. +- [**Replication**](/content/operate/rs/8.0/databases/durability-ha/replication.md) - We recommend that all Active-Active database use replication for best intercluster synchronization performance. When replication is enabled, every Active-Active database master shard is replicated to a corresponding replica shard. The replica shards are then used to synchronize data between the instances, and the master shards are dedicated to handling client requests. -- [**Replica high availability**]({{< relref "/operate/rs/8.0/databases/configure/replica-ha" >}}) - We also recommend that you enable replica high availability to ensure replica shards are highly-available for this synchronization. +- [**Replica high availability**](/content/operate/rs/8.0/databases/configure/replica-ha.md) - We also recommend that you enable replica high availability to ensure replica shards are highly-available for this synchronization. ### Clustering -- In the [**Clustering**]({{}}) section, you can either: +- In the [**Clustering**](/content/operate/rs/8.0/databases/durability-ha/clustering.md) section, you can either: - - **Enable sharding** and select the number of shards you want to have in the database. When database clustering is enabled, databases have limitations for [multi-key operations]({{}}). + - **Enable sharding** and select the number of shards you want to have in the database. When database clustering is enabled, databases have limitations for [multi-key operations](/content/operate/rs/8.0/databases/durability-ha/clustering.md#multikey-operations). You can increase the number of shards in the database at any time. - - Clear the **Enable sharding** option to use only one shard, which allows you to use [multi-key operations]({{}}) without the limitations. + - Clear the **Enable sharding** option to use only one shard, which allows you to use [multi-key operations](/content/operate/rs/8.0/databases/durability-ha/clustering.md#multikey-operations) without the limitations. - {{}} -You cannot enable or turn off database clustering after the Active-Active database is created. - {{}} + > [!NOTE] + > You cannot enable or turn off database clustering after the Active-Active database is created. + > -- [**OSS Cluster API**]({{< relref "/operate/rs/8.0/databases/configure/oss-cluster-api.md" >}}) - The OSS Cluster API configuration allows access to multiple endpoints for increased throughput. The OSS Cluster API setting applies to all instances of the Active-Active database across participating clusters. +- [**OSS Cluster API**](/content/operate/rs/8.0/databases/configure/oss-cluster-api.md) - The OSS Cluster API configuration allows access to multiple endpoints for increased throughput. The OSS Cluster API setting applies to all instances of the Active-Active database across participating clusters. This configuration requires clients to connect to the primary node to retrieve the cluster topology before they can connect directly to proxies on each node. @@ -186,7 +186,7 @@ You cannot enable or turn off database clustering after the Active-Active databa ### Durability -To protect against loss of data stored in RAM, you can enable [**Persistence**]({{}}) to store a copy of the data on disk. +To protect against loss of data stored in RAM, you can enable [**Persistence**](/content/operate/rs/8.0/databases/configure/database-persistence.md) to store a copy of the data on disk. Active-Active databases support append-only file (AOF) persistence only. Snapshot persistence is not supported for Active-Active databases. @@ -194,13 +194,13 @@ Active-Active databases support append-only file (AOF) persistence only. Snapsho - **Unauthenticated access** - You can access the database as the default user without providing credentials. -- **Password-only authentication** - When you configure a password for your database's default user, all connections to the database must authenticate with the [AUTH command]({{< relref "/commands/auth" >}}). +- **Password-only authentication** - When you configure a password for your database's default user, all connections to the database must authenticate with the [AUTH command](/content/commands/auth.md). If you also configure an access control list, connections can specify other users for authentication, and requests are allowed according to the Redis ACLs specified for that user. Creating a database without ACLs enables a *default* user with full access to the database. You can secure default user access by requiring a password. -- **Access Control List** - You can specify the [user roles]({{< relref "/operate/rs/8.0/security/access-control/create-db-roles" >}}) that have access to the database and the [Redis ACLs]({{< relref "/operate/rs/8.0/security/access-control/redis-acl-overview" >}}) that apply to those connections. +- **Access Control List** - You can specify the [user roles](/content/operate/rs/8.0/security/access-control/create-db-roles.md) that have access to the database and the [Redis ACLs](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md) that apply to those connections. You can only configure access control after the Active-Active database is created. In each participating cluster, add ACLs after database creation. @@ -208,19 +208,19 @@ Active-Active databases support append-only file (AOF) persistence only. Snapsho 1. In **Security > Access Control > Access Control List**, select **+ Add ACL**. - 1. Select a [role]({{< relref "/operate/rs/8.0/security/access-control/create-db-roles" >}}) to grant database access. + 1. Select a [role](/content/operate/rs/8.0/security/access-control/create-db-roles.md) to grant database access. - 1. Associate a [Redis ACL]({{< relref "/operate/rs/8.0/security/access-control/create-db-roles" >}}) with the role and database. + 1. Associate a [Redis ACL](/content/operate/rs/8.0/security/access-control/create-db-roles.md) with the role and database. 1. Select the check mark to add the ACL. ### Causal consistency -[**Causal consistency**]({{< relref "/operate/rs/8.0/databases/active-active/causal-consistency" >}}) in an Active-Active database guarantees that the order of operations on a specific key is maintained across all instances of an Active-Active database. +[**Causal consistency**](/content/operate/rs/8.0/databases/active-active/causal-consistency.md) in an Active-Active database guarantees that the order of operations on a specific key is maintained across all instances of an Active-Active database. To enable causal consistency for an existing Active-Active database, use the REST API. ## Test Active-Active database connections -With the Redis database created, you are ready to connect to your database. See [Connect to Active-Active databases]({{< relref "/operate/rs/8.0/databases/active-active/connect.md" >}}) for tutorials and examples of multiple connection methods. +With the Redis database created, you are ready to connect to your database. See [Connect to Active-Active databases](/content/operate/rs/8.0/databases/active-active/connect.md) for tutorials and examples of multiple connection methods. diff --git a/content/operate/rs/8.0/databases/active-active/delete.md b/content/operate/rs/8.0/databases/active-active/delete.md index 6ba1856a02..a4138801b7 100644 --- a/content/operate/rs/8.0/databases/active-active/delete.md +++ b/content/operate/rs/8.0/databases/active-active/delete.md @@ -14,9 +14,8 @@ url: '/operate/rs/8.0/databases/active-active/delete/' When you delete an Active-Active database (formerly known as CRDB), all instances of the Active-Active database are deleted from all participating clusters. -{{% warning %}} -This action is immediate, non-reversible, and has no rollback. -{{% /warning %}} +> [!WARNING] +> This action is immediate, non-reversible, and has no rollback. Because Active-Active databases are made up of instances on multiple participating clusters, to restore a deleted Active-Active database you must create the database again with all of its instances @@ -25,5 +24,5 @@ and then restore the data to the database from backup. We recommended that you: - Back up your data and test the restore on another database before you delete an Active-Active database. -- Consider [flushing the data]({{< relref "/operate/rs/8.0/databases/import-export/flush.md" >}}) from the database +- Consider [flushing the data](/content/operate/rs/8.0/databases/import-export/flush.md) from the database so that you can keep the Active-Active database configuration and restore the data to it if necessary. diff --git a/content/operate/rs/8.0/databases/active-active/develop/_index.md b/content/operate/rs/8.0/databases/active-active/develop/_index.md index 0d8b506278..3a52b9e834 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/_index.md +++ b/content/operate/rs/8.0/databases/active-active/develop/_index.md @@ -52,4 +52,4 @@ Replica Of capabilities in Redis Software. [Learn more about synchronization for -each supported data type]({{< relref "/operate/rs/8.0/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md" >}}) with them on Redis Software. +each supported data type](/content/operate/rs/8.0/databases/active-active/develop/data-types/_index.md) and [how to develop applications](/content/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md) with them on Redis Software. diff --git a/content/operate/rs/8.0/databases/active-active/develop/app-failover-active-active.md b/content/operate/rs/8.0/databases/active-active/develop/app-failover-active-active.md index ac7a6e92ce..1998ffffd9 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/app-failover-active-active.md +++ b/content/operate/rs/8.0/databases/active-active/develop/app-failover-active-active.md @@ -16,9 +16,8 @@ An application deployed with an Active-Active database connects to a replica of If that replica is not available, the application can failover to a remote replica, and failback again if necessary. In this article we explain how this process works. -{{}} -For other disaster recovery strategies including network-based, proxy-based, and client library approaches, see [Active-Active disaster recovery strategies]({{}}). -{{}} +> [!NOTE] +> For other disaster recovery strategies including network-based, proxy-based, and client library approaches, see [Active-Active disaster recovery strategies](/content/operate/rs/8.0/databases/active-active/disaster-recovery/_index.md). Active-Active connection failover can improve data availability, but can negatively impact data consistency. Active-Active replication, like Redis replication, is asynchronous. @@ -33,7 +32,7 @@ Your application can detect two types of failure: 1. **Local failures** - The local replica is down or otherwise unavailable 1. **Replication failures** - The local replica is available but fails to replicate to or from remote replicas -You can also use [database availability API requests]({{}}) to determine if a database replica is available to handle read and write operations. The lag-aware database availability requests considers CRDT replication lag as a health check criterion to prevent reading stale data during failback scenarios. +You can also use [database availability API requests](/content/operate/rs/8.0/monitoring/db-availability.md) to determine if a database replica is available to handle read and write operations. The lag-aware database availability requests considers CRDT replication lag as a health check criterion to prevent reading stale data during failback scenarios. ### Local Failures @@ -45,9 +44,8 @@ Replication failures are more difficult to detect reliably without causing false The most reliable method for health-checking replication is by using the Redis publish/subscribe (pub/sub) mechanism. -{{< note >}} -Note that this document does not suggest that Redis pub/sub is reliable in the common sense. Messages can get lost in certain conditions, but that is acceptable in this case because typically the application determines that replication is down only after not being able to deliver a number of messages over a period of time. -{{< /note >}} +> [!NOTE] +> Note that this document does not suggest that Redis pub/sub is reliable in the common sense. Messages can get lost in certain conditions, but that is acceptable in this case because typically the application determines that replication is down only after not being able to deliver a number of messages over a period of time. When you use the pub/sub data type to detect failures, the application: diff --git a/content/operate/rs/8.0/databases/active-active/develop/data-types/hyperloglog.md b/content/operate/rs/8.0/databases/active-active/develop/data-types/hyperloglog.md index 2e0af84dde..65fc73c8c6 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/data-types/hyperloglog.md +++ b/content/operate/rs/8.0/databases/active-active/develop/data-types/hyperloglog.md @@ -18,8 +18,8 @@ Because it estimates the cardinality by probability, the HyperLogLog algorithm c ## HyperLogLog in Redis -Redis Open source implements [HyperLogLog]({{< relref "/develop/data-types/probabilistic/hyperloglogs" >}}) (HLL) as a native data structure. -It supports adding elements ([PFADD]({{< relref "/commands/pfadd" >}}) to an HLL, counting elements ([PFCOUNT]({{< relref "/commands/pfcount" >}}) of HLLs, and merging of ([PFMERGE]({{< relref "/commands/pfmerge" >}}) HLLs. +Redis Open source implements [HyperLogLog](/content/develop/data-types/probabilistic/hyperloglogs.md) (HLL) as a native data structure. +It supports adding elements ([PFADD](/content/commands/pfadd.md) to an HLL, counting elements ([PFCOUNT](/content/commands/pfcount.md) of HLLs, and merging of ([PFMERGE](/content/commands/pfmerge.md) HLLs. Here is an example of a simple write case: diff --git a/content/operate/rs/8.0/databases/active-active/develop/data-types/json.md b/content/operate/rs/8.0/databases/active-active/develop/data-types/json.md index 52bd338608..3a8b3deafd 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/data-types/json.md +++ b/content/operate/rs/8.0/databases/active-active/develop/data-types/json.md @@ -20,9 +20,9 @@ The design is based on [A Conflict-Free Replicated JSON Datatype](https://arxiv. To use JSON in an Active-Active database, you must enable JSON during database creation. -Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/active-active/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. +Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription](/content/operate/rc/databases/active-active/create-active-active-database.md#select-capabilities) in the Redis Cloud documentation for details. -In Redis Software, Active-Active databases created with or upgraded to Redis version 8 or later automatically enable JSON. For earlier Redis versions, see [Create an Active-Active JSON database]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json/active-active#create-an-active-active-json-database" >}}) in the Redis Stack and Redis Software documentation for instructions. +In Redis Software, Active-Active databases created with or upgraded to Redis version 8 or later automatically enable JSON. For earlier Redis versions, see [Create an Active-Active JSON database](/content/operate/oss_and_stack/stack-with-enterprise/json/active-active.md#create-an-active-active-json-database) in the Redis Stack and Redis Software documentation for instructions. {{}} diff --git a/content/operate/rs/8.0/databases/active-active/develop/data-types/sorted-sets.md b/content/operate/rs/8.0/databases/active-active/develop/data-types/sorted-sets.md index 1bb0e7e5c2..58814a3e78 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/data-types/sorted-sets.md +++ b/content/operate/rs/8.0/databases/active-active/develop/data-types/sorted-sets.md @@ -11,9 +11,8 @@ linkTitle: Sorted sets weight: $weight url: '/operate/rs/8.0/databases/active-active/develop/data-types/sorted-sets/' --- -{{< note >}} -[Redis Geospatial (Geo)]({{< relref "/commands/GEOADD" >}}) is based on Sorted Sets, so the same Active-Active database development instructions apply to Geo. -{{< /note >}} +> [!NOTE] +> [Redis Geospatial (Geo)](/content/commands/geoadd.md) is based on Sorted Sets, so the same Active-Active database development instructions apply to Geo. Similar to Redis Sets, Redis Sorted Sets are non-repeating collections of Strings. The difference between the two is that every member of a diff --git a/content/operate/rs/8.0/databases/active-active/develop/data-types/streams.md b/content/operate/rs/8.0/databases/active-active/develop/data-types/streams.md index 01d0fde6e2..039651345e 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/data-types/streams.md +++ b/content/operate/rs/8.0/databases/active-active/develop/data-types/streams.md @@ -11,7 +11,7 @@ linkTitle: Streams weight: $weight url: '/operate/rs/8.0/databases/active-active/develop/data-types/streams/' --- -A [Redis Stream]({{< relref "/develop/data-types/streams" >}}) is a data structure that acts like an append-only log. +A [Redis Stream](/content/develop/data-types/streams/_index.md) is a data structure that acts like an append-only log. Each stream entry consists of: - A unique, monotonically increasing ID @@ -64,11 +64,10 @@ In the example below, we write to a stream concurrently from two regions. Notice Notice also that the synchronized streams contain no duplicate IDs. As long as you allow the database to generate your stream IDs, you'll never have more than one stream entry with the same ID. -{{< note >}} -Redis Open Source uses one radix tree (referred to as `rax` in the code base) to implement each stream. However, Active-Active databases implement a single logical stream using one `rax` per region. -Each region adds entries only to its associated `rax` (but can remove entries from all `rax` trees). -This means that XREAD and XREADGROUP iterate simultaneously over all `rax` trees and return the appropriate entry by comparing the entry IDs from each `rax`. -{{< /note >}} +> [!NOTE] +> Redis Open Source uses one radix tree (referred to as `rax` in the code base) to implement each stream. However, Active-Active databases implement a single logical stream using one `rax` per region. +> Each region adds entries only to its associated `rax` (but can remove entries from all `rax` trees). +> This means that XREAD and XREADGROUP iterate simultaneously over all `rax` trees and return the appropriate entry by comparing the entry IDs from each `rax`. ### Conflict resolution @@ -146,9 +145,8 @@ Because Active-Active databases replicate asynchronously, providing your own IDs In this scenario, two entries with the ID `100-1` are added at _t1_. After syncing, the stream `x` contains two entries with the same ID. -{{< note >}} -Stream IDs in Redis Open Source consist of two integers separated by a dash ('-'). When the server generates the ID, the first integer is the current time in milliseconds, and the second integer is a sequence number. So, the format for stream IDs is MS-SEQ. -{{< /note >}} +> [!NOTE] +> Stream IDs in Redis Open Source consist of two integers separated by a dash ('-'). When the server generates the ID, the first integer is the current time in milliseconds, and the second integer is a sequence number. So, the format for stream IDs is MS-SEQ. To prevent duplicate IDs and to comply with the original Redis streams design, Active-Active databases provide three ID modes for XADD: @@ -158,9 +156,8 @@ To prevent duplicate IDs and to comply with the original Redis streams design, A The default and recommended mode is _strict_, which prevents duplicate IDs. -{{% warning %}} -Why do you want to prevent duplicate IDs? First, XDEL, XCLAIM, and other commands can affect more than one entry when duplicate IDs are present in a stream. Second, duplicate entries may be removed if a database is exported or renamed. -{{% /warning %}} +> [!WARNING] +> Why do you want to prevent duplicate IDs? First, XDEL, XCLAIM, and other commands can affect more than one entry when duplicate IDs are present in a stream. Second, duplicate entries may be removed if a database is exported or renamed. To change XADD's ID generation mode, use the `rladmin` command-line utility: @@ -210,15 +207,14 @@ Active-Active databases fully support consumer groups with Redis Streams. Here i | _t4_ | `XINFO GROUPS x`
**→ [group1, group2]** | `XINFO GROUPS x`
**→ [group1, group2]** | -{{< note >}} -Redis Open Source uses one radix tree (`rax`) to hold the global pending entries list and another `rax` for each consumer's PEL. -The global PEL is a unification of all consumer PELs, which are disjoint. - -An Active-Active database stream maintains a global PEL and a per-consumer PEL for each region. - -When given an ID different from the special ">" ID, XREADGROUP iterates simultaneously over all of the PELs for all consumers. -It returns the next entry by comparing entry IDs from the different PELs. -{{< /note >}} +> [!NOTE] +> Redis Open Source uses one radix tree (`rax`) to hold the global pending entries list and another `rax` for each consumer's PEL. +> The global PEL is a unification of all consumer PELs, which are disjoint. +> +> An Active-Active database stream maintains a global PEL and a per-consumer PEL for each region. +> +> When given an ID different from the special ">" ID, XREADGROUP iterates simultaneously over all of the PELs for all consumers. +> It returns the next entry by comparing entry IDs from the different PELs. ### Conflict resolution diff --git a/content/operate/rs/8.0/databases/active-active/develop/data-types/strings.md b/content/operate/rs/8.0/databases/active-active/develop/data-types/strings.md index 0df9351a70..827a4ca16a 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/data-types/strings.md +++ b/content/operate/rs/8.0/databases/active-active/develop/data-types/strings.md @@ -13,15 +13,14 @@ url: '/operate/rs/8.0/databases/active-active/develop/data-types/strings/' --- Active-Active databases support both strings and bitfields. -{{}} -Active-Active **bitfield** support was added in RS version 6.0.20. -{{}} +> [!NOTE] +> Active-Active **bitfield** support was added in RS version 6.0.20. Changes to both of these data structures will be replicated across Active-Active member databases. ## Replication semantics -Except in the case of [string counters]({{< relref "#string-counter-support" >}}) (see below), both strings and bitfields are replicated using a "last write wins" approach. The reason for this is that strings and bitfields are effectively binary objects. So, unlike with lists, sets, and hashes, the conflict resolution semantics of a given operation on a string or bitfield are undefined. +Except in the case of [string counters](#string-counter-support) (see below), both strings and bitfields are replicated using a "last write wins" approach. The reason for this is that strings and bitfields are effectively binary objects. So, unlike with lists, sets, and hashes, the conflict resolution semantics of a given operation on a string or bitfield are undefined. ### How "last write wins" works @@ -43,7 +42,7 @@ time (t2) wins over the update at t1. ### String counter support -When you're using a string as counter (for instance, with the [INCR]({{< relref "/commands/incr" >}}) or [INCRBY]({{< relref "/commands/incrby" >}}) commands), +When you're using a string as counter (for instance, with the [INCR](/content/commands/incr.md) or [INCRBY](/content/commands/incrby.md) commands), then conflicts will be resolved semantically. On conflicting writes, counters accumulate the total counter operations @@ -67,7 +66,6 @@ concurrent writes. | t8 | — Sync — | — Sync — | | t9 | GET counter
13 | GET counter
13 | -{{< note >}} -Active-Active databases support 59-bit counters. -This limitation is to protect from overflowing a counter in a concurrent operation. -{{< /note >}} +> [!NOTE] +> Active-Active databases support 59-bit counters. +> This limitation is to protect from overflowing a counter in a concurrent operation. diff --git a/content/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md b/content/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md index 0e1a0642cb..57e459c4ee 100644 --- a/content/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md +++ b/content/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md @@ -51,7 +51,7 @@ Databases provide various approaches to address some of these concerns: - **Active-Passive geo-distributed deployments**: With active-passive distributions, all writes go to an active cluster. Redis Sofware - provides a [Replica Of]({{}}) capability that provides a similar approach. + provides a [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) capability that provides a similar approach. This can be employed when the workload is heavily balanced toward reads and few writes. However, WAN performance and availability can be unreliable, and traveling large distances for writes takes away @@ -99,9 +99,9 @@ execute them in script-replication mode. ## Eviction -The default policy for Active-Active databases is _noeviction_ mode. Redis Software version 6.0.20 and later support all eviction policies for Active-Active databases, unless [Redis Flex or Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash" >}}) (previously known as Redis on Flash) is enabled. +The default policy for Active-Active databases is _noeviction_ mode. Redis Software version 6.0.20 and later support all eviction policies for Active-Active databases, unless [Redis Flex or Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md) (previously known as Redis on Flash) is enabled. -For details, see [eviction for Active-Active databases (Redis Software)]({{< relref "/operate/rs/8.0/databases/memory-performance/eviction-policy#active-active-database-eviction" >}}) or [eviction for Active-Active databases (Redis Cloud)]({{< relref "/operate/rc/databases/configuration/data-eviction-policies#active-active-replication-considerations" >}}). +For details, see [eviction for Active-Active databases (Redis Software)](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md#active-active-database-eviction) or [eviction for Active-Active databases (Redis Cloud)](/content/operate/rc/databases/configuration/data-eviction-policies.md#active-active-replication-considerations). ## Expiration @@ -146,9 +146,9 @@ Furthermore, a replica that is not the owner of the expired value: - Expires it (sending a DEL) before making any modifications if a user attempts to access it in WRITE mode. - {{< note >}} -Expiration values are in the range of [0, 2^49] for Active-Active databases and [0, 2^64] for regular databases. - {{< /note >}} + > [!NOTE] + > Expiration values are in the range of [0, 2^49] for Active-Active databases and [0, 2^64] for regular databases. + > ## Tombstones diff --git a/content/operate/rs/8.0/databases/active-active/disaster-recovery/_index.md b/content/operate/rs/8.0/databases/active-active/disaster-recovery/_index.md index 065fc53354..aeb9d2d5c5 100644 --- a/content/operate/rs/8.0/databases/active-active/disaster-recovery/_index.md +++ b/content/operate/rs/8.0/databases/active-active/disaster-recovery/_index.md @@ -21,13 +21,13 @@ However, because Active-Active Redis databases do not have a built-in [failover] Depending on your requirements for Recovery Point Objective, Recovery Time Objective, consistency, scalability, resources, maintainability, and other factors, choose one of the following strategies to fail over to a secondary Active-Active member or fail back to the primary member: -- [Network-based]({{}}): Global traffic managers and load balancers handle routing at the network layer, requiring no application changes. +- [Network-based](/content/operate/rs/8.0/databases/active-active/disaster-recovery/network-based.md): Global traffic managers and load balancers handle routing at the network layer, requiring no application changes. -- [Proxy-based]({{}}): Software proxies handle detection and routing logic. +- [Proxy-based](/content/operate/rs/8.0/databases/active-active/disaster-recovery/proxy-based.md): Software proxies handle detection and routing logic. -- [Client library-based]({{}}): Redis client libraries with built-in failover logic. +- [Client library-based](/content/operate/rs/8.0/databases/active-active/disaster-recovery/client-library-based.md): Redis client libraries with built-in failover logic. -- [Application-based]({{}}): Custom application-level monitoring and connectivity management. +- [Application-based](/content/operate/rs/8.0/databases/active-active/disaster-recovery/application-based.md): Custom application-level monitoring and connectivity management. ## Considerations for disaster recovery @@ -53,7 +53,7 @@ When implementing a disaster recovery strategy for an Active-Active database, co - Does the application connect to the Active-Active database using a Redis client library or through a development framework or ecosystem? -- Does the Active-Active database use DNS, the [OSS Cluster API]({{}}), or the [discovery service]({{}})? +- Does the Active-Active database use DNS, the [OSS Cluster API](/content/operate/rs/8.0/clusters/optimize/oss-cluster-api.md), or the [discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md)? - Is rate-limiting control needed? @@ -69,11 +69,10 @@ To determine which health checks to use, consider factors such as detection spee Lag-aware database availability requests are the recommended method to detect database failures in Redis Software deployments. This method guarantees that all the shards of a clustered database are connectable. -See [Lag-aware database availability requests]({{}}) for more information. +See [Lag-aware database availability requests](/content/operate/rs/8.0/monitoring/db-availability.md#lag-aware) for more information. -{{}} -Lag-aware database availability requests are not supported for Redis Cloud databases. -{{}} +> [!NOTE] +> Lag-aware database availability requests are not supported for Redis Cloud databases. ### Redis connection health checks @@ -81,7 +80,7 @@ You can use an existing connection to the database to check its availability. #### PING command -The [`PING`]({{}}) command checks that the database endpoint is available and the application can connect to the database. +The [`PING`](/content/commands/ping.md) command checks that the database endpoint is available and the application can connect to the database. #### Connection timeouts or Redis errors @@ -91,7 +90,7 @@ By capturing connection errors, you can determine when to fail over to a seconda You can also implement custom health checks. -For example, you can check the keyspace with write operations such as using the [`SET`]({{}}) command to write arbitrary data. This check verifies that database shards are available and writable. +For example, you can check the keyspace with write operations such as using the [`SET`](/content/commands/set.md) command to write arbitrary data. This check verifies that database shards are available and writable. For example: diff --git a/content/operate/rs/8.0/databases/active-active/disaster-recovery/application-based.md b/content/operate/rs/8.0/databases/active-active/disaster-recovery/application-based.md index 0895e37c04..7255f1d988 100644 --- a/content/operate/rs/8.0/databases/active-active/disaster-recovery/application-based.md +++ b/content/operate/rs/8.0/databases/active-active/disaster-recovery/application-based.md @@ -14,4 +14,4 @@ url: '/operate/rs/8.0/databases/active-active/disaster-recovery/application-base For complete control over failover and failback, you can implement disaster recovery mechanisms directly in the application server. -For more information, see [Application failover with Active-Active databases]({{}}). +For more information, see [Application failover with Active-Active databases](/content/operate/rs/8.0/databases/active-active/develop/app-failover-active-active.md). diff --git a/content/operate/rs/8.0/databases/active-active/disaster-recovery/client-library-based.md b/content/operate/rs/8.0/databases/active-active/disaster-recovery/client-library-based.md index 53f8a8952b..d549f7b6ac 100644 --- a/content/operate/rs/8.0/databases/active-active/disaster-recovery/client-library-based.md +++ b/content/operate/rs/8.0/databases/active-active/disaster-recovery/client-library-based.md @@ -42,19 +42,19 @@ The following diagram shows a client library-based disaster recovery approach: Diagram of client libraries routing traffic to Active-Active database members -The following diagram shows a client-based disaster recovery approach that also uses [connection pooling]({{}}): +The following diagram shows a client-based disaster recovery approach that also uses [connection pooling](/content/develop/clients/pools-and-muxing.md#connection-pooling):
Diagram of client libraries with connection pooling routing traffic to Active-Active database members
For additional information, see the the introduction to -[Client-side geographic failover]({{}}) +[Client-side geographic failover](/content/develop/clients/failover.md) and also the following client library guides for failover and failback: -- [Jedis (Java)]({{}}) +- [Jedis (Java)](/content/develop/clients/jedis/failover.md) -- [Lettuce (Java)]({{}}) +- [Lettuce (Java)](/content/develop/clients/lettuce/failover.md) -- [redis-py (Python)]({{}}) +- [redis-py (Python)](/content/develop/clients/redis-py/failover.md) diff --git a/content/operate/rs/8.0/databases/active-active/get-started.md b/content/operate/rs/8.0/databases/active-active/get-started.md index 89974815a6..47ef7c2cf9 100644 --- a/content/operate/rs/8.0/databases/active-active/get-started.md +++ b/content/operate/rs/8.0/databases/active-active/get-started.md @@ -22,13 +22,12 @@ clusters for test and development environments. Here are the steps: 1. Test connectivity to the Active-Active database. -To run an Active-Active database on installations from the [Redis Software download package]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart" >}}), +To run an Active-Active database on installations from the [Redis Software download package](/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md), set up two Redis Software installations and continue from Step 2. -{{}} -This getting started guide is for development or demonstration environments. -For production environments, see [Create an Active-Active geo-replicated database]({{< relref "/operate/rs/8.0/databases/active-active/create" >}}) for instructions. -{{}} +> [!NOTE] +> This getting started guide is for development or demonstration environments. +> For production environments, see [Create an Active-Active geo-replicated database](/content/operate/rs/8.0/databases/active-active/create.md) for instructions. ## Run two containers @@ -42,22 +41,21 @@ docker run -d --cap-add sys_resource -h rs1_node1 --name rs1_node1 -p 8443:8443 docker run -d --cap-add sys_resource -h rs2_node1 --name rs2_node1 -p 8445:8443 -p 9445:9443 -p 12002:12000 redislabs/redis ``` -{{}} -The `-h` option sets the hostname of the container, which is important for cluster setup and identification. - -The `--name` option assigns a name to the container, making it easier to manage and reference with Docker commands. - -The `-p` options map the Cluster Manager UI port (8443), REST API port (9443), and database access port differently for each container to make sure that all containers can be accessed from the host OS that is running the containers. -{{}} +> [!NOTE] +> The `-h` option sets the hostname of the container, which is important for cluster setup and identification. +> +> The `--name` option assigns a name to the container, making it easier to manage and reference with Docker commands. +> +> The `-p` options map the Cluster Manager UI port (8443), REST API port (9443), and database access port differently for each container to make sure that all containers can be accessed from the host OS that is running the containers. ## Set up two clusters 1. For cluster 1, go to `https://localhost:8443` in a browser on the host machine to access the Redis Software Cluster Manager UI. - {{}} -Depending on your browser, you may see a certificate error. Continue to the website. - {{}} + > [!NOTE] + > Depending on your browser, you may see a certificate error. Continue to the website. + > 1. Click **Create new cluster**: @@ -91,9 +89,8 @@ Depending on your browser, you may see a certificate error. Continue to the webs Now you have two Redis Software clusters with FQDNs `cluster1.local` and `cluster2.local`. -{{}} -Each Active-Active instance must have a unique fully-qualified domain name (FQDN). -{{}} +> [!NOTE] +> Each Active-Active instance must have a unique fully-qualified domain name (FQDN). ## Create an Active-Active database @@ -141,20 +138,20 @@ Each Active-Active instance must have a unique fully-qualified domain name (FQDN 1. In the **Clustering** section, either: - Make sure that **Sharding** is enabled and select the number of shards you want to have in the database. When database clustering is enabled, - databases are subject to limitations on [Multi-key commands]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering" >}}). + databases are subject to limitations on [Multi-key commands](/content/operate/rs/8.0/databases/durability-ha/clustering.md). You can increase the number of shards in the database at any time. - - Turn off **Sharding** to use only one shard and avoid [Multi-key command]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering" >}}) limitations. + - Turn off **Sharding** to use only one shard and avoid [Multi-key command](/content/operate/rs/8.0/databases/durability-ha/clustering.md) limitations. - {{< note >}} -You cannot enable or turn off database clustering after the Active-Active database is created. - {{< /note >}} + > [!NOTE] + > You cannot enable or turn off database clustering after the Active-Active database is created. + > 1. Click **Create**. - {{< note >}} -{{< embed-md "docker-memory-limitation.md" >}} - {{< /note >}} + > [!NOTE] + > {{< embed-md "docker-memory-limitation.md" >}} + > 1. After the Active-Active database is created, sign in to the Cluster Manager UIs for cluster 1 at `https://localhost:8443` and cluster 2 at `https://localhost:8445`. @@ -169,4 +166,4 @@ You cannot enable or turn off database clustering after the Active-Active databa ## Test connection With the Redis database created, you are ready to connect to your -database. See [Connect to Active-Active databases]({{< relref "/operate/rs/8.0/databases/active-active/connect" >}}) for tutorials and examples of multiple connection methods. +database. See [Connect to Active-Active databases](/content/operate/rs/8.0/databases/active-active/connect.md) for tutorials and examples of multiple connection methods. diff --git a/content/operate/rs/8.0/databases/active-active/manage.md b/content/operate/rs/8.0/databases/active-active/manage.md index 8dbff3022d..a9359fffb6 100644 --- a/content/operate/rs/8.0/databases/active-active/manage.md +++ b/content/operate/rs/8.0/databases/active-active/manage.md @@ -24,9 +24,8 @@ As of Redis Software version 8.0.16, the Cluster Manager UI supports both [globa Global configuration changes are applied to all participating clusters in the Active-Active database. However, if your Active-Active mesh contains local configurations, they will continue to override global settings on the database instances where they are applied. -{{< warning >}} -Applying global configuration changes will override any local settings created using the API or earlier Cluster Manager UI versions. To keep local changes, manage them in the [**Local** configuration tab](#change-local-configuration). -{{< /warning >}} +> [!WARNING] +> Applying global configuration changes will override any local settings created using the API or earlier Cluster Manager UI versions. To keep local changes, manage them in the [**Local** configuration tab](#change-local-configuration).
@@ -48,7 +47,7 @@ To make global configuration changes in the Cluster Manager UI: -tab-sep- -To change the global configuration from the command line, use [`crdb-cli crdb update`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update" >}}): +To change the global configuration from the command line, use [`crdb-cli crdb update`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update.md): ```sh crdb-cli crdb update --crdb-guid -- @@ -82,7 +81,7 @@ To change the local configuration in the Cluster Manager UI: -tab-sep- -To change the local configuration from the command line, use [`rladmin tune db`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-db" >}}): +To change the local configuration from the command line, use [`rladmin tune db`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-db): ```sh rladmin tune db { db: | } @@ -109,7 +108,7 @@ On the **Local** configuration tab, any locally configured settings that differ ## Participating clusters You can add and remove participating clusters of an Active-Active database to change the topology. -To manage the changes to Active-Active topology, use [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli/" >}}) or the participating clusters list in the Cluster Manager UI. +To manage the changes to Active-Active topology, use [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) or the participating clusters list in the Cluster Manager UI. ### Add participating clusters @@ -120,9 +119,8 @@ After you add new participating clusters to an existing Active-Active database, the new database instance can accept connections and read operations. The new instance does not accept write operations until it is in the syncing state. -{{}} -If an Active-Active database [runs on flash memory]({{}}), you cannot add participating clusters that run on RAM only. -{{}} +> [!NOTE] +> If an Active-Active database [runs on flash memory](/content/operate/rs/8.0/databases/flash/_index.md), you cannot add participating clusters that run on RAM only. To add a new participating cluster to an existing Active-Active configuration using the Cluster Manager UI: @@ -166,13 +164,13 @@ To remove a participating cluster using the Cluster Manager UI: ## Replication backlog -Redis databases that use [replication for high availability]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}) maintain a replication backlog (per shard) to synchronize the primary and replica shards of a database. In addition to the database replication backlog, Active-Active databases maintain a backlog (per shard) to synchronize the database instances between clusters. +Redis databases that use [replication for high availability](/content/operate/rs/8.0/databases/durability-ha/replication.md) maintain a replication backlog (per shard) to synchronize the primary and replica shards of a database. In addition to the database replication backlog, Active-Active databases maintain a backlog (per shard) to synchronize the database instances between clusters. By default, both the database and Active-Active replication backlogs are set to one percent (1%) of the database size divided by the number of shards. This can range between 1MB to 250MB per shard for each backlog. ### Change the replication backlog size -Use the [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}) utility to control the size of the replication backlogs. You can set it to `auto` or set a specific size. +Use the [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) utility to control the size of the replication backlogs. You can set it to `auto` or set a specific size. Update the database replication backlog configuration with the `crdb-cli` command shown below. diff --git a/content/operate/rs/8.0/databases/active-active/planning.md b/content/operate/rs/8.0/databases/active-active/planning.md index 40a47bc6d3..d608bdd9d8 100644 --- a/content/operate/rs/8.0/databases/active-active/planning.md +++ b/content/operate/rs/8.0/databases/active-active/planning.md @@ -16,21 +16,20 @@ In Redis Software, Active-Active geo-distribution is based on [conflict-free rep Because of the complexities of Active-Active databases, there are special considerations to keep in mind while planning your Active-Active database. -See [Active-Active Redis]({{< relref "/operate/rs/8.0/databases/active-active/" >}}) for more information about geo-distributed replication. For more info on other high availability features, see [Durability and high availability]({{< relref "/operate/rs/8.0/databases/durability-ha/" >}}). +See [Active-Active Redis](/content/operate/rs/8.0/databases/active-active/_index.md) for more information about geo-distributed replication. For more info on other high availability features, see [Durability and high availability](/content/operate/rs/8.0/databases/durability-ha/_index.md). ## Participating clusters -You need at least [two participating clusters]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup" >}}) for an Active-Active database. If your database requires more than ten participating clusters, contact Redis support. You can [add or remove participating clusters]({{< relref "/operate/rs/8.0/databases/active-active/manage#participating-clusters/" >}}) after database creation. +You need at least [two participating clusters](/content/operate/rs/8.0/clusters/new-cluster-setup.md) for an Active-Active database. If your database requires more than ten participating clusters, contact Redis support. You can [add or remove participating clusters](/content/operate/rs/8.0/databases/active-active/manage.md#participating-clusters/) after database creation. -{{}} -If an Active-Active database [runs on flash memory]({{}}), you cannot add participating clusters that run on RAM only. -{{}} +> [!NOTE] +> If an Active-Active database [runs on flash memory](/content/operate/rs/8.0/databases/flash/_index.md), you cannot add participating clusters that run on RAM only. For Redis Software versions earlier than 8.0.16, changes made from the Cluster Manager UI to an Active-Active database configuration only apply to the cluster you are editing. For global configuration changes across all clusters, use the `crdb-cli` command-line utility. As of Redis Software version 8.0.16, the Cluster Manager UI supports both global and local configuration changes for Active-Active databases. ## Memory limits -Database memory limits define the maximum size of your database across all database replicas and [shards]({{< relref "/operate/rs/8.0/references/terminology.md#redis-instance-shard" >}}) on the cluster. Your memory limit also determines the number of shards. +Database memory limits define the maximum size of your database across all database replicas and [shards](/content/operate/rs/8.0/references/terminology.md#redis-instance-shard) on the cluster. Your memory limit also determines the number of shards. Besides your dataset, the memory limit must also account for replication, Active-Active metadata, and module overhead. These features can increase your database size, sometimes increasing it by two times or more. @@ -38,16 +37,16 @@ Factors to consider when sizing your database: - **dataset size**: you want your limit to be above your dataset size to leave room for overhead. - **database throughput**: high throughput needs more shards, leading to a higher memory limit. -- [**modules**]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}): using modules with your database can consume more memory. -- [**database clustering**]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering.md" >}}): enables you to spread your data into shards across multiple nodes (scale out). -- [**database replication**]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}): enabling replication doubles memory consumption -- [**Active-Active replication**]({{< relref "/operate/rs/8.0/databases/active-active/_index.md" >}}): enabling Active-Active replication requires double the memory of regular replication, which can be up to two times (2x) the original data size per instance. -- [**database replication backlog**]({{< relref "/operate/rs/8.0/databases/active-active/manage#replication-backlog/" >}}) for synchronization between shards. By default, this is set to 1% of the database size. -- [**Active-Active replication backlog**]({{< relref "/operate/rs/8.0/databases/active-active/manage.md" >}}) for synchronization between clusters. By default, this is set to 1% of the database size. +- [**modules**](/content/operate/oss_and_stack/stack-with-enterprise/_index.md): using modules with your database can consume more memory. +- [**database clustering**](/content/operate/rs/8.0/databases/durability-ha/clustering.md): enables you to spread your data into shards across multiple nodes (scale out). +- [**database replication**](/content/operate/rs/8.0/databases/durability-ha/replication.md): enabling replication doubles memory consumption +- [**Active-Active replication**](/content/operate/rs/8.0/databases/active-active/_index.md): enabling Active-Active replication requires double the memory of regular replication, which can be up to two times (2x) the original data size per instance. +- [**database replication backlog**](/content/operate/rs/8.0/databases/active-active/manage.md#replication-backlog/) for synchronization between shards. By default, this is set to 1% of the database size. +- [**Active-Active replication backlog**](/content/operate/rs/8.0/databases/active-active/manage.md) for synchronization between clusters. By default, this is set to 1% of the database size. It's also important to know Active-Active databases have a lower threshold for activating the eviction policy, because it requires propagation to all participating clusters. The eviction policy starts to evict keys when one of the Active-Active instances reaches 80% of its memory limit. -For more information on memory limits, see [Memory and performance]({{< relref "/operate/rs/8.0/databases/memory-performance/" >}}) or [Database memory limits]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit.md" >}}). +For more information on memory limits, see [Memory and performance](/content/operate/rs/8.0/databases/memory-performance/_index.md) or [Database memory limits](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md). ### Replication OOM protection @@ -57,7 +56,7 @@ When a shard in an Active-Active database reaches an out-of-memory (OOM) conditi 1. The syncer process sends commands to the affected shard to trigger garbage collection and free memory. -If the database has no [eviction policy]({{}}) and no keys with [expiration times (TTL)]({{}}), no memory can be freed, which can lead to persistent replication failure and data desynchronization. +If the database has no [eviction policy](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md) and no keys with [expiration times (TTL)](/content/develop/using-commands/keyspace.md#key-expiration), no memory can be freed, which can lead to persistent replication failure and data desynchronization. To reduce this risk, Active-Active databases running Redis version 8.4 or later support a configurable memory buffer through the `replication_oom_threshold_percent` setting. This setting reserves a percentage of memory below `maxmemory` for internal replication operations. @@ -69,7 +68,7 @@ The `replication_oom_threshold_percent` setting works as follows: - If memory reaches `maxmemory` despite the client block, the standard out-of-memory behavior applies to all operations, including replication. -`replication_oom_threshold_percent` defaults to `5`, which means 5% of `maxmemory` is reserved. To adjust the reserved percentage in all participating clusters, use an [update Active-Active database configuration]({{}}) REST API request: +`replication_oom_threshold_percent` defaults to `5`, which means 5% of `maxmemory` is reserved. To adjust the reserved percentage in all participating clusters, use an [update Active-Active database configuration](/content/operate/rs/8.0/references/rest-api/requests/crdbs/_index.md#patch-crdbs) REST API request: ```sh PATCH https://:/v1/crdbs/ @@ -92,14 +91,14 @@ Networking between the clusters must be configured before creating an Active-Act ### Network ports -Every node must have access to the REST API ports of every other node as well as other ports for proxies, VPNs, and the Cluster Manager UI. See [Network port configurations]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) for more details. These ports should be allowed through firewalls that may be positioned between the clusters. +Every node must have access to the REST API ports of every other node as well as other ports for proxies, VPNs, and the Cluster Manager UI. See [Network port configurations](/content/operate/rs/8.0/networking/port-configurations.md) for more details. These ports should be allowed through firewalls that may be positioned between the clusters. ### Network Time Service {#network-time-service} Active-Active databases require a time service like NTP or Chrony to make sure the clocks on all cluster nodes are synchronized. This is critical to avoid problems with internal cluster communications that can impact your data integrity. -See [Synchronizing cluster node clocks]({{< relref "/operate/rs/8.0/clusters/configure/sync-clocks.md" >}}) for more information. +See [Synchronizing cluster node clocks](/content/operate/rs/8.0/clusters/configure/sync-clocks.md) for more information. ## Data compression @@ -119,21 +118,21 @@ The compression level is an integer between 0 and 6 where: - The default compression level is `3`. -To change the compression level, use the `--compression` option when you [create]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/create" >}}) or [update]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update" >}}) an Active-Active database with [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}). +To change the compression level, use the `--compression` option when you [create](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/create.md) or [update](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update.md) an Active-Active database with [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md). ## Redis modules {#redis-modules} -Several Redis modules are compatible with Active-Active databases. Find the list of [compatible Redis modules]({{< relref "/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities" >}}). +Several Redis modules are compatible with Active-Active databases. Find the list of [compatible Redis modules](/content/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities.md). -Active-Active databases created with or upgraded to Redis version 8 or later automatically enable [Redis Search]({{}}) and [JSON]({{}}), which allows you to index, query, and perform full-text searches of nested JSON documents. +Active-Active databases created with or upgraded to Redis version 8 or later automatically enable [Redis Search](/content/operate/oss_and_stack/stack-with-enterprise/search/search-active-active.md) and [JSON](/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md), which allows you to index, query, and perform full-text searches of nested JSON documents. ## Limitations Active-Active databases have the following limitations: -- An existing database can't be changed into an Active-Active database. To move data from an existing database to an Active-Active database, you must [create a new Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active/create.md" >}}) and [migrate the data]({{< relref "/operate/rs/8.0/databases/import-export/migrate-to-active-active.md" >}}). -- [Discovery service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service.md" >}}) is not supported with Active-Active databases. Active-Active databases require FQDNs or [mDNS]({{< relref "/operate/rs/8.0/networking/mdns.md" >}}). +- An existing database can't be changed into an Active-Active database. To move data from an existing database to an Active-Active database, you must [create a new Active-Active database](/content/operate/rs/8.0/databases/active-active/create.md) and [migrate the data](/content/operate/rs/8.0/databases/import-export/migrate-to-active-active.md). +- [Discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md) is not supported with Active-Active databases. Active-Active databases require FQDNs or [mDNS](/content/operate/rs/8.0/networking/mdns.md). - The `FLUSH` command is not supported from the CLI. To flush your database, use the API or Cluster Manager UI. - The `UNLINK` command is a blocking command for all types of keys. - Cross slot multi commands (such as `MSET`) are not supported with Active-Active databases. diff --git a/content/operate/rs/8.0/databases/active-active/syncer.md b/content/operate/rs/8.0/databases/active-active/syncer.md index e54f20a501..4fc7501b9e 100644 --- a/content/operate/rs/8.0/databases/active-active/syncer.md +++ b/content/operate/rs/8.0/databases/active-active/syncer.md @@ -21,7 +21,7 @@ The syncer process: 1. Reads data from that database instance 1. Writes the data to the local cluster's primary(master) shard -Some replication capabilities are also included in [Redis Open Source]({{< relref "/operate/oss_and_stack/management/replication" >}}). +Some replication capabilities are also included in [Redis Open Source](/content/operate/oss_and_stack/management/replication.md). The primary (also known as master) shard at the top of the primary-replica tree creates a replication ID. This replication ID is identical for all replicas in that tree. @@ -31,18 +31,17 @@ When a new primary is appointed, the replication ID changes, but a partial sync In a partial sync, the backlog of operations since the offset are transferred as raw operations. In a full sync, the data from the primary is transferred to the replica as an RDB file which is followed by a partial sync. -Partial synchronization requires a backlog large enough to store the data operations until connection is restored. See [replication backlog]({{< relref "/operate/rs/8.0/databases/active-active/manage#replication-backlog" >}}) for more info on changing the replication backlog size. +Partial synchronization requires a backlog large enough to store the data operations until connection is restored. See [replication backlog](/content/operate/rs/8.0/databases/active-active/manage.md#replication-backlog) for more info on changing the replication backlog size. ### Syncer in Active-Active replication In the case of an Active-Active database: - Multiple past replication IDs and offsets are stored to allow for multiple syncs -- The [Active-Active replication backlog]({{< relref "/operate/rs/8.0/databases/active-active/manage#replication-backlog" >}}) is also sent to the replica during a full sync. +- The [Active-Active replication backlog](/content/operate/rs/8.0/databases/active-active/manage.md#replication-backlog) is also sent to the replica during a full sync. -{{< warning >}} -Full sync triggers heavy data transfers between geo-replicated instances of an Active-Active database. -{{< /warning >}} +> [!WARNING] +> Full sync triggers heavy data transfers between geo-replicated instances of an Active-Active database. An Active-Active database uses partial synchronization in the following situations: @@ -52,9 +51,8 @@ An Active-Active database uses partial synchronization in the following situatio - Migrate primary shard to another node as a replica using failover and replica migration - Migrate primary shard and preserve roles using failover, replica migration, and second failover to return shard to primary -{{< note >}} -Synchronization of data from the primary shard to the replica shard is always a full synchronization. -{{< /note >}} +> [!NOTE] +> Synchronization of data from the primary shard to the replica shard is always a full synchronization. ## Troubleshooting syncer errors @@ -64,7 +62,7 @@ Some syncer errors are unrecoverable and cause the syncer to exit with exit code #### Restart syncer for regular databases -To restart a regular database's syncer after an unrecoverable error, [update the database configuration]({{}}) with the REST API to enable `sync`: +To restart a regular database's syncer after an unrecoverable error, [update the database configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) with the REST API to enable `sync`: ```sh @@ -78,7 +76,7 @@ curl -v -k -u : -X PUT \ To restart an Active-Active database's syncer after an unrecoverable error, use one of the following methods. -- For each participating cluster, [update the database configuration]({{}}) with the REST API to enable `sync`: +- For each participating cluster, [update the database configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) with the REST API to enable `sync`: ```sh curl -v -k -u : -X PUT \ @@ -87,12 +85,11 @@ To restart an Active-Active database's syncer after an unrecoverable error, use https://:/v1/bdbs/ ``` -- Run [`crdb-cli crdb update`]({{}}): +- Run [`crdb-cli crdb update`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update.md): ```sh crdb-cli crdb update --crdb-guid --force ``` -{{< note >}} -Replace ``, ``, ``, ``, ``, and `` with your actual values. -{{< /note >}} \ No newline at end of file +> [!NOTE] +> Replace ``, ``, ``, ``, ``, and `` with your actual values. diff --git a/content/operate/rs/8.0/databases/active-active/synchronization-mode.md b/content/operate/rs/8.0/databases/active-active/synchronization-mode.md index 7f7990161b..f69e93ba70 100644 --- a/content/operate/rs/8.0/databases/active-active/synchronization-mode.md +++ b/content/operate/rs/8.0/databases/active-active/synchronization-mode.md @@ -11,7 +11,7 @@ linktitle: Distributed synchronization weight: 80 url: '/operate/rs/8.0/databases/active-active/synchronization-mode/' --- -Replicated databases, such as [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}) and [Active-Active]({{< relref "/operate/rs/8.0/databases/active-active" >}}) databases, +Replicated databases, such as [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) and [Active-Active](/content/operate/rs/8.0/databases/active-active/_index.md) databases, use proxy endpoints to synchronize database changes with the databases on other participating clusters. To improve the throughput and lower the latency for synchronization traffic, @@ -21,16 +21,15 @@ Every database by default has one proxy endpoint that manages client and synchro and that proxy endpoint is used for database synchronization. This is called centralized synchronization. -To prepare a database to use distributed synchronization you must first make sure that the database [proxy policy]({{< relref "/operate/rs/8.0/databases/configure/proxy-policy.md" >}}) +To prepare a database to use distributed synchronization you must first make sure that the database [proxy policy](/content/operate/rs/8.0/databases/configure/proxy-policy.md) is defined so that either each node has a proxy endpoint or each primary (master) shard has a proxy endpoint. After you have multiple proxies for the database, you can configure the database synchronization to use distributed synchronization. ## Configure distributed synchronization -{{< note >}} -You may use the database name in place of `db:` in the following `rladmin` commands. -{{< /note >}} +> [!NOTE] +> You may use the database name in place of `db:` in the following `rladmin` commands. To configure distributed synchronization: diff --git a/content/operate/rs/8.0/databases/configure/_index.md b/content/operate/rs/8.0/databases/configure/_index.md index de1b20e40a..95b3c69099 100644 --- a/content/operate/rs/8.0/databases/configure/_index.md +++ b/content/operate/rs/8.0/databases/configure/_index.md @@ -19,13 +19,13 @@ You can manage your Redis Software databases with several tools: - Command-line tools: - - [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) for standalone database configuration + - [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) for standalone database configuration - - [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}) for Active-Active database configuration + - [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) for Active-Active database configuration - - [`redis-cli`]({{< relref "/develop/tools/cli" >}}) for Redis Open Source configuration + - [`redis-cli`](/content/develop/tools/cli.md) for Redis Open Source configuration -- [REST API]({{< relref "/operate/rs/8.0/references/rest-api/_index.md" >}}) +- [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) ## Edit database settings @@ -39,9 +39,9 @@ To edit the configuration of a database using the Cluster Manager UI: 1. Change any [configurable database settings](#config-settings). - {{< note >}} -For [Active-Active database instances]({{< relref "/operate/rs/8.0/databases/active-active" >}}), most database settings only apply to the instance that you are editing. - {{< /note >}} + > [!NOTE] + > For [Active-Active database instances](/content/operate/rs/8.0/databases/active-active/_index.md), most database settings only apply to the instance that you are editing. + > 1. Select **Save**. @@ -49,7 +49,7 @@ For [Active-Active database instances]({{< relref "/operate/rs/8.0/databases/act ### General -- [**Tags**]({{}}) - Add custom tags to categorize the database. +- [**Tags**](/content/operate/rs/8.0/databases/configure/db-tags.md) - Add custom tags to categorize the database. - **Database version** - Select the Redis version when you create a database. @@ -65,36 +65,35 @@ For [Active-Active database instances]({{< relref "/operate/rs/8.0/databases/act - **Endpoint port number** - You can define the port number that clients use to connect to the database. Otherwise, a port is randomly selected. - {{< note >}} -You cannot change the [port number]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) -after the database is created. - {{< /note >}} + > [!NOTE] + > You cannot change the [port number](/content/operate/rs/8.0/networking/port-configurations.md) + > after the database is created. + > ### Capacity -- **Memory limit** - [Database memory limits]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit.md" >}}) include all database replicas and shards, including replica shards in database replication and database shards in database clustering. +- **Memory limit** - [Database memory limits](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md) include all database replicas and shards, including replica shards in database replication and database shards in database clustering. If the total size of the database in the cluster reaches the memory limit, the memory eviction policy for the database is enforced. - **RAM limit** - If you create a database with Auto Tiering enabled, you also need to set the RAM-to-Flash ratio. Minimum RAM is 10%. Maximum RAM is 50%. -- [**Memory eviction**]({{}}) - By default, when the total size of the database reaches its memory limit, the database evicts keys according to the least recently used keys out of all keys with an "expire" field set to make room for new keys. You can select a different eviction policy. +- [**Memory eviction**](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md) - By default, when the total size of the database reaches its memory limit, the database evicts keys according to the least recently used keys out of all keys with an "expire" field set to make room for new keys. You can select a different eviction policy. ### Capabilities -When you create a new in-memory database, you can enable multiple Redis Stack [**Capabilities**]({{}}). +When you create a new in-memory database, you can enable multiple Redis Stack [**Capabilities**](/content/operate/oss_and_stack/stack-with-enterprise/_index.md). Databases created with or upgraded to Redis version 8 or later automatically enable the capabilities (modules) bundled with Redis Software as follows: {{}} For Auto Tiering databases, you can enable capabilities that support Auto Tiering. See [Redis Software and Redis Stack feature compatibility -]({{< relref "/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities" >}}) for compatibility details. +](/content/operate/oss_and_stack/stack-with-enterprise/enterprise-capabilities.md) for compatibility details. -{{}} -To use Redis Stack capabilities, enable them when you create a new database. -You cannot enable them after database creation. -{{}} +> [!NOTE] +> To use Redis Stack capabilities, enable them when you create a new database. +> You cannot enable them after database creation. To add capabilities to the database: @@ -112,93 +111,93 @@ To change capabilities' parameters for an existing database using the Cluster Ma ### High Availability -- [**Replication**]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}) - We recommend you use intra-cluster replication to create replica shards for each database for high availability. +- [**Replication**](/content/operate/rs/8.0/databases/durability-ha/replication.md) - We recommend you use intra-cluster replication to create replica shards for each database for high availability. - If the cluster is configured to support [rack-zone awareness]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}), you can also enable rack-zone awareness for the database. + If the cluster is configured to support [rack-zone awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md), you can also enable rack-zone awareness for the database. -- [**Replica high availability**]({{< relref "/operate/rs/8.0/databases/configure/replica-ha" >}}) - Automatically migrates replica shards to an available node if a replica node fails or is promoted to primary. +- [**Replica high availability**](/content/operate/rs/8.0/databases/configure/replica-ha.md) - Automatically migrates replica shards to an available node if a replica node fails or is promoted to primary. ### Clustering - **Enable sharding** - You can either: - - Turn on sharding to enable [database clustering]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering.md" >}}) and select the number of database shards. + - Turn on sharding to enable [database clustering](/content/operate/rs/8.0/databases/durability-ha/clustering.md) and select the number of database shards. - When database clustering is enabled, databases are subject to limitations on [Multi-key commands]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering.md" >}}). + When database clustering is enabled, databases are subject to limitations on [Multi-key commands](/content/operate/rs/8.0/databases/durability-ha/clustering.md). You can increase the number of shards in the database at any time. - - Turn off sharding to use only one shard so that you can use [Multi-key commands]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering.md" >}}) without the limitations. + - Turn off sharding to use only one shard so that you can use [Multi-key commands](/content/operate/rs/8.0/databases/durability-ha/clustering.md) without the limitations. -- [**Shards placement**]({{< relref "/operate/rs/8.0/databases/memory-performance/shard-placement-policy" >}}) - Determines how to distribute database shards across nodes in the cluster. +- [**Shards placement**](/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md) - Determines how to distribute database shards across nodes in the cluster. - _Dense_ places shards on the smallest number of nodes. - _Sparse_ spreads shards across many nodes. -- [**OSS Cluster API**]({{< relref "/operate/rs/8.0/databases/configure/oss-cluster-api.md" >}}) - The OSS Cluster API configuration allows access to multiple endpoints for increased throughput. +- [**OSS Cluster API**](/content/operate/rs/8.0/databases/configure/oss-cluster-api.md) - The OSS Cluster API configuration allows access to multiple endpoints for increased throughput. This configuration requires clients to connect to the primary node to retrieve the cluster topology before they can connect directly to proxies on each node. When you enable the OSS Cluster API, shard placement changes to _Sparse_, and the database proxy policy changes to _All primary shards_ automatically. - {{}} -You must use a client that supports the cluster API to connect to a database that has the cluster API enabled. - {{}} + > [!NOTE] + > You must use a client that supports the cluster API to connect to a database that has the cluster API enabled. + > -- **Hashing policy** - You can accept the [standard hashing policy]({{}}), which is compatible with Redis Open Source, or define a [custom hashing policy]({{}}) to define where keys are located in the clustered database. +- **Hashing policy** - You can accept the [standard hashing policy](/content/operate/rs/8.0/databases/durability-ha/clustering.md#standard-hashing-policy), which is compatible with Redis Open Source, or define a [custom hashing policy](/content/operate/rs/8.0/databases/durability-ha/clustering.md#custom-hashing-policy) to define where keys are located in the clustered database. -- [**Database proxy**]({{< relref "/operate/rs/8.0/databases/configure/proxy-policy" >}}) - Determines the number and location of active proxies, which manage incoming database operation requests. +- [**Database proxy**](/content/operate/rs/8.0/databases/configure/proxy-policy.md) - Determines the number and location of active proxies, which manage incoming database operation requests. ### Durability -- [**Persistence**]({{}}) - To protect against loss of data stored in RAM, you can enable data persistence and store a copy of the data on disk with snapshots or an append-only file. +- [**Persistence**](/content/operate/rs/8.0/databases/configure/database-persistence.md) - To protect against loss of data stored in RAM, you can enable data persistence and store a copy of the data on disk with snapshots or an append-only file. -- **Scheduled backup** - You can configure [periodic backups]({{}}) of the database, including the interval and backup location parameters. +- **Scheduled backup** - You can configure [periodic backups](/content/operate/rs/8.0/databases/import-export/schedule-backups.md) of the database, including the interval and backup location parameters. ### TLS -You can require [**TLS**]({{< relref "/operate/rs/8.0/security/encryption/tls/" >}}) encryption and authentication for all communications, TLS encryption and authentication for Replica Of communication only, and TLS authentication for clients. +You can require [**TLS**](/content/operate/rs/8.0/security/encryption/tls/_index.md) encryption and authentication for all communications, TLS encryption and authentication for Replica Of communication only, and TLS authentication for clients. ### Access control - **Unauthenticated access** - You can access the database as the default user without providing credentials. -- **Password-only authentication** - When you configure a password for your database's default user, all connections to the database must authenticate with the [AUTH command]({{< relref "/commands/auth" >}}). +- **Password-only authentication** - When you configure a password for your database's default user, all connections to the database must authenticate with the [AUTH command](/content/commands/auth.md). If you also configure an access control list, connections can specify other users for authentication, and requests are allowed according to the Redis ACLs specified for that user. Creating a database without ACLs enables a *default* user with full access to the database. You can secure default user access by requiring a password. -- **Access Control List** - You can specify the [user roles]({{< relref "/operate/rs/8.0/security/access-control/create-db-roles" >}}) that have access to the database and the [Redis ACLs]({{< relref "/operate/rs/8.0/security/access-control/redis-acl-overview" >}}) that apply to those connections. +- **Access Control List** - You can specify the [user roles](/content/operate/rs/8.0/security/access-control/create-db-roles.md) that have access to the database and the [Redis ACLs](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md) that apply to those connections. To define an access control list for a database: 1. In **Security > Access Control > Access Control List**, select **+ Add ACL**. - 1. Select a [role]({{< relref "/operate/rs/8.0/security/access-control/create-db-roles" >}}) to grant database access. + 1. Select a [role](/content/operate/rs/8.0/security/access-control/create-db-roles.md) to grant database access. - 1. Associate a [Redis ACL]({{< relref "/operate/rs/8.0/security/access-control/create-db-roles" >}}) with the role and database. + 1. Associate a [Redis ACL](/content/operate/rs/8.0/security/access-control/create-db-roles.md) with the role and database. 1. Select the check mark to add the ACL. ### Alerts -Select [alerts]({{}}) to show in the database status and configure their thresholds. +Select [alerts](/content/operate/rs/8.0/monitoring/v1_monitoring.md#database-alerts) to show in the database status and configure their thresholds. -You can also choose to [send alerts by email]({{}}) to relevant users. +You can also choose to [send alerts by email](/content/operate/rs/8.0/monitoring/v1_monitoring.md#send-alerts-by-email) to relevant users. ### Replica Of -With [**Replica Of**]({{}}), you can make the database a repository for keys from other databases. +With [**Replica Of**](/content/operate/rs/8.0/databases/import-export/replica-of/create.md), you can make the database a repository for keys from other databases. ### RESP3 support -[RESP]({{}}) (Redis Serialization Protocol) is the protocol clients use to communicate with Redis databases. If you enable RESP3 support, the database will support the RESP3 protocol in addition to RESP2. +[RESP](/content/develop/reference/protocol-spec.md) (Redis Serialization Protocol) is the protocol clients use to communicate with Redis databases. If you enable RESP3 support, the database will support the RESP3 protocol in addition to RESP2. -For more information about Redis Software's compatibility with RESP3, see [RESP compatibility with Redis Software]({{}}). +For more information about Redis Software's compatibility with RESP3, see [RESP compatibility with Redis Software](/content/operate/rs/8.0/references/compatibility/resp.md). ### Internode encryption -Enable **Internode encryption** to encrypt data in transit between nodes for this database. See [Internode encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption" >}}) for more information. +Enable **Internode encryption** to encrypt data in transit between nodes for this database. See [Internode encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md) for more information. diff --git a/content/operate/rs/8.0/databases/configure/database-persistence.md b/content/operate/rs/8.0/databases/configure/database-persistence.md index 2d46f8c37c..727f82118b 100644 --- a/content/operate/rs/8.0/databases/configure/database-persistence.md +++ b/content/operate/rs/8.0/databases/configure/database-persistence.md @@ -12,13 +12,13 @@ weight: 30 url: '/operate/rs/8.0/databases/configure/database-persistence/' --- -Data is stored in RAM or a combination of RAM and flash memory ([Redis Flex and Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}})), which risks data loss during process or server failures. Redis Software supports multiple methods to persist data to disk on a per-database basis to ensure data durability. +Data is stored in RAM or a combination of RAM and flash memory ([Redis Flex and Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md)), which risks data loss during process or server failures. Redis Software supports multiple methods to persist data to disk on a per-database basis to ensure data durability. You can configure [persistence](https://redis.com/redis-enterprise/technology/durable-redis/) during database creation or by editing an existing database. Although the persistence model can be changed dynamically, the switch can take time depending on the database size and the models being switched. ## Configure database persistence -You can configure persistence when you [create a database]({{< relref "/operate/rs/8.0/databases/create" >}}), or you can edit an existing database's configuration: +You can configure persistence when you [create a database](/content/operate/rs/8.0/databases/create.md), or you can edit an existing database's configuration: 1. From the **Databases** list, select the database, then select **Configuration**. @@ -61,9 +61,8 @@ Append-only file (AOF) - fsync every write - Redis Software sets the Redis direc Append-only file (AOF) - fsync every 1 sec - Redis will fsync any newly written data every second. This policy balances performance and durability and should be used when minimal data loss is acceptable in the event of a failure. This is the default Redis policy. This policy could result in between 1 and 2 seconds worth of data loss but on average this will be closer to one second. -{{< note >}} -If you use AOF for persistence, enable replication to improve performance. When both features are enabled for a database, the replica handles persistence, which prevents any performance impact on the master. -{{< /note >}} +> [!NOTE] +> If you use AOF for persistence, enable replication to improve performance. When both features are enabled for a database, the replica handles persistence, which prevents any performance impact on the master. **For use cases where data loss is tolerable or recoverable for extended periods of time:** diff --git a/content/operate/rs/8.0/databases/configure/db-defaults.md b/content/operate/rs/8.0/databases/configure/db-defaults.md index 579ca4962a..c5bebeb4ba 100644 --- a/content/operate/rs/8.0/databases/configure/db-defaults.md +++ b/content/operate/rs/8.0/databases/configure/db-defaults.md @@ -44,9 +44,9 @@ You can choose a predefined endpoint configuration to use the recommended databa ### Database proxy -Redis Software uses [proxies]({{< relref "/operate/rs/8.0/references/terminology#proxy" >}}) to manage and optimize access to database shards. Each node in the cluster runs a single proxy process, which can be active (receives incoming traffic) or passive (waits for failovers). +Redis Software uses [proxies](/content/operate/rs/8.0/references/terminology.md#proxy) to manage and optimize access to database shards. Each node in the cluster runs a single proxy process, which can be active (receives incoming traffic) or passive (waits for failovers). -You can configure default [proxy policies]({{< relref "/operate/rs/8.0/databases/configure/proxy-policy" >}}) to determine which nodes' proxies are active and bound to new databases by default. +You can configure default [proxy policies](/content/operate/rs/8.0/databases/configure/proxy-policy.md) to determine which nodes' proxies are active and bound to new databases by default. To configure the default database proxy policy using the Cluster Manager UI: @@ -60,13 +60,13 @@ To configure the default database proxy policy using the Cluster Manager UI: To configure the default proxy policy for non-sharded databases, use one of the following methods: -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster default_non_sharded_proxy_policy { single | all-master-shards | all-nodes } ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy @@ -77,13 +77,13 @@ To configure the default proxy policy for non-sharded databases, use one of the To configure the default proxy policy for sharded databases, use one of the following methods: -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster default_sharded_proxy_policy { single | all-master-shards | all-nodes } ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy @@ -92,7 +92,7 @@ To configure the default proxy policy for sharded databases, use one of the foll ### Shards placement -The default [shard placement policy]({{< relref "/operate/rs/8.0/databases/memory-performance/shard-placement-policy" >}}) determines the distribution of database shards across nodes in the cluster. +The default [shard placement policy](/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md) determines the distribution of database shards across nodes in the cluster. Shard placement policies include: @@ -110,13 +110,13 @@ To configure default shard placement, use one of the following methods: {{The Database defaults panel lets you select Database proxy and Shards placement if Endpoint Configuration is set to Custom.}} -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster default_shards_placement { dense | sparse } ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy @@ -125,20 +125,20 @@ To configure default shard placement, use one of the following methods: ### Database version -New databases use the default Redis database version unless you select a different **Database version** when you [create a database]({{}}) in the Cluster Manager UI or specify the `redis_version` in a [create database REST API request]({{< relref "/operate/rs/8.0/references/rest-api/requests/bdbs" >}}). +New databases use the default Redis database version unless you select a different **Database version** when you [create a database](/content/operate/rs/8.0/databases/create.md) in the Cluster Manager UI or specify the `redis_version` in a [create database REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md). To configure the Redis database version, use one of the following methods: - Cluster Manager UI: Edit **Database version** in [**Database defaults**](#edit-database-defaults) -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster default_redis_version ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy @@ -147,19 +147,19 @@ To configure the Redis database version, use one of the following methods: ### Internode encryption -Enable [internode encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption" >}}) to encrypt data in transit between nodes for new databases by default. +Enable [internode encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md) to encrypt data in transit between nodes for new databases by default. To enable or turn off internode encryption by default, use one of the following methods: - Cluster Manager UI: Edit **Internode Encryption** in [**Database defaults**](#edit-database-defaults) -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster data_internode_encryption { enabled | disabled } ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy diff --git a/content/operate/rs/8.0/databases/configure/db-tags.md b/content/operate/rs/8.0/databases/configure/db-tags.md index 6a5aea4945..ee69f20ca0 100644 --- a/content/operate/rs/8.0/databases/configure/db-tags.md +++ b/content/operate/rs/8.0/databases/configure/db-tags.md @@ -20,7 +20,7 @@ The **Databases** screen shows tags for each database in the list. ## Add database tags -You can add tags when you [create a database]({{}}) or [edit an existing database's configuration]({{}}). +You can add tags when you [create a database](/content/operate/rs/8.0/databases/create.md) or [edit an existing database's configuration](/content/operate/rs/8.0/databases/configure/_index.md#edit-database-settings). To add tags to a database using the Cluster Manager UI: diff --git a/content/operate/rs/8.0/databases/configure/db-upgrade.md b/content/operate/rs/8.0/databases/configure/db-upgrade.md index 0847cbe5b0..c43f27bafe 100644 --- a/content/operate/rs/8.0/databases/configure/db-upgrade.md +++ b/content/operate/rs/8.0/databases/configure/db-upgrade.md @@ -34,13 +34,13 @@ To change the number of shards upgraded in parallel during database upgrades, us - Cluster Manager UI – Edit **Database shard parallel upgrade** in [**Upgrade configuration**](#edit-upgrade-configuration) -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster parallel_shards_upgrade { all | } ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy @@ -55,13 +55,13 @@ To change `resp3_default` to `disabled`, use one of the following methods: - Cluster Manager UI – Edit **RESP3 support** in [**Upgrade configuration**](#edit-upgrade-configuration) -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster resp3_default { enabled | disabled } ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy diff --git a/content/operate/rs/8.0/databases/configure/oss-cluster-api.md b/content/operate/rs/8.0/databases/configure/oss-cluster-api.md index d168986b43..e3ce42ea74 100644 --- a/content/operate/rs/8.0/databases/configure/oss-cluster-api.md +++ b/content/operate/rs/8.0/databases/configure/oss-cluster-api.md @@ -11,7 +11,7 @@ weight: 20 url: '/operate/rs/8.0/databases/configure/oss-cluster-api/' --- -Review [OSS Cluster API]({{< relref "/operate/rs/8.0/clusters/optimize/oss-cluster-api" >}}) to determine if you should enable this feature for your database. +Review [OSS Cluster API](/content/operate/rs/8.0/clusters/optimize/oss-cluster-api.md) to determine if you should enable this feature for your database. ## Prerequisites @@ -19,19 +19,18 @@ The OSS Cluster API is supported only when a database meets specific criteria. The database must: -- Use the standard [hashing policy]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering#supported-hashing-policies" >}}). -- Have the [proxy policy]({{< relref "/operate/rs/8.0/databases/configure/proxy-policy" >}}) set to either _All primary shards_ or _All nodes_. +- Use the standard [hashing policy](/content/operate/rs/8.0/databases/durability-ha/clustering.md#supported-hashing-policies). +- Have the [proxy policy](/content/operate/rs/8.0/databases/configure/proxy-policy.md) set to either _All primary shards_ or _All nodes_. In addition, the database must _not_: - Use node `include` or `exclude` in the proxy policy. -- Use [RedisTimeSeries]({{< relref "/operate/oss_and_stack/stack-with-enterprise/timeseries" >}}) or [RedisGears]({{< relref "/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1" >}}) modules. +- Use [RedisTimeSeries](/content/operate/oss_and_stack/stack-with-enterprise/timeseries/_index.md) or [RedisGears](/content/operate/oss_and_stack/stack-with-enterprise/deprecated-features/gears-v1/_index.md) modules. The OSS Cluster API setting applies to individual databases instead of the entire cluster. -{{< note >}} -For Kubernetes deployments, see [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}). -{{< /note >}} +> [!NOTE] +> For Kubernetes deployments, see [Enable cluster-aware clients (OSS Cluster API)](/content/operate/kubernetes/networking/cluster-aware-clients.md). ## Enable OSS Cluster API support @@ -44,7 +43,7 @@ tab1="Cluster Manager UI" tab2="rladmin" tab3="REST API" >}} -When you use the Cluster Manager UI to enable the OSS Cluster API, it automatically configures the [prerequisites]({{< relref "/operate/rs/8.0/databases/configure/oss-cluster-api#prerequisites" >}}). +When you use the Cluster Manager UI to enable the OSS Cluster API, it automatically configures the [prerequisites](/content/operate/rs/8.0/databases/configure/oss-cluster-api.md#prerequisites). To enable the OSS Cluster API for an existing database in the Cluster Manager UI: @@ -64,11 +63,11 @@ You can also use the Cluster Manager UI to enable the setting when creating a ne -tab-sep- -You can use the [`rladmin` utility]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/" >}}) to enable the OSS Cluster API for Redis Software databases, including Replica Of databases. +You can use the [`rladmin` utility](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) to enable the OSS Cluster API for Redis Software databases, including Replica Of databases. For Active-Active (CRDB) databases, [use the crdb-cli utility](#active-active-databases). -Ensure the [prerequisites]({{< relref "/operate/rs/8.0/databases/configure/oss-cluster-api#prerequisites" >}}) have been configured. Then, enable the OSS Cluster API for a Redis database from the command line: +Ensure the [prerequisites](/content/operate/rs/8.0/databases/configure/oss-cluster-api.md#prerequisites) have been configured. Then, enable the OSS Cluster API for a Redis database from the command line: ```sh $ rladmin tune db oss_cluster enabled @@ -85,7 +84,7 @@ The OSS Cluster API setting applies to the specified database only; it does not -tab-sep- -You can enable the OSS Cluster API when you [create a database]({{}}) using the REST API: +You can enable the OSS Cluster API when you [create a database](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#post-bdbs-v1) using the REST API: ```sh POST /v1/bdbs @@ -95,7 +94,7 @@ POST /v1/bdbs } ``` -To enable the OSS Cluster API for an existing database, you can use an [update database configuration]({{}}) REST API request: +To enable the OSS Cluster API for an existing database, you can use an [update database configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) REST API request: ```sh PUT /v1/bdbs/ @@ -106,13 +105,13 @@ PUT /v1/bdbs/ ### Active-Active databases -The OSS Cluster API setting applies to all instances of the Active-Active database across participating clusters. To enable the OSS Cluster API for Active-Active databases, use the [Cluster Manager UI](#cluster-manager-ui) or the [`crdb-cli`]({{}}) utility. +The OSS Cluster API setting applies to all instances of the Active-Active database across participating clusters. To enable the OSS Cluster API for Active-Active databases, use the [Cluster Manager UI](#cluster-manager-ui) or the [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) utility. {{< multitabs id="enable-oss-cluster-api-active-active" tab1="Cluster Manager UI" tab2="crdb-cli" >}} -When you use the Cluster Manager UI to enable the OSS Cluster API, it automatically configures the [prerequisites]({{< relref "/operate/rs/8.0/databases/configure/oss-cluster-api#prerequisites" >}}). +When you use the Cluster Manager UI to enable the OSS Cluster API, it automatically configures the [prerequisites](/content/operate/rs/8.0/databases/configure/oss-cluster-api.md#prerequisites). To enable the OSS Cluster API for an existing Active-Active database in the Cluster Manager UI: @@ -144,7 +143,7 @@ $ crdb-cli crdb create --name \ --instance fqdn=,username=,password= ``` -See the [`crdb-cli crdb create`]({{}}) reference for more options. +See the [`crdb-cli crdb create`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/create.md) reference for more options. To enable the OSS Cluster API for an existing Active-Active database with `crdb-cli`: @@ -167,9 +166,9 @@ To enable the OSS Cluster API for an existing Active-Active database with `crdb- ## Change preferred IP type -By default, using [`CLUSTER SLOTS`]({{}}) and [`CLUSTER SHARDS`]({{}}) in a Redis Software cluster exposes the internal IP addresses for databases with the OSS Cluster API enabled. +By default, using [`CLUSTER SLOTS`](/content/commands/cluster-slots.md) and [`CLUSTER SHARDS`](/content/commands/cluster-shards.md) in a Redis Software cluster exposes the internal IP addresses for databases with the OSS Cluster API enabled. -To use external IP addresses instead of internal IP addresses, run the following [`rladmin tune db`]({{}}) command for each affected database: +To use external IP addresses instead of internal IP addresses, run the following [`rladmin tune db`](/content/operate/rs/references/cli-utilities/rladmin/tune.md#tune-db) command for each affected database: ```sh $ rladmin tune db db: oss_cluster_api_preferred_ip_type external @@ -218,6 +217,6 @@ When you turn off OSS Cluster API support for an existing database, the change a ## Multi-key command support When you enable the OSS Cluster API for a database, -[multi-key commands]({{< relref "/operate/rc/databases/configuration/clustering#multikey-operations" >}}) are only allowed when all keys are mapped to the same slot. +[multi-key commands](/content/operate/rc/databases/configuration/clustering.md#multikey-operations) are only allowed when all keys are mapped to the same slot. -To verify that your database meets this requirement, make sure that the `CLUSTER KEYSLOT` reply is the same for all keys affected by the multi-key command. To learn more, see [multi-key operations]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering#multikey-operations" >}}). +To verify that your database meets this requirement, make sure that the `CLUSTER KEYSLOT` reply is the same for all keys affected by the multi-key command. To learn more, see [multi-key operations](/content/operate/rs/8.0/databases/durability-ha/clustering.md#multikey-operations). diff --git a/content/operate/rs/8.0/databases/configure/proxy-policy.md b/content/operate/rs/8.0/databases/configure/proxy-policy.md index 798b2ab488..197c69d53e 100644 --- a/content/operate/rs/8.0/databases/configure/proxy-policy.md +++ b/content/operate/rs/8.0/databases/configure/proxy-policy.md @@ -23,14 +23,14 @@ A database can have one of the following proxy policies: | Proxy policy | Description | Recommended use cases | Advantages | Disadvantages | |--------------|-------------|-----------------------|-----------|-----------------| | Single | Only a single proxy is bound to the database. This is the default database configuration. | Most use cases without high traffic or load | Lower resource usage, fewer application-to-cluster connections | Higher latency, more network hops | -| All primary shards | Multiple proxies are bound to the database, one on each node that hosts a database primary shard. | Most use cases that require multiple endpoints, such as when using the [OSS Cluster API]({{}}) | Lower latency, fewer network hops, higher throughput | Higher resource usage, more application-to-proxy connections | -| All nodes | Multiple proxies are bound to the database, one on each node in the cluster, regardless of whether or not there is a shard from this database on the node. | When using [load balancers]({{}}) for environments without DNS | Higher throughput | Highest resource usage | +| All primary shards | Multiple proxies are bound to the database, one on each node that hosts a database primary shard. | Most use cases that require multiple endpoints, such as when using the [OSS Cluster API](/content/operate/rs/8.0/clusters/optimize/oss-cluster-api.md) | Lower latency, fewer network hops, higher throughput | Higher resource usage, more application-to-proxy connections | +| All nodes | Multiple proxies are bound to the database, one on each node in the cluster, regardless of whether or not there is a shard from this database on the node. | When using [load balancers](/content/operate/rs/8.0/networking/cluster-lba-setup.md) for environments without DNS | Higher throughput | Highest resource usage | ## View proxy policy -You can use the Cluster Manager UI, [`rladmin`]({{}}), or the [REST API]({{}}) to view proxy configuration settings. +You can use the Cluster Manager UI, [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md), or the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) to view proxy configuration settings. -The [`rladmin info cluster`]({{}}) command returns the current proxy policy for sharded and non-sharded (single shard) databases. +The [`rladmin info cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/info.md#info-cluster) command returns the current proxy policy for sharded and non-sharded (single shard) databases. ```sh $ rladmin info cluster @@ -45,13 +45,12 @@ cluster configuration: You can use the [Cluster Manager UI](#cluster-manager-ui-method), the [REST API](#rest-api-method), or [`rladmin`](#command-line-method) to configure a database's proxy policy. -{{}} -Any configuration update that unbinds existing proxies can disconnect existing client connections. -{{}} +> [!WARNING] +> Any configuration update that unbinds existing proxies can disconnect existing client connections. ### Cluster Manager UI method -You can change a database's proxy policy when you [create]({{}}) or [edit]({{}}) a database using the Cluster Manager UI: +You can change a database's proxy policy when you [create](/content/operate/rs/8.0/databases/create.md) or [edit](/content/operate/rs/8.0/databases/configure/_index.md#edit-database-settings) a database using the Cluster Manager UI: 1. While in edit mode on the database's configuration screen, expand the **Clustering** section. @@ -61,7 +60,7 @@ You can change a database's proxy policy when you [create]({{}}) using the REST API: +You can specify a proxy policy when you [create a database](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#post-bdbs-v1) using the REST API: ```sh POST /v1/bdbs @@ -71,7 +70,7 @@ POST /v1/bdbs } ``` -To change the proxy policy of an existing database and endpoint, you can use an [update database configuration]({{}}) REST API request: +To change the proxy policy of an existing database and endpoint, you can use an [update database configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) REST API request: ```sh PUT /v1/bdbs/ @@ -83,7 +82,7 @@ PUT /v1/bdbs/ ### Command-line method -You can configure a database's proxy policy using [`rladmin bind`]({{}}). +You can configure a database's proxy policy using [`rladmin bind`](/content/operate/rs/8.0/references/cli-utilities/rladmin/bind.md). The following example changes the bind policy for a database named "db1" with an endpoint ID "1:1" to "All primary shards" proxy policy: @@ -97,10 +96,9 @@ The next command performs the same task using the database ID instead of the nam rladmin bind db db:1 endpoint 1:1 policy all-master-shards ``` -{{< note >}} -You can find the endpoint ID for the endpoint argument by running `rladmin status`. Look for the endpoint ID information under -the `ENDPOINT` section of the output. -{{< /note >}} +> [!NOTE] +> You can find the endpoint ID for the endpoint argument by running `rladmin status`. Look for the endpoint ID information under +> the `ENDPOINT` section of the output. ### Reapply policies after topology changes @@ -142,8 +140,7 @@ operations, configuring multiple active proxies may cause additional latency in operations as the shards and proxies are spread across multiple nodes in the cluster. -{{< note >}} -When the network on a single active proxy becomes the bottleneck, consider enabling multiple NIC support in Redis Software. With nodes that have multiple physical NICs (Network Interface Cards), you can configure Redis Software to separate internal and external traffic onto independent physical NICs. For more details, refer to [Multi-IP & IPv6]({{< relref "/operate/rs/8.0/networking/multi-ip-ipv6.md" >}}). -{{< /note >}} +> [!NOTE] +> When the network on a single active proxy becomes the bottleneck, consider enabling multiple NIC support in Redis Software. With nodes that have multiple physical NICs (Network Interface Cards), you can configure Redis Software to separate internal and external traffic onto independent physical NICs. For more details, refer to [Multi-IP & IPv6](/content/operate/rs/8.0/networking/multi-ip-ipv6.md). Having multiple proxies for a database can improve Redis Software's ability for fast failover in case of proxy or node failure. With multiple proxies for a database, a client doesn't need to wait for the cluster to spin up another proxy and a DNS change in most cases. Instead, the client uses the next IP address in the list to connect to another proxy. diff --git a/content/operate/rs/8.0/databases/configure/replica-ha.md b/content/operate/rs/8.0/databases/configure/replica-ha.md index 723771ed4b..ed83a97eb1 100644 --- a/content/operate/rs/8.0/databases/configure/replica-ha.md +++ b/content/operate/rs/8.0/databases/configure/replica-ha.md @@ -12,7 +12,7 @@ weight: 50 url: '/operate/rs/8.0/databases/configure/replica-ha/' --- -When you enable [database replication]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}), +When you enable [database replication](/content/operate/rs/8.0/databases/durability-ha/replication.md), Redis Software creates a replica of each primary shard. The replica shard will always be located on a different node than the primary shard to make your data highly available. If the primary shard fails or if the node hosting the primary shard fails, then the replica is promoted to primary. @@ -26,7 +26,7 @@ the former replica shard which has been promoted to primary and a new replica sh An available node: -1. Meets replica migration requirements, such as [rack-awareness]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}). +1. Meets replica migration requirements, such as [rack-awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md). 1. Has enough available RAM to store the replica shard. 1. Does not also contain the primary shard. @@ -43,10 +43,9 @@ For example: 1. If replica HA is enabled, a new replica shard is created on an available node. 1. The data from the primary shard is replicated to the new replica shard. -{{< note >}} -- Replica HA follows all prerequisites of replica migration, such as [rack-awareness]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}). -- Replica HA migrates as many shards as possible based on available DRAM in the target node. When no DRAM is available, replica HA stops migrating replica shards to that node. -{{< /note >}} +> [!NOTE] +> - Replica HA follows all prerequisites of replica migration, such as [rack-awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md). +> - Replica HA migrates as many shards as possible based on available DRAM in the target node. When no DRAM is available, replica HA stops migrating replica shards to that node. ## Configure high availability for replica shards @@ -65,21 +64,20 @@ To use replication without replication high availability, clear the **Replica hi You can also enable or turn off replica high availability for a database using `rladmin` or the REST API. -{{< note >}} -For Active-Active databases, replica HA is enabled for the database by default to make sure that replica shards are available for Active-Active replication. -{{< /note >}} +> [!NOTE] +> For Active-Active databases, replica HA is enabled for the database by default to make sure that replica shards are available for Active-Active replication. ### Configure cluster policy for replica HA To enable or turn off replica high availability by default for the entire cluster, use one of the following methods: -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster slave_ha { enabled | disabled } ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy @@ -109,9 +107,11 @@ rladmin info cluster By default, replica HA has a 10-minute grace period after node failure and before new replica shards are created. -{{}}The default grace period is 30 minutes for containerized applications using [Redis Enterprise Software for Kubernetes]({{< relref "/operate/kubernetes/" >}}).{{}} +> [!NOTE] +> The default grace period is 30 minutes for containerized applications using [Redis Enterprise Software for Kubernetes](/content/operate/kubernetes/_index.md). -{{}}For Kubernetes deployments, if ReplicaHA (previously SlaveHA) is enabled at the cluster level, you must also manually enable it at the database level for each RedisEnterpriseDatabase (REDB) using the UI or `rladmin`. Without manual database-level configuration, databases will show `slave_ha: disabled (database)` even when cluster-level ReplicaHA is enabled.{{}} +> [!NOTE] +> For Kubernetes deployments, if ReplicaHA (previously SlaveHA) is enabled at the cluster level, you must also manually enable it at the database level for each RedisEnterpriseDatabase (REDB) using the UI or `rladmin`. Without manual database-level configuration, databases will show `slave_ha: disabled (database)` even when cluster-level ReplicaHA is enabled. To configure this grace period from rladmin, run: @@ -149,7 +149,7 @@ database in the cluster until the cooldown period ends. The default is one hour. After a database is migrated with replica HA, it cannot go through another migration due to another node failure until the cooldown period for the database (`slave_ha_bdb_cooldown_period`) ends. The default is two hours. -To configure cooldown periods, use [`rladmin tune cluster`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +To configure cooldown periods, use [`rladmin tune cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): - For the cluster: @@ -175,6 +175,6 @@ The following alerts are sent during replica HA activation: - If two nodes that host a primary shard and its corresponding replica shard go down at the same time, both shards will be lost and replica high availability will not be able to create a new replica shard for any primary shard still running. - {{< note >}} -This limitation applies only when cluster quorum is maintained after two nodes fail, such as clusters with at least five nodes. If two nodes fail simultaneously in a cluster with only three nodes, the entire cluster is lost and must be recovered. - {{< /note >}} + > [!NOTE] + > This limitation applies only when cluster quorum is maintained after two nodes fail, such as clusters with at least five nodes. If two nodes fail simultaneously in a cluster with only three nodes, the entire cluster is lost and must be recovered. + > diff --git a/content/operate/rs/8.0/databases/configure/shard-placement.md b/content/operate/rs/8.0/databases/configure/shard-placement.md index 0a0145b92a..227012bb42 100644 --- a/content/operate/rs/8.0/databases/configure/shard-placement.md +++ b/content/operate/rs/8.0/databases/configure/shard-placement.md @@ -12,7 +12,7 @@ url: '/operate/rs/8.0/databases/configure/shard-placement/' --- In Redis Software, the location of master and replica shards on the cluster nodes can impact the database and node performance. Master shards and their corresponding replica shards are always placed on separate nodes for data resiliency. -The [shard placement policy]({{< relref "/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md" >}}) helps to maintain optimal performance and resiliency. +The [shard placement policy](/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md) helps to maintain optimal performance and resiliency. {{< embed-md "shard-placement-intro.md" >}} diff --git a/content/operate/rs/8.0/databases/connect/_index.md b/content/operate/rs/8.0/databases/connect/_index.md index 31bd617205..ba698008a2 100644 --- a/content/operate/rs/8.0/databases/connect/_index.md +++ b/content/operate/rs/8.0/databases/connect/_index.md @@ -12,27 +12,27 @@ weight: 20 url: '/operate/rs/8.0/databases/connect/' --- -After you [set up a cluster]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup" >}}) and [create a Redis database]({{< relref "/operate/rs/8.0/databases/create" >}}), you can connect to your database. +After you [set up a cluster](/content/operate/rs/8.0/clusters/new-cluster-setup.md) and [create a Redis database](/content/operate/rs/8.0/databases/create.md), you can connect to your database. To connect to your database, you need the database endpoint, which includes the cluster name (FQDN) and the database port. To view and copy public and private endpoints for a database in the cluster, see the database’s **Configuration > General** section in the Cluster Manager UI. {{View public and private endpoints from the General section of the database's Configuration screen.}} -If you try to connect with the FQDN, and the database does not respond, try connecting with the IP address. If this succeeds, DNS is not properly configured. To set up DNS, see [Configure cluster DNS]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}). +If you try to connect with the FQDN, and the database does not respond, try connecting with the IP address. If this succeeds, DNS is not properly configured. To set up DNS, see [Configure cluster DNS](/content/operate/rs/8.0/networking/cluster-dns.md). -If you want to secure your connection, set up [TLS]({{< relref "/operate/rs/8.0/security/encryption/tls/" >}}). +If you want to secure your connection, set up [TLS](/content/operate/rs/8.0/security/encryption/tls/_index.md). ## Connect to a database Use one of the following connection methods to connect to your database: -- [`redis-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/redis-cli/" >}}) utility +- [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) utility - [Redis Insight](https://redis.com/redis-enterprise/redis-insight/) -- [Redis client]({{< relref "/develop/clients" >}}) for your preferred programming language +- [Redis client](/content/develop/clients/_index.md) for your preferred programming language -For examples, see [Test client connection]({{< relref "/operate/rs/8.0/databases/connect/test-client-connectivity" >}}). +For examples, see [Test client connection](/content/operate/rs/8.0/databases/connect/test-client-connectivity.md). ## Continue learning with Redis University diff --git a/content/operate/rs/8.0/databases/connect/supported-clients-browsers.md b/content/operate/rs/8.0/databases/connect/supported-clients-browsers.md index 1ce7baf91b..503839f3ed 100644 --- a/content/operate/rs/8.0/databases/connect/supported-clients-browsers.md +++ b/content/operate/rs/8.0/databases/connect/supported-clients-browsers.md @@ -13,21 +13,21 @@ You can connect to Redis Software databases programmatically using client librar ## Redis client libraries -To connect an application to a Redis database hosted by Redis Software, use a [client library]({{< relref "/develop/clients" >}}) appropriate for your programming language. +To connect an application to a Redis database hosted by Redis Software, use a [client library](/content/develop/clients/_index.md) appropriate for your programming language. You can also use the `redis-cli` utility to connect to a database from the command line. -For examples of each approach, see the [Redis Software quickstart]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart" >}}). +For examples of each approach, see the [Redis Software quickstart](/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md). Note: You cannot use client libraries to configure Redis Software. Instead, use: -- The Redis Software [Cluster Manager UI]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart" >}}) -- The [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) -- Command-line utilities, such as [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) +- The Redis Software [Cluster Manager UI](/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md) +- The [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) +- Command-line utilities, such as [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) ### Discovery service -All [recommended Redis client libraries]({{< relref "/develop/clients" >}}) support the Redis Sentinel API, so you can use any of them with the [discovery service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service.md" >}}). +All [recommended Redis client libraries](/content/develop/clients/_index.md) support the Redis Sentinel API, so you can use any of them with the [discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md). If you need to use a client that doesn't support Sentinel, you can use [Sentinel Tunnel](https://github.com/RedisLabs/sentinel_tunnel) to discover the current primary Redis endpoint with Sentinel and create a TCP tunnel between a local port on the client and the primary endpoint. diff --git a/content/operate/rs/8.0/databases/connect/test-client-connectivity.md b/content/operate/rs/8.0/databases/connect/test-client-connectivity.md index af6a90268d..e713b845b7 100644 --- a/content/operate/rs/8.0/databases/connect/test-client-connectivity.md +++ b/content/operate/rs/8.0/databases/connect/test-client-connectivity.md @@ -16,7 +16,7 @@ database. To test client connectivity: -1. After you [create a Redis database]({{< relref "/operate/rs/8.0/databases/create" >}}), copy the database endpoint, which contains the cluster name (FQDN). +1. After you [create a Redis database](/content/operate/rs/8.0/databases/create.md), copy the database endpoint, which contains the cluster name (FQDN). To view and copy endpoints for a database in the cluster, see the database’s **Configuration > General** section in the Cluster Manager UI: @@ -29,7 +29,7 @@ To test client connectivity: endpoint using the IP address rather than the FQDN. If you succeed, then DNS is not properly configured. For additional details, see - [Configure cluster DNS]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}). + [Configure cluster DNS](/content/operate/rs/8.0/networking/cluster-dns.md). If any issues occur when testing database connections, [contact support](https://redis.com/company/support/). @@ -39,11 +39,11 @@ support](https://redis.com/company/support/). After you create a Redis database, you can connect to your database and store data using one of the following methods: -- [`redis-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/redis-cli" >}}), the built-in command-line tool +- [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md), the built-in command-line tool - [Redis Insight](https://redis.com/redis-enterprise/redis-insight/), a free Redis GUI that is available for macOS, Windows, and Linux -- An application using a Redis client library, such as [`redis-py`](https://github.com/redis/redis-py) for Python. See the [client list]({{< relref "/develop/clients" >}}) to view all Redis clients by language. +- An application using a Redis client library, such as [`redis-py`](https://github.com/redis/redis-py) for Python. See the [client list](/content/develop/clients/_index.md) to view all Redis clients by language. ### Connect with redis-cli @@ -57,23 +57,23 @@ OK "123" ``` -For more `redis-cli` connection examples, see the [`redis-cli` reference]({{< relref "/operate/rs/8.0/references/cli-utilities/redis-cli" >}}). +For more `redis-cli` connection examples, see the [`redis-cli` reference](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md). ### Connect with Redis Insight Redis Insight is a free Redis GUI that is available for macOS, Windows, and Linux. -1. [Install Redis Insight]({{< relref "/develop/tools/insight" >}}). +1. [Install Redis Insight](/content/develop/tools/insight/_index.md). 1. Open Redis Insight and select **Add Redis Database**. 1. Enter the host and port in the **Host** and **Port** fields. -1. Select **Use TLS** if [TLS]({{< relref "/operate/rs/8.0/security/encryption/tls" >}}) is set up. +1. Select **Use TLS** if [TLS](/content/operate/rs/8.0/security/encryption/tls/_index.md) is set up. 1. Select **Add Redis Database** to connect to the database. -See the [Redis Insight documentation]({{< relref "/develop/tools/insight" >}}) for more information. +See the [Redis Insight documentation](/content/develop/tools/insight/_index.md) for more information. ### Connect with Python diff --git a/content/operate/rs/8.0/databases/connect/troubleshooting-guide.md b/content/operate/rs/8.0/databases/connect/troubleshooting-guide.md index f0e0fa49c2..7db2139306 100644 --- a/content/operate/rs/8.0/databases/connect/troubleshooting-guide.md +++ b/content/operate/rs/8.0/databases/connect/troubleshooting-guide.md @@ -93,7 +93,7 @@ Verify that time is synchronized with the time server using one of the following #### Review system logs -Review system logs including the syslog or journal for any error messages, warnings, or critical events. See [Logging]({{< relref "/operate/rs/8.0/clusters/logging" >}}) for more information. +Review system logs including the syslog or journal for any error messages, warnings, or critical events. See [Logging](/content/operate/rs/8.0/clusters/logging/_index.md) for more information. ## Identify issues caused by security hardening @@ -137,7 +137,7 @@ Review system logs including the syslog or journal for any error messages, warni rlcheck ``` -- Run [`rladmin status issues_only`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status" >}}) and verify that no issues appear: +- Run [`rladmin status issues_only`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) and verify that no issues appear: ```sh $ rladmin status issues_only @@ -155,7 +155,7 @@ Review system logs including the syslog or journal for any error messages, warni ``` -- Run [`rladmin status shards`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status#status-shards" >}}). For each shard, `USED_MEMORY` should be less than 25 GB. +- Run [`rladmin status shards`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md#status-shards). For each shard, `USED_MEMORY` should be less than 25 GB. ```sh $ rladmin status shards @@ -164,7 +164,7 @@ Review system logs including the syslog or journal for any error messages, warni db:1 db1 redis:1 node:1 master 0-16383 2.13MB OK ``` -- Run [`rladmin cluster running_actions`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/running_actions" >}}) and confirm that no tasks are currently running (active): +- Run [`rladmin cluster running_actions`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/running_actions.md) and confirm that no tasks are currently running (active): ```sh $ rladmin cluster running_actions @@ -193,15 +193,15 @@ Review system logs including the syslog or journal for any error messages, warni #### Client application issues -1. To identify possible client application issues, test connectivity from the client machine to the database using [`redis-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/redis-cli" >}}): +1. To identify possible client application issues, test connectivity from the client machine to the database using [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md): - [`INFO`]({{< relref "/commands/info" >}}): + [`INFO`](/content/commands/info.md): ```sh redis-cli -h -p -a INFO ``` - [`PING`]({{< relref "/commands/ping" >}}): + [`PING`](/content/commands/ping.md): ```sh redis-cli -h -p -a PING @@ -249,7 +249,7 @@ Review system logs including the syslog or journal for any error messages, warni #### Server-side latency -- Make sure the database's used memory does not reach the configured database max memory limit. For more details, see [Database memory limits]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit" >}}). +- Make sure the database's used memory does not reach the configured database max memory limit. For more details, see [Database memory limits](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md). - Try to correlate the time of the latency with any surge in the following metrics: @@ -261,15 +261,15 @@ Review system logs including the syslog or journal for any error messages, warni - Expired keys -- Run [`SLOWLOG GET`]({{< relref "/commands/slowlog-get" >}}) using [`redis-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/redis-cli" >}}) to identify slow commands such as [`KEYS`]({{< relref "/commands/keys" >}}) or [`HGETALL`]({{< relref "/commands/hgetall" >}}: +- Run [`SLOWLOG GET`](/content/commands/slowlog-get.md) using [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) to identify slow commands such as [`KEYS`](/content/commands/keys.md) or [`HGETALL`](/content/commands/hgetall.md): ```sh redis-cli -h -p -a SLOWLOG GET ``` - Consider using alternative commands such as [`SCAN`]({{< relref "/commands/scan" >}}), [`SSCAN`]({{< relref "/commands/sscan" >}}), [`HSCAN`]({{< relref "/commands/hscan" >}}) and [`ZSCAN`]({{< relref "/commands/zscan" >}}) + Consider using alternative commands such as [`SCAN`](/content/commands/scan.md), [`SSCAN`](/content/commands/sscan.md), [`HSCAN`](/content/commands/hscan.md) and [`ZSCAN`](/content/commands/zscan.md) -- Keys with large memory footprints can cause latency. To identify such keys, compare the keys returned by [`SLOWLOG GET`]({{< relref "/commands/slowlog-get" >}}) with the output of the following commands: +- Keys with large memory footprints can cause latency. To identify such keys, compare the keys returned by [`SLOWLOG GET`](/content/commands/slowlog-get.md) with the output of the following commands: ```sh redis-cli -h -p -a --memkeys @@ -281,9 +281,9 @@ Review system logs including the syslog or journal for any error messages, warni - For additional diagnostics, see: - - [Diagnosing latency issues]({{< relref "/operate/oss_and_stack/management/optimization/latency" >}}) + - [Diagnosing latency issues](/content/operate/oss_and_stack/management/optimization/latency.md) - - [View Redis slow log]({{< relref "/operate/rs/8.0/clusters/logging/redis-slow-log" >}}) + - [View Redis slow log](/content/operate/rs/8.0/clusters/logging/redis-slow-log.md) #### Client-side latency diff --git a/content/operate/rs/8.0/databases/create.md b/content/operate/rs/8.0/databases/create.md index 481aa31ade..518321cbda 100644 --- a/content/operate/rs/8.0/databases/create.md +++ b/content/operate/rs/8.0/databases/create.md @@ -28,13 +28,12 @@ To create a new database using the Cluster Manager UI: 1. If you did not specify a port number for the database, you can find the port number in the **Endpoint** field in the **Databases > Configuration > General** section. -1. [Test client connectivity]({{< relref "/operate/rs/8.0/databases/connect/test-client-connectivity" >}}). +1. [Test client connectivity](/content/operate/rs/8.0/databases/connect/test-client-connectivity.md). -{{< note >}} -For databases with Active-Active replication for geo-distributed locations, -see [Create an Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active/create.md" >}}). To create and manage Active-Active databases, use the legacy UI. -{{< /note >}} +> [!NOTE] +> For databases with Active-Active replication for geo-distributed locations, +> see [Create an Active-Active database](/content/operate/rs/8.0/databases/active-active/create.md). To create and manage Active-Active databases, use the legacy UI. ### Quick database @@ -60,7 +59,7 @@ To quickly create a database and skip additional configuration options during in {{}} -1. Optionally select **Full options** to configure [additional settings]({{< relref "/operate/rs/8.0/databases/configure#config-settings" >}}). +1. Optionally select **Full options** to configure [additional settings](/content/operate/rs/8.0/databases/configure/_index.md#config-settings). 1. Select **Create**. @@ -82,11 +81,11 @@ To create a new database and configure additional settings: - **Single Region** - - **Active-Active database** - Multiple participating Redis Software clusters can host instances of the same [Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active" >}}) in different geographic locations. Every instance can receive write operations, which are synchronized across all instances without conflict. + - **Active-Active database** - Multiple participating Redis Software clusters can host instances of the same [Active-Active database](/content/operate/rs/8.0/databases/active-active/_index.md) in different geographic locations. Every instance can receive write operations, which are synchronized across all instances without conflict. - {{}} -For Active-Active databases, see [Create an Active-Active geo-replicated database]({{< relref "/operate/rs/8.0/databases/active-active/create" >}}). - {{}} + > [!NOTE] + > For Active-Active databases, see [Create an Active-Active geo-replicated database](/content/operate/rs/8.0/databases/active-active/create.md). + > 1. Select a Redis version from the **Database version** list. @@ -102,13 +101,13 @@ For Active-Active databases, see [Create an Active-Active geo-replicated databas 1. To configure additional database settings, expand each relevant section to make changes. - See [Configuration settings]({{< relref "/operate/rs/8.0/databases/configure#config-settings" >}}) for more information about each setting. + See [Configuration settings](/content/operate/rs/8.0/databases/configure/_index.md#config-settings) for more information about each setting. 1. Select **Create**. ## REST API method -To [create a database]({{}}) using a REST API request: +To [create a database](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#post-bdbs-v1) using a REST API request: ```sh POST https://:/v1/bdbs @@ -120,7 +119,7 @@ POST https://:/v1/bdbs } ``` -For additional database configuration fields, see the [BDB object]({{}}) reference. +For additional database configuration fields, see the [BDB object](/content/operate/rs/8.0/references/rest-api/objects/bdb/_index.md) reference. ## Continue learning with Redis University diff --git a/content/operate/rs/8.0/databases/durability-ha/_index.md b/content/operate/rs/8.0/databases/durability-ha/_index.md index 6892f35e49..395051ea9b 100644 --- a/content/operate/rs/8.0/databases/durability-ha/_index.md +++ b/content/operate/rs/8.0/databases/durability-ha/_index.md @@ -16,24 +16,24 @@ Redis Software comes with several features that make your data more durable and ## Replication -When you [replicate your database]({{}}), each database instance (primary shard) is copied to a replica shard. When a primary shard fails, the cluster automatically promotes a replica shard to primary. +When you [replicate your database](/content/operate/rs/8.0/databases/durability-ha/replication.md), each database instance (primary shard) is copied to a replica shard. When a primary shard fails, the cluster automatically promotes a replica shard to primary. ## Clustering -[Clustering]({{}}) (or sharding) breaks your database into individual instances (shards) and spreads them across several nodes. Clustering lets you add resources to your cluster to scale your database and prevents node failures from causing availability loss. +[Clustering](/content/operate/rs/8.0/databases/durability-ha/clustering.md) (or sharding) breaks your database into individual instances (shards) and spreads them across several nodes. Clustering lets you add resources to your cluster to scale your database and prevents node failures from causing availability loss. ## Database persistence -[Database persistence]({{}}) gives your database durability against process or server failures by saving data to disk at set intervals. +[Database persistence](/content/operate/rs/8.0/databases/configure/database-persistence.md) gives your database durability against process or server failures by saving data to disk at set intervals. ## Active-Active geo-distributed replication -[Active-Active Redis Software databases]({{}}) allow reading and writing to the same dataset from multiple clusters in different geographic locations. This increases the durability of your database by reducing the likelihood of data or availability loss. It also reduces data access latency by serving requests from the nearest cluster. +[Active-Active Redis Software databases](/content/operate/rs/8.0/databases/active-active/_index.md) allow reading and writing to the same dataset from multiple clusters in different geographic locations. This increases the durability of your database by reducing the likelihood of data or availability loss. It also reduces data access latency by serving requests from the nearest cluster. ## Rack-zone awareness -[Rack-zone awareness]({{}}) maps each node in your Redis Software cluster to a physical rack or logical zone. The cluster uses this information to distribute primary shards and their replica shards in different racks or zones. This ensures data availability if a rack or zone fails. +[Rack-zone awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md) maps each node in your Redis Software cluster to a physical rack or logical zone. The cluster uses this information to distribute primary shards and their replica shards in different racks or zones. This ensures data availability if a rack or zone fails. ## Discovery service -The [discovery service]({{}}) provides an IP-based connection management service used when connecting to Redis Software databases. It lets your application discover which node hosts the database endpoint. The discovery service API complies with the [Redis Sentinel API]({{< relref "/operate/oss_and_stack/management/sentinel" >}}#sentinel-api). \ No newline at end of file +The [discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md) provides an IP-based connection management service used when connecting to Redis Software databases. It lets your application discover which node hosts the database endpoint. The discovery service API complies with the [Redis Sentinel API](/content/operate/oss_and_stack/management/sentinel.md#sentinel-api). \ No newline at end of file diff --git a/content/operate/rs/8.0/databases/durability-ha/clustering.md b/content/operate/rs/8.0/databases/durability-ha/clustering.md index 2b963a48bb..857c7608e9 100644 --- a/content/operate/rs/8.0/databases/durability-ha/clustering.md +++ b/content/operate/rs/8.0/databases/durability-ha/clustering.md @@ -62,7 +62,7 @@ is 3, you can increase the number of shards to 6, 9, or 12. ### Standard hashing policy -When using the standard hashing policy, a clustered Redis Software database behaves similarly to a standard [Redis Open Source cluster]({{< relref "/operate/oss_and_stack/reference/cluster-spec" >}}#hash-tags), except when using multiple hash tags in a key's name. We recommend using only a single hash tag in a key name for hashing in Redis Software. +When using the standard hashing policy, a clustered Redis Software database behaves similarly to a standard [Redis Open Source cluster](/content/operate/oss_and_stack/reference/cluster-spec.md#hash-tags), except when using multiple hash tags in a key's name. We recommend using only a single hash tag in a key name for hashing in Redis Software. - **Keys with a hash tag**: a key's hash tag is any substring between `{` and `}` in the key's name. When a key's name @@ -135,11 +135,10 @@ Examples of such changes include: - Adding new rules in the custom hashing policy. - Deleting rules from the custom hashing policy. -{{< note >}} -The recommended workaround for updates that are not enabled, -or require flushing the database, -is to back up the database and import the data to a newly configured database. -{{< /note >}} +> [!NOTE] +> The recommended workaround for updates that are not enabled, +> or require flushing the database, +> is to back up the database and import the data to a newly configured database. ## Multi-key operations {#multikey-operations} @@ -156,14 +155,14 @@ the following limitations: Commands that affect all keys or keys that match a specified pattern are allowed in a clustered database, for example: FLUSHDB, FLUSHALL, KEYS - {{< note >}} -When using these commands in a sharded setup, -the command is distributed across multiple shards -and the responses from all shards are combined into a single response. - {{< /note >}} + > [!NOTE] + > When using these commands in a sharded setup, + > the command is distributed across multiple shards + > and the responses from all shards are combined into a single response. + > -- **Geo commands**: For the [GEORADIUS]({{< relref "/commands/georadius" >}}) and - [GEORADIUSBYMEMBER]({{< relref "/commands/georadiusbymember" >}}) commands, the +- **Geo commands**: For the [GEORADIUS](/content/commands/georadius.md) and + [GEORADIUSBYMEMBER](/content/commands/georadiusbymember.md) commands, the STORE and STOREDIST options can only be used when all affected keys reside in the same slot. - **Transactions**: All operations within a WATCH / MULTI / EXEC block diff --git a/content/operate/rs/8.0/databases/durability-ha/consistency.md b/content/operate/rs/8.0/databases/durability-ha/consistency.md index c733dec78e..72194945e6 100644 --- a/content/operate/rs/8.0/databases/durability-ha/consistency.md +++ b/content/operate/rs/8.0/databases/durability-ha/consistency.md @@ -12,7 +12,7 @@ url: '/operate/rs/8.0/databases/durability-ha/consistency/' --- Redis Software comes with the ability to replicate data to another database instance for high availability and persist in-memory data on -disk permanently for durability. With the [`WAIT`]({{}}) command, you can +disk permanently for durability. With the [`WAIT`](/content/commands/wait.md) command, you can control the consistency and durability guarantees for the replicated and persisted database. @@ -33,7 +33,7 @@ Any updates that are issued to the database are typically performed with the fol ## Blocking write operation on replication -With the [`WAIT`]({{}}) or [`WAITAOF`]({{}}) commands, applications can ask to wait for +With the [`WAIT`](/content/commands/wait.md) or [`WAITAOF`](/content/commands/waitaof.md) commands, applications can ask to wait for acknowledgments only after replication or persistence is confirmed on the replica. The flow of a write operation with `WAIT` or `WAITAOF` is: @@ -49,4 +49,4 @@ The application only gets the acknowledgment from the write after durability is The `WAIT` command always returns the number of replicas that acknowledged the write commands sent by the current client before the `WAIT` command, both in the case where the specified number of replicas are reached, or when the timeout is reached. In Redis Software, the number of replicas for HA enabled databases is always 1. -See the [`WAITAOF`]({{}}) command for details for enhanced data safety and durability capabilities introduced with Redis 7.2. +See the [`WAITAOF`](/content/commands/waitaof.md) command for details for enhanced data safety and durability capabilities introduced with Redis 7.2. diff --git a/content/operate/rs/8.0/databases/durability-ha/discovery-service.md b/content/operate/rs/8.0/databases/durability-ha/discovery-service.md index d468e1fb33..642e649af0 100644 --- a/content/operate/rs/8.0/databases/durability-ha/discovery-service.md +++ b/content/operate/rs/8.0/databases/durability-ha/discovery-service.md @@ -31,7 +31,7 @@ connecting to databases. The Discovery Service is available for querying on each node of the cluster, listening on port 8001. To employ it, your application utilizes a [Redis Sentinel enabled client -library]({{< relref "/operate/rs/8.0/databases/connect/supported-clients-browsers.md" >}}) +library](/content/operate/rs/8.0/databases/connect/supported-clients-browsers.md) to connect to the Discovery Service and request the endpoint for the given database. The Discovery Service replies with the database's endpoint for that database. In case of a node failure, the Discovery @@ -81,26 +81,24 @@ $ ./redis-cli -p 8001 It is important to note that, the Discovery Service is not a full implementation of the [Redis Sentinel -protocol]({{< relref "/operate/oss_and_stack/management/sentinel" >}}). There are aspects of the +protocol](/content/operate/oss_and_stack/management/sentinel.md). There are aspects of the protocol that are not applicable or would be duplication with existing technology in Redis Software. The Discovery Service implements only the parts required to provide applications with easy High Availability, be compatible with the protocol, and not rely on DNS to derive which node in the cluster to communicate with. -{{< note >}} -To use Redis Sentinel, every database name must be unique across the cluster. -{{< /note >}} +> [!NOTE] +> To use Redis Sentinel, every database name must be unique across the cluster. ## Redis client support -All [recommended Redis client libraries]({{< relref "/develop/clients" >}}) support the Redis Sentinel API, so you can use any of them with the discovery service. +All [recommended Redis client libraries](/content/develop/clients/_index.md) support the Redis Sentinel API, so you can use any of them with the discovery service. If you need to use a client that doesn't support Sentinel, you can use [Sentinel Tunnel](https://github.com/RedisLabs/sentinel_tunnel) to discover the current primary Redis endpoint with Sentinel and create a TCP tunnel between a local port on the client and the primary endpoint. -{{< note >}} -Redis Sentinel API can return endpoints for both primary and replica -endpoints. -Discovery Service only supports primary endpoints and does not -support returning replica endpoints for a database. -{{< /note >}} +> [!NOTE] +> Redis Sentinel API can return endpoints for both primary and replica +> endpoints. +> Discovery Service only supports primary endpoints and does not +> support returning replica endpoints for a database. diff --git a/content/operate/rs/8.0/databases/durability-ha/replication.md b/content/operate/rs/8.0/databases/durability-ha/replication.md index 21306c946f..bf548a4171 100644 --- a/content/operate/rs/8.0/databases/durability-ha/replication.md +++ b/content/operate/rs/8.0/databases/durability-ha/replication.md @@ -22,14 +22,13 @@ guarantees that data is served with minimal interruption. You can tune your high availability configuration with: - [Rack/Zone -Awareness]({{< relref "/operate/rs/8.0/clusters/configure/rack-zone-awareness.md" >}}) - When rack-zone awareness is used additional logic ensures that master and replica shards never share the same rack, thus ensuring availability even under loss of an entire rack. -- [High Availability for Replica Shards]({{< relref "/operate/rs/8.0/databases/configure/replica-ha.md" >}}) - When high availability +Awareness](/content/operate/rs/8.0/clusters/configure/rack-zone-awareness.md) - When rack-zone awareness is used additional logic ensures that master and replica shards never share the same rack, thus ensuring availability even under loss of an entire rack. +- [High Availability for Replica Shards](/content/operate/rs/8.0/databases/configure/replica-ha.md) - When high availability for replica shards is used, the replica shard is automatically migrated on node failover to maintain high availability. -{{< warning >}} -Enabling replication has implications for the total database size, -as explained in [Database memory limits]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit.md" >}}). -{{< /warning >}} +> [!WARNING] +> Enabling replication has implications for the total database size, +> as explained in [Database memory limits](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md). ## Auto Tiering replication considerations @@ -54,16 +53,15 @@ The recommended sequential replication configuration is two, i.e.: rladmin tune cluster max_redis_forks 1 max_slave_full_syncs 1 ``` -{{< note >}} -This means that at any given time, -only one primary and one replica can be part of a full sync replication process. -{{< /note >}} +> [!NOTE] +> This means that at any given time, +> only one primary and one replica can be part of a full sync replication process. ## Database replication backlog -Redis databases that use [replication for high availability]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}) maintain a replication backlog (per shard) to synchronize the primary and replica shards of a database. +Redis databases that use [replication for high availability](/content/operate/rs/8.0/databases/durability-ha/replication.md) maintain a replication backlog (per shard) to synchronize the primary and replica shards of a database. By default, the replication backlog is set to one percent (1%) of the database size divided by the database number of shards and ranges between 1MB to 250MB per shard. -Use the [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) and the [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}) utilities to control the size of the replication backlog. You can set it to `auto` or set a specific size. +Use the [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) and the [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) utilities to control the size of the replication backlog. You can set it to `auto` or set a specific size. The syntax varies between regular and Active-Active databases. @@ -81,7 +79,7 @@ crdb-cli crdb update --crdb-guid --default-db-config "{\"repl_backlo In addition to the database replication backlog, Active-Active databases maintain a backlog (per shard) to synchronize the database instances between clusters. By default, the Active-Active replication backlog is set to one percent (1%) of the database size divided by the database number of shards, and ranges between 1MB to 250MB per shard. -Use the [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}) utility to control the size of the CRDT replication backlog. You can set it to `auto` or set a specific size: +Use the [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) utility to control the size of the CRDT replication backlog. You can set it to `auto` or set a specific size: ```text crdb-cli crdb update --crdb-guid --default-db-config "{\"crdt_repl_backlog_size\": }" @@ -89,7 +87,7 @@ crdb-cli crdb update --crdb-guid --default-db-config "{\"crdt_repl_b **For Redis Software versions earlier than 6.0.20:** The replication backlog and the CRDT replication backlog defaults are set to 1MB and cannot be set dynamically with 'auto' mode. -To control the size of the replication log, use [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) to tune the local database instance in each cluster. +To control the size of the replication log, use [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) to tune the local database instance in each cluster. ```text rladmin tune db repl_backlog ``` \ No newline at end of file diff --git a/content/operate/rs/8.0/databases/flash/_index.md b/content/operate/rs/8.0/databases/flash/_index.md index 027e8cf2b0..73d1dc0c08 100644 --- a/content/operate/rs/8.0/databases/flash/_index.md +++ b/content/operate/rs/8.0/databases/flash/_index.md @@ -15,10 +15,10 @@ url: '/operate/rs/8.0/databases/flash/' --- {{}} -This article includes a general overview of Flex and its predecessor Auto Tiering. For more detailed information about Flex, see the dedicated [Flex databases]({{}}) section instead. +This article includes a general overview of Flex and its predecessor Auto Tiering. For more detailed information about Flex, see the dedicated [Flex databases](/content/operate/rs/8.0/flex/_index.md) section instead. {{}} -[Flex]({{}}) and Auto Tiering in Redis Software enable databases to use solid state drives (SSDs) to extend beyond DRAM capacity. +[Flex](/content/operate/rs/8.0/flex/_index.md) and Auto Tiering in Redis Software enable databases to use solid state drives (SSDs) to extend beyond DRAM capacity. Developers can build applications that require large datasets using the same Redis API. Using SSDs can significantly reduce the infrastructure costs compared to only DRAM deployments. @@ -30,7 +30,7 @@ Flex is based on a high-performance storage engine (Speedb) that manages the com Just like all-RAM databases, Flex databases are compatible with existing Redis applications. -Flex is also supported on [Redis Cloud]({{< relref "/operate/rc/" >}}) and [Redis Enterprise Software for Kubernetes]({{< relref "/operate/kubernetes/flex" >}}). +Flex is also supported on [Redis Cloud](/content/operate/rc/_index.md) and [Redis Enterprise Software for Kubernetes](/content/operate/kubernetes/flex/_index.md). ## Flex versus Auto Tiering @@ -44,7 +44,7 @@ Redis database versions support Flex and Auto Tiering as follows: | 7.4 | ✅ | ✅| | 7.2 and earlier | ❌ | ✅ | -Flex requires the Speedb driver, while Auto Tiering can use either RocksDB or Speedb. See [Manage Auto Tiering storage engine]({{}}) for more information. +Flex requires the Speedb driver, while Auto Tiering can use either RocksDB or Speedb. See [Manage Auto Tiering storage engine](/content/operate/rs/8.0/databases/flash/storage-engine.md) for more information. ## Use cases @@ -75,7 +75,8 @@ All data is accessed through RAM. If a key or value in flash memory is accessed, Inactive or infrequently accessed data is referred to as "warm data" and stored in flash memory. When more space is needed in RAM, warm keys and values are moved from RAM to flash storage. -{{}} When using Auto Tiering with Redis Search, indexes are also stored in RAM. Flex does not support Redis Search.{{}} +> [!NOTE] +> When using Auto Tiering with Redis Search, indexes are also stored in RAM. Flex does not support Redis Search. ## RAM to Flash ratio @@ -93,7 +94,8 @@ Implementing Flex requires pre planning around memory and sizing. Considerations - For the best performance, the SSDs should be NVMe based, but SATA can also be used. - The available flash space must be greater than or equal to the total database size (RAM+Flash). The extra space accounts for write buffers and [write amplification](https://en.wikipedia.org/wiki/Write_amplification). -{{}} The Redis Software database persistent and ephemeral storage should be on different disks, either local or attached. {{}} +> [!NOTE] +> The Redis Software database persistent and ephemeral storage should be on different disks, either local or attached. After these requirements are met, you can create and manage both Flex databases and all-RAM databases in the same cluster. @@ -108,8 +110,8 @@ When running in a cloud environment: - Flash memory is on the ephemeral SSDs of the cloud instance (for example the local NVMe of AWS i4i instances and Azure Lsv2 and Lsv3 series). - Persistent database storage needs to be network attached (for example, AWS EBS for AWS). -{{}} -We specifically recommend "[Storage Optimized I4i - High I/O Instances](https://aws.amazon.com/ec2/instance-types/#storage-optimized)" because of the performance of NVMe for flash memory. {{}} +> [!NOTE] +> We specifically recommend "[Storage Optimized I4i - High I/O Instances](https://aws.amazon.com/ec2/instance-types/#storage-optimized)" because of the performance of NVMe for flash memory. ### On-premises environments @@ -121,14 +123,15 @@ The following table shows which data types and features are supported for Flex a | Data type/feature | Flex support | Auto Tiering support | |-------------------|--------------|----------------------| -| [Active-Active databases]({{}}) | ❌ |✅ Requires Redis
technical team's approval | -| [JSON]({{}}) | ✅ | ✅ | -| [Probabilistic data structures]({{}}) | ✅ | ✅ | -| [Redis Search]({{}}) | ❌ | ✅ | -| Standard [Redis data types]({{}}) | ✅ | ✅ | -| [Time series]({{}}) | ❌ | ✅ | +| [Active-Active databases](/content/operate/rs/8.0/databases/active-active/_index.md) | ❌ |✅ Requires Redis
technical team's approval | +| [JSON](/content/develop/data-types/json/_index.md) | ✅ | ✅ | +| [Probabilistic data structures](/content/develop/data-types/_index.md#probabilistic-data-types) | ✅ | ✅ | +| [Redis Search](/content/operate/oss_and_stack/stack-with-enterprise/search/_index.md) | ❌ | ✅ | +| Standard [Redis data types](/content/develop/data-types/_index.md) | ✅ | ✅ | +| [Time series](/content/develop/data-types/timeseries/_index.md) | ❌ | ✅ | -{{}}Flex is not supported running on network attached storage (NAS), storage area network (SAN), or with local HDD drives. {{}} +> [!WARNING] +> Flex is not supported running on network attached storage (NAS), storage area network (SAN), or with local HDD drives. ## Size limits for keys and values @@ -142,14 +145,14 @@ Keys or values larger than 4GB will be stored in RAM only, and warnings will app ## Next steps -- [Get started with Flex databases for Redis Software]({{< relref "/operate/rs/8.0/flex/get-started" >}}) +- [Get started with Flex databases for Redis Software](/content/operate/rs/8.0/flex/get-started.md) -- [Auto Tiering quick start]({{< relref "/operate/rs/8.0/databases/flash/quickstart" >}}) +- [Auto Tiering quick start](/content/operate/rs/8.0/databases/flash/quickstart.md) -- [Ephemeral and persistent storage]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}) +- [Ephemeral and persistent storage](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md) -- [Plan a Flex deployment for Redis Software]({{}}) +- [Plan a Flex deployment for Redis Software](/content/operate/rs/8.0/flex/plan.md) -- [Hardware requirements]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}) +- [Hardware requirements](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md) -- [Flex and Auto Tiering metrics]({{< relref "/operate/rs/8.0/references/metrics/auto-tiering" >}}) +- [Flex and Auto Tiering metrics](/content/operate/rs/8.0/references/metrics/auto-tiering.md) diff --git a/content/operate/rs/8.0/databases/flash/quickstart.md b/content/operate/rs/8.0/databases/flash/quickstart.md index c16bc0968c..4fc33511ea 100644 --- a/content/operate/rs/8.0/databases/flash/quickstart.md +++ b/content/operate/rs/8.0/databases/flash/quickstart.md @@ -14,12 +14,12 @@ url: '/operate/rs/8.0/databases/flash/quickstart/' --- {{}} -This article includes a quick start for Flex and its predecessor Auto Tiering. For more detailed information about Flex, see the dedicated [Flex databases]({{}}) section instead. +This article includes a quick start for Flex and its predecessor Auto Tiering. For more detailed information about Flex, see the dedicated [Flex databases](/content/operate/rs/8.0/flex/_index.md) section instead. {{}} -This page guides you through a quick setup of [Flex and Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash" >}}) with a single node for testing and demo purposes. +This page guides you through a quick setup of [Flex and Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md) with a single node for testing and demo purposes. -For production environments, you can find more detailed installation instructions in the [install and setup]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) section. +For production environments, you can find more detailed installation instructions in the [install and setup](/content/operate/rs/8.0/installing-upgrading/_index.md) section. The steps to set up a Redis Software cluster using Flex with a single node are: @@ -82,10 +82,10 @@ sudo lsblk 1. Direct your browser to `https://localhost:8443` on the host machine to see the Redis Software Cluster Manager UI. - {{}} -Depending on your browser, you may see a certificate error. -Choose "continue to the website" to go to the setup screen. - {{}} + > [!NOTE] + > Depending on your browser, you may see a certificate error. + > Choose "continue to the website" to go to the setup screen. + > 1. Select **Create new cluster**. @@ -122,8 +122,8 @@ You now have a database with Flex enabled! ## Connect to your database -After you create the database, you can connect to it and store data. See [Test client connection]({{}}) for connection options and examples. +After you create the database, you can connect to it and store data. See [Test client connection](/content/operate/rs/8.0/databases/connect/test-client-connectivity.md) for connection options and examples. ## Next steps -To see the true performance and scale of Flex, you must tune your I/O path and set the flash path to the mounted path of SSD or NVMe flash memory as that is what it is designed to run on. For more information, see [Flex and Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}}). +To see the true performance and scale of Flex, you must tune your I/O path and set the flash path to the mounted path of SSD or NVMe flash memory as that is what it is designed to run on. For more information, see [Flex and Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md). diff --git a/content/operate/rs/8.0/databases/flash/storage-engine.md b/content/operate/rs/8.0/databases/flash/storage-engine.md index 8aaf977a8b..8538870e79 100644 --- a/content/operate/rs/8.0/databases/flash/storage-engine.md +++ b/content/operate/rs/8.0/databases/flash/storage-engine.md @@ -13,7 +13,7 @@ url: '/operate/rs/8.0/databases/flash/storage-engine/' --- {{}} -This article includes information about the storage engines used by Flex and its predecessor Auto Tiering. For more detailed information about Flex, see the dedicated [Flex databases]({{}}) section instead. +This article includes information about the storage engines used by Flex and its predecessor Auto Tiering. For more detailed information about Flex, see the dedicated [Flex databases](/content/operate/rs/8.0/flex/_index.md) section instead. {{}} ## Manage the storage engine @@ -26,7 +26,8 @@ Auto Tiering supports two storage engines: Flex supports Speedb only. -{{}}Switching between storage engines requires guidance by Redis Support or your Account Manager.{{}} +> [!WARNING] +> Switching between storage engines requires guidance by Redis Support or your Account Manager. ### Change the storage engine @@ -50,7 +51,8 @@ Flex supports Speedb only. rladmin restart db { db: | } ``` -{{}} We recommend restarting your database at times with low usage and avoiding peak hours. For databases without persistence enabled, we also recommend using export to backup your database first.{{}} +> [!NOTE] +> We recommend restarting your database at times with low usage and avoiding peak hours. For databases without persistence enabled, we also recommend using export to backup your database first. ## Monitor the storage engine @@ -72,4 +74,4 @@ Versions of Redis Software 7.2 and later provide a metric called `bdb_bigstore_s bdb_bigstore_shard_count{bdb="1",cluster="mycluster.local",driver="speedb"} 2.0 ``` -For more about metrics for Redis Software’s integration with Prometheus, see [Prometheus integration]({{< relref "/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions" >}}). +For more about metrics for Redis Software’s integration with Prometheus, see [Prometheus integration](/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions.md). diff --git a/content/operate/rs/8.0/databases/import-export/export-data.md b/content/operate/rs/8.0/databases/import-export/export-data.md index b8b5e165da..caa71f4844 100644 --- a/content/operate/rs/8.0/databases/import-export/export-data.md +++ b/content/operate/rs/8.0/databases/import-export/export-data.md @@ -51,7 +51,7 @@ To export data from a database using the Cluster Manager UI: Data can be exported to a local mount point, transferred to [a URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) using FTP/SFTP, or stored on cloud provider storage. -When saved to a local mount point or a cloud provider, export locations need to be available to [the group and user]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md" >}}) running Redis Software, `redislabs:redislabs` by default. +When saved to a local mount point or a cloud provider, export locations need to be available to [the group and user](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) running Redis Software, `redislabs:redislabs` by default. Redis Software needs the ability to view permissions and update objects in the storage location. Implementation details vary according to the provider and your configuration. To learn more, consult the provider's documentation. @@ -165,7 +165,7 @@ You can also connect to a storage service that uses the S3 protocol but is not h To connect to an S3-compatible storage location: -1. Configure the S3 URL with [`rladmin cluster config`]({{}}): +1. Configure the S3 URL with [`rladmin cluster config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md): ```sh rladmin cluster config s3_url diff --git a/content/operate/rs/8.0/databases/import-export/flush.md b/content/operate/rs/8.0/databases/import-export/flush.md index ff428529b3..1dc0beacdb 100644 --- a/content/operate/rs/8.0/databases/import-export/flush.md +++ b/content/operate/rs/8.0/databases/import-export/flush.md @@ -18,10 +18,9 @@ you can flush the data from the database. You can use the Cluster Manager UI to flush data from Active-Active databases. -{{< warning title="Data Loss Warning" >}} -The flush command deletes ALL in-memory and persistence data in the database. -We recommend that you [back up your database]({{< relref "/operate/rs/8.0/databases/import-export/schedule-backups.md" >}}) before you flush the data. -{{< /warning >}} +> [!WARNING] Data Loss Warning +> The flush command deletes ALL in-memory and persistence data in the database. +> We recommend that you [back up your database](/content/operate/rs/8.0/databases/import-export/schedule-backups.md) before you flush the data. ## Flush data from a database @@ -39,9 +38,8 @@ Example: redis-cli -h redis-12345.cluster.local -p 9443 -a xyz flushall ``` -{{< note >}} -Port 9443 is the default [port configuration]({{< relref "/operate/rs/8.0/networking/port-configurations#https://docs.redis.com/latest/rs/networking/port-configurations#ports-and-port-ranges-used-by-redis-enterprise-software" >}}). -{{< /note >}} +> [!NOTE] +> Port 9443 is the default [port configuration](/content/operate/rs/8.0/networking/port-configurations.md#ports-and-port-ranges-used-by-redis-software). ## Flush data from an OSS Cluster API database @@ -55,7 +53,7 @@ Follow these steps to flush all data from an OSS Cluster API database: dig +noall +answer ``` -2. Connect to each IP address using [`redis-cli`]({{}}) and run the [`FLUSHDB`]({{}}) command: +2. Connect to each IP address using [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) and run the [`FLUSHDB`](/content/commands/flushdb.md) command: ```sh redis-cli -h -p flushdb @@ -87,9 +85,8 @@ This ensures that all shards in the OSS Cluster API database are flushed properl When you flush an Active-Active database (formerly known as CRDB), all of the replicas flush their data at the same time. -{{< note >}} -Run flush from only one participating cluster. The flush operation propagates to all other clusters automatically. -{{< /note >}} +> [!NOTE] +> Run flush from only one participating cluster. The flush operation propagates to all other clusters automatically. To flush data from an Active-Active database, use one of the following methods: @@ -154,13 +151,13 @@ To flush data from an Active-Active database, use one of the following methods: - REST API - 1. To find the ID of the Active-Active database, use [`GET /v1/crdbs`]({{< relref "/operate/rs/8.0/references/rest-api/requests/crdbs#get-all-crdbs" >}}): + 1. To find the ID of the Active-Active database, use [`GET /v1/crdbs`](/content/operate/rs/8.0/references/rest-api/requests/crdbs/_index.md#get-all-crdbs): ```sh GET https://[host][:port]/v1/crdbs ``` - 1. To flush the Active-Active database, use [`PUT /v1/crdbs/{guid}/flush`]({{< relref "/operate/rs/8.0/references/rest-api/requests/crdbs/flush#put-crdbs-flush" >}}): + 1. To flush the Active-Active database, use [`PUT /v1/crdbs/{guid}/flush`](/content/operate/rs/8.0/references/rest-api/requests/crdbs/flush.md#put-crdbs-flush): ```sh PUT https://[host][:port]/v1/crdbs//flush @@ -168,7 +165,7 @@ To flush data from an Active-Active database, use one of the following methods: The command output contains the task ID of the flush task. - 1. To check the status of the flush task, use [`GET /v1/crdb_tasks`]({{< relref "/operate/rs/8.0/references/rest-api/requests/crdb_tasks#get-crdb_task" >}}): + 1. To check the status of the flush task, use [`GET /v1/crdb_tasks`](/content/operate/rs/8.0/references/rest-api/requests/crdb_tasks/_index.md#get-crdb_task): ```sh GET https://[host][:port]/v1/crdb_tasks/ diff --git a/content/operate/rs/8.0/databases/import-export/import-data.md b/content/operate/rs/8.0/databases/import-export/import-data.md index 5871810cb0..19e7ffe9fa 100644 --- a/content/operate/rs/8.0/databases/import-export/import-data.md +++ b/content/operate/rs/8.0/databases/import-export/import-data.md @@ -10,15 +10,14 @@ linktitle: Import data weight: 10 url: '/operate/rs/8.0/databases/import-export/import-data/' --- -You can import, [export]({{< relref "/operate/rs/8.0/databases/import-export/export-data" >}}), -or [backup]({{< relref "/operate/rs/8.0/databases/import-export/schedule-backups" >}}) +You can import, [export](/content/operate/rs/8.0/databases/import-export/export-data.md), +or [backup](/content/operate/rs/8.0/databases/import-export/schedule-backups.md) files of a specific Redis Software database to restore data. You can either import from a single file or from multiple files, such as when you want to import from a backup of a clustered database. -{{< warning >}} -Importing data erases all existing content in the database. -{{< /warning >}} +> [!WARNING] +> Importing data erases all existing content in the database. ## Import data into a database @@ -36,7 +35,7 @@ To import data into a database using the Cluster Manager UI: ### REST API method -To import data into a database using the REST API, send an [import database request]({{}}): +To import data into a database using the REST API, send an [import database request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/import.md): ```sh POST /v1/bdbs//actions/import @@ -73,7 +72,7 @@ See the following storage location sections for REST API request examples for ea Data can be imported from a local mount point, transferred to [a URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) using FTP/SFTP, or stored on cloud provider storage. -When importing from a local mount point or a cloud provider, import locations need to be available to [the group and user]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md" >}}) running Redis Software, `redislabs:redislabs` by default. +When importing from a local mount point or a cloud provider, import locations need to be available to [the group and user](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) running Redis Software, `redislabs:redislabs` by default. Redis Software needs the ability to view objects in the storage location. Implementation details vary according to the provider and your configuration. To learn more, consult the provider's documentation. @@ -106,7 +105,7 @@ Example: `ftp://username:password@10.1.1.1/home/backups/.rdb` Select **Add path** to add another import file path. -Example [import database REST API request]({{}}): +Example [import database REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/import.md): ```sh POST /v1/bdbs//actions/import @@ -150,7 +149,7 @@ As of version 6.2.12, Redis Software reads files directly from the mount point u Select **Add path** to add another import file path. -Example [import database REST API request]({{}}): +Example [import database REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/import.md): ```sh POST /v1/bdbs//actions/import @@ -202,7 +201,7 @@ Example: `sftp://username:password@10.1.1.1/home/backups/[filename].rdb` Select **Add path** to add another import file path. -Example [import database REST API request]({{}}): +Example [import database REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/import.md): ```sh POST /v1/bdbs//actions/import @@ -237,7 +236,7 @@ You can also connect to a storage service that uses the S3 protocol but is not h To connect to an S3-compatible storage location: -1. Configure the S3 URL with [`rladmin cluster config`]({{}}): +1. Configure the S3 URL with [`rladmin cluster config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md): ```sh rladmin cluster config s3_url @@ -253,7 +252,7 @@ To connect to an S3-compatible storage location: Replace `` with the location of the S3 CA certificate `ca.pem`. -Example [import database REST API request]({{}}): +Example [import database REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/import.md): ```sh POST /v1/bdbs//actions/import @@ -294,7 +293,7 @@ In the Redis Software Cluster Manager UI, when you enter the import location det - In the **Private key** field, enter the `private_key` from the service account key. Replace `\n` with new lines. -Example [import database REST API request]({{}}): +Example [import database REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/import.md): ```sh POST /v1/bdbs//actions/import @@ -336,7 +335,7 @@ In the Redis Software Cluster Manager UI, when you enter the import location det - In the **Azure Account Key** field, enter the storage account key. -Example [import database REST API request]({{}}): +Example [import database REST API request](/content/operate/rs/8.0/references/rest-api/requests/bdbs/actions/import.md): ```sh POST /v1/bdbs//actions/import @@ -358,7 +357,7 @@ POST /v1/bdbs//actions/import When importing data into an Active-Active database, there are two options: -- [Flush all data]({{< relref "/operate/rs/8.0/databases/import-export/flush#flush-data-from-an-active-active-database" >}}) from the Active-Active database, then import the data into the database. +- [Flush all data](/content/operate/rs/8.0/databases/import-export/flush.md#flush-data-from-an-active-active-database) from the Active-Active database, then import the data into the database. - Import data but merge it into the existing database. Because Active-Active databases have a numeric counter data type, diff --git a/content/operate/rs/8.0/databases/import-export/migrate-to-active-active.md b/content/operate/rs/8.0/databases/import-export/migrate-to-active-active.md index 75c34ae909..8c7917f566 100644 --- a/content/operate/rs/8.0/databases/import-export/migrate-to-active-active.md +++ b/content/operate/rs/8.0/databases/import-export/migrate-to-active-active.md @@ -11,8 +11,8 @@ weight: $weight url: '/operate/rs/8.0/databases/import-export/migrate-to-active-active/' --- -If you have data in a single-region Redis Software database that you want to migrate to an [Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active" >}}), -you'll need to create a new Active-Active database and migrate the data into the new database as a [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}) the existing database. +If you have data in a single-region Redis Software database that you want to migrate to an [Active-Active database](/content/operate/rs/8.0/databases/active-active/_index.md), +you'll need to create a new Active-Active database and migrate the data into the new database as a [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) the existing database. This process will gradually populate the data in the Active-Active database. Before data migration starts, all data is flushed from the Active-Active database. @@ -27,7 +27,7 @@ When data migration is finished, turn off migration and connect your application - During the migration, any applications that connect to the Active-Active database must be **read-only** to ensure the dataset is identical to the source database during the migration process. However, you can continue to write to the source database during the migration process. - If you used the mDNS protocol for the cluster name (FQDN), -the [client mDNS prerequisites]({{< relref "/operate/rs/8.0/networking/mdns" >}}) must be met in order to communicate with other clusters. +the [client mDNS prerequisites](/content/operate/rs/8.0/networking/mdns.md) must be met in order to communicate with other clusters. ## Migrate from a Redis Software cluster @@ -37,7 +37,7 @@ You can migrate a Redis Software database from the [same cluster](#migrate-from- To migrate a database to Active-Active in the same Redis Software cluster: -1. Create a new Active-Active database. For prerequisites and detailed instructions, see [Create an Active-Active geo-replicated database]({{< relref "/operate/rs/8.0/databases/active-active/create" >}}). +1. Create a new Active-Active database. For prerequisites and detailed instructions, see [Create an Active-Active geo-replicated database](/content/operate/rs/8.0/databases/active-active/create.md). 1. After the Active-Active database is active, click **Edit** on the **Configuration** screen. @@ -59,10 +59,9 @@ To migrate a database to Active-Active in the same Redis Software cluster: ### Migrate from a different cluster -{{< note >}} -For a source database on a different Redis Software cluster, -you can [compress the replication data]({{< relref "/operate/rs/8.0/databases/import-export/replica-of#data-compression-for-replica-of" >}}) to save bandwidth. -{{< /note >}} +> [!NOTE] +> For a source database on a different Redis Software cluster, +> you can [compress the replication data](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md#data-compression-for-replica-of) to save bandwidth. To migrate a database to Active-Active in different Redis Software clusters: @@ -82,7 +81,7 @@ To migrate a database to Active-Active in different Redis Software clusters: 1. Sign in to the Cluster Manager UI of the destination database’s cluster. -1. Create a new Active-Active database. For prerequisites and detailed instructions, see [Create an Active-Active geo-replicated database]({{< relref "/operate/rs/8.0/databases/active-active/create" >}}). +1. Create a new Active-Active database. For prerequisites and detailed instructions, see [Create an Active-Active geo-replicated database](/content/operate/rs/8.0/databases/active-active/create.md). 1. After the Active-Active database is active, click **Edit** on the **Configuration** screen. @@ -106,7 +105,7 @@ To migrate a database to Active-Active in different Redis Software clusters: To migrate a Redis Open Source database to Active-Active: -1. Create a new Active-Active database. For prerequisites and detailed instructions, see [Create an Active-Active geo-replicated database]({{< relref "/operate/rs/8.0/databases/active-active/create" >}}). +1. Create a new Active-Active database. For prerequisites and detailed instructions, see [Create an Active-Active geo-replicated database](/content/operate/rs/8.0/databases/active-active/create.md). 1. After the Active-Active database is active, click **Edit** on the **Configuration** screen. @@ -144,9 +143,9 @@ To migrate a Redis Open Source database to Active-Active: 1. Wait until the migration is complete, indicated by the **Status** _Synced_. - {{}} -Migration can take minutes to hours to complete depending on the dataset size and network quality. - {{}} + > [!NOTE] + > Migration can take minutes to hours to complete depending on the dataset size and network quality. + > 1. On the Active-Active database's **Configuration** screen, click **Edit**. diff --git a/content/operate/rs/8.0/databases/import-export/replica-of/_index.md b/content/operate/rs/8.0/databases/import-export/replica-of/_index.md index 3d65c89ab4..93f45312b6 100644 --- a/content/operate/rs/8.0/databases/import-export/replica-of/_index.md +++ b/content/operate/rs/8.0/databases/import-export/replica-of/_index.md @@ -22,19 +22,17 @@ all write commands are synchronized from the sources to the destination. Replica Of lets you distribute the read load of your application across multiple databases or synchronize the database, either within Redis Software or external to Redis Software, to another database. -{{< warning >}} -Do not write directly to a Replica Of destination database, because it can result in replication errors, data inconsistencies, or data loss. See [Enforce read-only access]({{}}) for details and instructions. -{{< /warning >}} +> [!WARNING] +> Do not write directly to a Replica Of destination database, because it can result in replication errors, data inconsistencies, or data loss. See [Enforce read-only access](/content/operate/rs/8.0/databases/import-export/replica-of/create.md#enforce-read-only-access) for details and instructions. -You can [create Active-Passive]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/create.md" >}}) databases on Redis Software or Redis Cloud. +You can [create Active-Passive](/content/operate/rs/8.0/databases/import-export/replica-of/create.md) databases on Redis Software or Redis Cloud. -[Active-Active Geo-Distribution (CRDB)]({{< relref "/operate/rs/8.0/databases/active-active" >}}) +[Active-Active Geo-Distribution (CRDB)](/content/operate/rs/8.0/databases/active-active/_index.md) provides these benefits and also provides write access to all of the database replicas. -{{< warning >}} -Configuring a database as a replica of the database that it replicates -creates a cyclical replication and is not supported. -{{< /warning >}} +> [!WARNING] +> Configuring a database as a replica of the database that it replicates +> creates a cyclical replication and is not supported. The Replica Of is defined in the context of the destination database by specifying the source databases. @@ -50,13 +48,12 @@ result, commands that were executed in a certain order when compared across source databases might be executed in a different order on the destination database. -{{< note >}} -The Replica Of feature should not be confused with the -in-memory [Database -replication]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}) -feature, which is used for creating a master / replica configuration that -enables ensuring database high-availability. -{{< /note >}} +> [!NOTE] +> The Replica Of feature should not be confused with the +> in-memory [Database +> replication](/content/operate/rs/8.0/databases/durability-ha/replication.md) +> feature, which is used for creating a master / replica configuration that +> enables ensuring database high-availability. ## Replication process @@ -105,11 +102,10 @@ the source was executed on the destination. The system also displays the destination database status as an aggregate of the statuses of all the sources. -{{< note >}} -If you encounter issues with the Replica Of process, refer -to the troubleshooting section [Replica Of repeatedly -fails]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/replicaof-repeatedly-fails.md" >}}). -{{< /note >}} +> [!NOTE] +> If you encounter issues with the Replica Of process, refer +> to the troubleshooting section [Replica Of repeatedly +> fails](/content/operate/rs/8.0/databases/import-export/replica-of/replicaof-repeatedly-fails.md). ### Synchronization errors @@ -205,27 +201,25 @@ For example, if the database updates for the destination databases that are stored by the destination database in a synchronization backlog exceed their allocated memory, the source database starts a full sync. -{{% warning %}} -When you failover to the destination database for write operations, -make sure that you disable **Replica Of** before you direct clients to the destination database. -This avoids a full sync that can overwrite your data. -{{% /warning %}} +> [!WARNING] +> When you failover to the destination database for write operations, +> make sure that you disable **Replica Of** before you direct clients to the destination database. +> This avoids a full sync that can overwrite your data. ## Upgrade order -When you [upgrade]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database" >}}) a Replica Of database, upgrade the destination database before the source database to avoid possible replication failures. +When you [upgrade](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md) a Replica Of database, upgrade the destination database before the source database to avoid possible replication failures. ## Active-Passive replication backlog -In addition to the [database replication backlog]({{< relref "/operate/rs/8.0/databases/durability-ha/replication#database-replication-backlog" >}}), active-passive databases maintain a replication backlog (per shard) to synchronize the database instances between clusters. +In addition to the [database replication backlog](/content/operate/rs/8.0/databases/durability-ha/replication.md#database-replication-backlog), active-passive databases maintain a replication backlog (per shard) to synchronize the database instances between clusters. By default, the replication backlog is set to one percent (1%) of the database size divided by the database number of shards and ranges between 1MB to 250MB per shard. -Use the [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) utility to control the size of the replication backlog. You can set it to `auto` or set a specific size. +Use the [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) utility to control the size of the replication backlog. You can set it to `auto` or set a specific size. For an Active-Passive database: ```text rladmin tune db repl_backlog ``` -{{}} -On an Active-Passive database, the replication backlog configuration applies to both the replication backlog for shards synchronization and for synchronization of database instances between clusters. -{{}} +> [!NOTE] +> On an Active-Passive database, the replication backlog configuration applies to both the replication backlog for shards synchronization and for synchronization of database instances between clusters. diff --git a/content/operate/rs/8.0/databases/import-export/replica-of/create.md b/content/operate/rs/8.0/databases/import-export/replica-of/create.md index 99a127df35..9f9a055e73 100644 --- a/content/operate/rs/8.0/databases/import-export/replica-of/create.md +++ b/content/operate/rs/8.0/databases/import-export/replica-of/create.md @@ -42,17 +42,16 @@ You can configure a database as a Replica Of, where the source database is in on The order of the multiple Replica Of sources has no material impact on replication. -For best results when using the [Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS) (mDNS) protocol to resolve the fully-qualified domain name (FQDN) of the cluster, verify that your client connections meet the [client mDNS prerequisites]({{< relref "/operate/rs/8.0/networking/mdns.md" >}}). +For best results when using the [Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS) (mDNS) protocol to resolve the fully-qualified domain name (FQDN) of the cluster, verify that your client connections meet the [client mDNS prerequisites](/content/operate/rs/8.0/networking/mdns.md). -{{< note >}} -As long as Replica Of is enabled, data in the target database will not expire and will not be evicted regardless of the set [data eviction policy]({{< relref "/operate/rs/8.0/databases/memory-performance/eviction-policy.md" >}}). -{{< /note >}} +> [!NOTE] +> As long as Replica Of is enabled, data in the target database will not expire and will not be evicted regardless of the set [data eviction policy](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md). ### Same Redis Software cluster {#same-cluster} To configure a Replica Of database in the same Redis Software cluster as the source database: -1. [Create a new database]({{< relref "/operate/rs/8.0/databases/create" >}}) or select an existing database from the **Databases** screen. +1. [Create a new database](/content/operate/rs/8.0/databases/create.md) or select an existing database from the **Databases** screen. 1. For an existing database, select **Edit** from the **Configuration** tab. @@ -74,9 +73,9 @@ To configure a Replica Of database in a different Redis Software cluster from th 1. Ensure the source database's port is allowed through firewalls between the clusters and can be accessed by the destination cluster's nodes. - {{}} -Ports 10000-19999 are reserved for database traffic. See [Network port configurations]({{}}) for more information about ports. - {{}} + > [!NOTE] + > Ports 10000-19999 are reserved for database traffic. See [Network port configurations](/content/operate/rs/8.0/networking/port-configurations.md) for more information about ports. + > 1. Sign in to the Cluster Manager UI of the cluster hosting the source database. @@ -94,7 +93,7 @@ Ports 10000-19999 are reserved for database traffic. See [Network port configura 1. Sign in to the Cluster Manager UI of the destination database's cluster. -1. [Create a new database]({{< relref "/operate/rs/8.0/databases/create" >}}) or select an existing database from the **Databases** screen. +1. [Create a new database](/content/operate/rs/8.0/databases/create.md) or select an existing database from the **Databases** screen. 1. For an existing database, select **Edit** from the **Configuration** tab. @@ -110,13 +109,13 @@ Ports 10000-19999 are reserved for database traffic. See [Network port configura 1. Select **Save**. -For source databases on different clusters, you can [compress replication data]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/#data-compression-for-replica-of" >}}) to save bandwidth. +For source databases on different clusters, you can [compress replication data](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md#data-compression-for-replica-of) to save bandwidth. ### Redis Open Source cluster {#source-available-cluster} To use a database from a Redis Open Source cluster as a Replica Of source: -1. [Create a new database]({{< relref "/operate/rs/8.0/databases/create" >}}) or select an existing database from the **Databases** screen. +1. [Create a new database](/content/operate/rs/8.0/databases/create.md) or select an existing database from the **Databases** screen. 1. For an existing database, select **Edit** from the **Configuration** tab. @@ -150,7 +149,7 @@ To use a database from a Redis Open Source cluster as a Replica Of source: Writing directly to a Replica Of destination database is not supported and can result in replication errors, data inconsistencies, or data loss. -As of Redis Software version 7.22.0-95, you can set `replica_read_only` to `true` when you [create a Replica Of database]({{}}) using the REST API. When enabled, the destination database rejects all write operations to prevent accidental writes. Replication remains one-way from source to destination. You cannot change `replica_read_only` after database creation. +As of Redis Software version 7.22.0-95, you can set `replica_read_only` to `true` when you [create a Replica Of database](/content/operate/rs/references/rest-api/requests/bdbs/_index.md#post-bdbs-v2) using the REST API. When enabled, the destination database rejects all write operations to prevent accidental writes. Replication remains one-way from source to destination. You cannot change `replica_read_only` after database creation. To enforce read-only access when you create a Replica Of destination database: @@ -169,7 +168,7 @@ POST https://:/v2/bdbs } ``` -For additional database configuration fields, see the [BDB object]({{}}) reference. +For additional database configuration fields, see the [BDB object](/content/operate/rs/8.0/references/rest-api/objects/bdb/_index.md) reference. For Redis Software versions earlier than 7.22.0-95, there is no product-level enforcement preventing writes to the destination database, so you should configure your application to direct all write operations exclusively to the source database. diff --git a/content/operate/rs/8.0/databases/import-export/schedule-backups.md b/content/operate/rs/8.0/databases/import-export/schedule-backups.md index 77f568ebb0..ff52498fbf 100644 --- a/content/operate/rs/8.0/databases/import-export/schedule-backups.md +++ b/content/operate/rs/8.0/databases/import-export/schedule-backups.md @@ -15,7 +15,7 @@ Periodic backups provide a way to restore data with minimal data loss. With Red As of v6.2.8, you can specify the start time in UTC for 24-hour or 12-hour backups. -To make an on-demand backup, [export your data]({{< relref "/operate/rs/8.0/databases/import-export/export-data.md" >}}). +To make an on-demand backup, [export your data](/content/operate/rs/8.0/databases/import-export/export-data.md). You can schedule backups to a variety of locations, including: @@ -26,19 +26,16 @@ You can schedule backups to a variety of locations, including: - Azure Blob Storage - Google Cloud Storage -The backup process creates compressed (.gz) RDB files that you can [import into a database]({{< relref "/operate/rs/8.0/databases/import-export/import-data.md" >}}). If the database name is longer than 30 characters, only the first 30 are used in backup file names. +The backup process creates compressed (.gz) RDB files that you can [import into a database](/content/operate/rs/8.0/databases/import-export/import-data.md). If the database name is longer than 30 characters, only the first 30 are used in backup file names. When you back up a database configured for database clustering, Redis Software creates a backup file for each shard in the configuration. All backup files are copied to the storage location. -{{< note >}} - -- Make sure that you have enough space available in your storage location. - If there is not enough space in the backup location, the backup fails. -- The backup configuration only applies to the database it is configured on. -- To limit the parallel backup for shards, set both [`tune cluster max_simultaneous_backups`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}) and [`tune node max_redis_forks`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-node" >}}). `max_simultaneous_backups` is set to 4 by default. - -{{< /note >}} +> [!NOTE] +> - Make sure that you have enough space available in your storage location. +> If there is not enough space in the backup location, the backup fails. +> - The backup configuration only applies to the database it is configured on. +> - To limit the parallel backup for shards, set both [`tune cluster max_simultaneous_backups`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster) and [`tune node max_redis_forks`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-node). `max_simultaneous_backups` is set to 4 by default. ## Schedule periodic backups @@ -104,7 +101,7 @@ For help with specific backup issues, [contact support](https://redis.com/compan Database backups can be saved to a local mount point, transferred to [a URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) using FTP/SFTP, or stored on cloud provider storage. -When saved to a local mount point or a cloud provider, backup locations need to be available to [the group and user]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md" >}}) running Redis Software, `redislabs:redislabs` by default. +When saved to a local mount point or a cloud provider, backup locations need to be available to [the group and user](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) running Redis Software, `redislabs:redislabs` by default. Redis Software needs the ability to view permissions and update objects in the storage location. Implementation details vary according to the provider and your configuration. To learn more, consult the provider's documentation. @@ -214,7 +211,7 @@ You can also connect to a storage service that uses the S3 protocol but is not h To connect to an S3-compatible storage location: -1. Configure the S3 URL with [`rladmin cluster config`]({{}}): +1. Configure the S3 URL with [`rladmin cluster config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md): ```sh rladmin cluster config s3_url diff --git a/content/operate/rs/8.0/databases/memory-performance/_index.md b/content/operate/rs/8.0/databases/memory-performance/_index.md index 334b5e4b3a..e45d337b38 100644 --- a/content/operate/rs/8.0/databases/memory-performance/_index.md +++ b/content/operate/rs/8.0/databases/memory-performance/_index.md @@ -17,11 +17,11 @@ architecture to help optimize storage and performance. ## Memory limits -Database memory limits define the maximum size your database can reach across all database replicas and [shards]({{< relref "/glossary#letter-s" >}}) on the cluster. Your memory limit will also determine the number of shards you'll need. +Database memory limits define the maximum size your database can reach across all database replicas and [shards](/content/glossary/_index.md#letter-s) on the cluster. Your memory limit will also determine the number of shards you'll need. Besides your dataset, the memory limit must also account for replication, Active-Active overhead, and module overhead, and a number of other factors. These can significantly increase your database size, sometimes increasing it by four times or more. -For more information on memory limits, see [Database memory limits]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit.md" >}}). +For more information on memory limits, see [Database memory limits](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md). ## Eviction policies @@ -29,7 +29,7 @@ When a database exceeds its memory limit, eviction policies determine which data The default eviction policy for databases is `volatile-lru` which evicts the least recently used keys out of all keys with the `expire` field set. The default for Active-Active databases is `noeviction`. -For more information, see [eviction policies]({{< relref "/operate/rs/8.0/databases/memory-performance/eviction-policy.md" >}}). +For more information, see [eviction policies](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md). ## Database persistence @@ -41,13 +41,13 @@ Append-only files (AoF) keep a record of data changes and writes each change to Snapshots capture all the data as it exists in one moment in time and writes it to disk, allowing you to recover the entire dataset as it existed at that moment in time. -For more info on data persistence see [Database persistence with Redis Software]({{< relref "/operate/rs/8.0/databases/configure/database-persistence.md" >}}) or [Durable Redis](https://redis.com/redis-enterprise/technology/durable-redis/). +For more info on data persistence see [Database persistence with Redis Software](/content/operate/rs/8.0/databases/configure/database-persistence.md) or [Durable Redis](https://redis.com/redis-enterprise/technology/durable-redis/). ## Auto Tiering -By default, Redis Software stores your data entirely in [RAM](https://en.wikipedia.org/wiki/Random-access_memory) for improved performance. [Redis Flex and Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}}) enable your data to span both RAM and [SSD](https://en.wikipedia.org/wiki/Solid-state_drive) storage ([flash memory](https://en.wikipedia.org/wiki/Flash_memory)). Redis Flex tiers both keys and values to flash storage, ensuring that warm (infrequently accessed) data does not consume RAM. Auto Tiering stores keys in RAM but manages the location of their values. Frequently used (hot) data is stored in RAM, but infrequently used (warm) data is moved to flash memory. This saves on expensive RAM space, which gives you comparable performance at a lower cost for large datasets. +By default, Redis Software stores your data entirely in [RAM](https://en.wikipedia.org/wiki/Random-access_memory) for improved performance. [Redis Flex and Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md) enable your data to span both RAM and [SSD](https://en.wikipedia.org/wiki/Solid-state_drive) storage ([flash memory](https://en.wikipedia.org/wiki/Flash_memory)). Redis Flex tiers both keys and values to flash storage, ensuring that warm (infrequently accessed) data does not consume RAM. Auto Tiering stores keys in RAM but manages the location of their values. Frequently used (hot) data is stored in RAM, but infrequently used (warm) data is moved to flash memory. This saves on expensive RAM space, which gives you comparable performance at a lower cost for large datasets. -For more info, see [Redis Flex and Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}}). +For more info, see [Redis Flex and Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md). ## Shard placement @@ -60,7 +60,7 @@ Redis Software has two shard placement policies available: - **dense**: puts as many shards as possible on the smallest number of nodes - **sparse**: spread the shards across as many nodes as possible -For more info about the shard placement policy, see [Shard placement policy]({{< relref "/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md" >}}) +For more info about the shard placement policy, see [Shard placement policy](/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md) ## Metrics @@ -68,7 +68,7 @@ From the Redis Software Cluster Manager UI, you can monitor the performance of y With the Redis Software API, you can also integrate Redis Software metrics into other monitoring environments, such as Prometheus. -For more info about monitoring with Redis Software, see [Monitoring with metrics and alerts]({{< relref "/operate/rs/8.0/monitoring" >}}), and [Memory statistics]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit#memory-metrics" >}}). +For more info about monitoring with Redis Software, see [Monitoring with metrics and alerts](/content/operate/rs/8.0/monitoring/_index.md), and [Memory statistics](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md#memory-metrics). ## Scaling databases @@ -109,6 +109,6 @@ accesses to the same value is fast, once the value is in RAM. ## Client-side caching -Client-side caching allows Redis clients to store a subset of data in a local cache and avoid sending repeated requests to the Redis database. When used to cache frequently accessed data, this technique can improve performance by decreasing network traffic, latency, and load on the database. For more information about client-side caching, see the [client-side caching introduction]({{}}). +Client-side caching allows Redis clients to store a subset of data in a local cache and avoid sending repeated requests to the Redis database. When used to cache frequently accessed data, this technique can improve performance by decreasing network traffic, latency, and load on the database. For more information about client-side caching, see the [client-side caching introduction](/content/develop/clients/client-side-caching.md). -Redis Software supports client-side caching for databases with Redis versions 7.4 and later. See [Client-side caching compatibility with Redis Software]({{}}) for more information about compatibility and configuration options. +Redis Software supports client-side caching for databases with Redis versions 7.4 and later. See [Client-side caching compatibility with Redis Software](/content/operate/rs/8.0/references/compatibility/client-side-caching.md) for more information about compatibility and configuration options. diff --git a/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md b/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md index 7a784374cf..b9af68696b 100644 --- a/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md +++ b/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md @@ -36,7 +36,7 @@ In clustered databases, each shard tracks its own memory usage and triggers evic `volatile-lru` is the default eviction policy for most databases. -The default policy for [Active-Active databases]({{< relref "/operate/rs/8.0/databases/active-active" >}}) is _noeviction_ policy. +The default policy for [Active-Active databases](/content/operate/rs/8.0/databases/active-active/_index.md) is _noeviction_ policy. ## Active-Active database eviction @@ -52,15 +52,14 @@ The eviction policy mechanism for Active-Active databases starts earlier than fo In case of network issues between Active-Active instances, memory can be freed only when all instances are in sync. If there is no communication between participating clusters, it can result in eviction of all keys and the instance reaching an out-of-memory state. -{{< note >}} -Data eviction policies are not supported for Active-Active databases with Auto Tiering. -{{< /note >}} +> [!NOTE] +> Data eviction policies are not supported for Active-Active databases with Auto Tiering. ## Avoid data eviction To avoid data eviction, make sure your database is large enough to hold required values. -For larger databases, consider using [Redis Flex or Auto Tiering ]({{< relref "/operate/rs/8.0/databases/flash/" >}}). +For larger databases, consider using [Redis Flex or Auto Tiering ](/content/operate/rs/8.0/databases/flash/_index.md). Auto Tiering stores actively-used data (also known as _hot data_) in RAM and the remaining data in flash memory (SSD). This lets you retain more data while ensuring the fastest access to the most critical data. diff --git a/content/operate/rs/8.0/databases/memory-performance/memory-limit.md b/content/operate/rs/8.0/databases/memory-performance/memory-limit.md index f67638381b..7e79c29a5a 100644 --- a/content/operate/rs/8.0/databases/memory-performance/memory-limit.md +++ b/content/operate/rs/8.0/databases/memory-performance/memory-limit.md @@ -26,15 +26,15 @@ Factors to consider when sizing your database: - **dataset size**: you want your limit to be above your dataset size to leave room for overhead. - **database throughput**: high throughput needs more shards, leading to a higher memory limit. -- [**modules**]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}): using modules with your database consumes more memory. -- [**database clustering**]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering.md" >}}): enables you to spread your data into shards across multiple nodes. -- [**database replication**]({{< relref "/operate/rs/8.0/databases/durability-ha/replication.md" >}}): enabling replication doubles memory consumption. +- [**modules**](/content/operate/oss_and_stack/stack-with-enterprise/_index.md): using modules with your database consumes more memory. +- [**database clustering**](/content/operate/rs/8.0/databases/durability-ha/clustering.md): enables you to spread your data into shards across multiple nodes. +- [**database replication**](/content/operate/rs/8.0/databases/durability-ha/replication.md): enabling replication doubles memory consumption. Additional factors for Active-Active databases: -- [**Active-Active replication**]({{< relref "/operate/rs/8.0/databases/active-active/_index.md" >}}): enabling Active-Active replication requires double the memory of regular replication, which can be up to two times (2x) the original data size per instance. -- [**database replication backlog**]({{< relref "/operate/rs/8.0/databases/active-active/manage#replication-backlog/" >}}) for synchronization between shards. By default, this is set to 1% of the database size. -- [**Active-Active replication backlog**]({{< relref "/operate/rs/8.0/databases/active-active/manage.md" >}}) for synchronization between clusters. By default, this is set to 1% of the database size. +- [**Active-Active replication**](/content/operate/rs/8.0/databases/active-active/_index.md): enabling Active-Active replication requires double the memory of regular replication, which can be up to two times (2x) the original data size per instance. +- [**database replication backlog**](/content/operate/rs/8.0/databases/active-active/manage.md#replication-backlog/) for synchronization between shards. By default, this is set to 1% of the database size. +- [**Active-Active replication backlog**](/content/operate/rs/8.0/databases/active-active/manage.md) for synchronization between clusters. By default, this is set to 1% of the database size. It's also important to know Active-Active databases have a lower threshold for activating the eviction policy, because it requires propagation to all participating clusters. The eviction policy starts to evict keys when one of the Active-Active instances reaches 80% of its memory limit. @@ -42,7 +42,7 @@ Additional factors for databases with Auto Tiering enabled: - The available flash space must be greater than or equal to the total database size (RAM+Flash). The extra space accounts for write buffers and [write amplification](https://en.wikipedia.org/wiki/Write_amplification). -- [**database persistence**]({{< relref "/operate/rs/8.0/databases/configure/database-persistence.md" >}}): Auto Tiering uses dual database persistence where both the primary and replica shards persist to disk. This may add some processor and network overhead, especially in cloud configurations with network attached storage. +- [**database persistence**](/content/operate/rs/8.0/databases/configure/database-persistence.md): Auto Tiering uses dual database persistence where both the primary and replica shards persist to disk. This may add some processor and network overhead, especially in cloud configurations with network attached storage. ## What happens when Redis Software is low on RAM? @@ -50,9 +50,9 @@ Redis Software manages node memory so that data is entirely in RAM (unless usin Redis Software protects the existing data and prevents the database from being able to store data into the shards. -You can configure the cluster to move the data to another node, or even discard it according to the [eviction policy]({{< relref "/operate/rs/8.0/databases/memory-performance/eviction-policy.md" >}}) set on each database by the administrator. +You can configure the cluster to move the data to another node, or even discard it according to the [eviction policy](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md) set on each database by the administrator. -[Redis Flex and Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}}) +[Redis Flex and Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md) manage memory so that you can also use flash memory (SSD) to store data. ### Order of events for low RAM @@ -65,7 +65,7 @@ out of memory (OOM) messages. 4. If shards can't free memory, Redis Software relies on the OS processes to stop replicas, but tries to avoid stopping primary shards. -We recommend that you have a [monitoring platform]({{< relref "/operate/rs/8.0/monitoring/" >}}) that alerts you before a system gets low on RAM. +We recommend that you have a [monitoring platform](/content/operate/rs/8.0/monitoring/_index.md) that alerts you before a system gets low on RAM. You must maintain sufficient free memory to make sure that you have a healthy Redis Software installation. ### Active-Active replication OOM protection @@ -76,7 +76,7 @@ When a shard in an Active-Active database reaches an out-of-memory (OOM) conditi 1. The syncer process sends commands to the affected shard to trigger garbage collection and free memory. -If the database has no [eviction policy]({{}}) and no keys with [expiration times (TTL)]({{}}), no memory can be freed, which can lead to persistent replication failure and data desynchronization. +If the database has no [eviction policy](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md) and no keys with [expiration times (TTL)](/content/develop/using-commands/keyspace.md#key-expiration), no memory can be freed, which can lead to persistent replication failure and data desynchronization. To reduce this risk, Active-Active databases running Redis version 8.4 or later support a configurable memory buffer through the `replication_oom_threshold_percent` setting. This setting reserves a percentage of memory below `maxmemory` for internal replication operations. @@ -88,7 +88,7 @@ The `replication_oom_threshold_percent` setting works as follows: - If memory reaches `maxmemory` despite the client block, the standard out-of-memory behavior applies to all operations, including replication. -`replication_oom_threshold_percent` defaults to `5`, which means 5% of `maxmemory` is reserved. To adjust the reserved percentage in all participating clusters, use an [update Active-Active database configuration]({{}}) REST API request: +`replication_oom_threshold_percent` defaults to `5`, which means 5% of `maxmemory` is reserved. To adjust the reserved percentage in all participating clusters, use an [update Active-Active database configuration](/content/operate/rs/8.0/references/rest-api/requests/crdbs/_index.md#patch-crdbs) REST API request: ```sh PATCH https://:/v1/crdbs/ @@ -107,9 +107,9 @@ For example, when pushing data at approximately 100 MB/sec into a 2 GB database: - A database with 2 shards could reach 199% of its configured memory limit. - A database with 4 shards could reach around 220% of its configured memory limit. -Databases should return to their configured memory limits after data is removed according to the [eviction policy]({{}}) and [time-to-live (TTL)]({{}}). +Databases should return to their configured memory limits after data is removed according to the [eviction policy](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md) and [time-to-live (TTL)](/content/develop/using-commands/keyspace.md#key-expiration). -If you observe this behavior, consider [monitoring]({{< relref "/operate/rs/8.0/monitoring/" >}}) memory usage and controlling the traffic load on the application side. +If you observe this behavior, consider [monitoring](/content/operate/rs/8.0/monitoring/_index.md) memory usage and controlling the traffic load on the application side. ## Resharding duration factors @@ -125,9 +125,8 @@ Resharding follows a three-stage process for each new shard: When resharding multiple shards (for example, expanding from 4 to 8 shards), this process runs serially for each new shard. The operation completes only after all stages finish for every shard. -{{< note >}} -Resharding is an atomic operation that cannot be interrupted. Database corruption can occur if the process fails or stops unexpectedly. Minimizing resharding time reduces this risk. -{{< /note >}} +> [!NOTE] +> Resharding is an atomic operation that cannot be interrupted. Database corruption can occur if the process fails or stops unexpectedly. Minimizing resharding time reduces this risk. ### Resharding duration factors @@ -147,13 +146,13 @@ The Cluster Manager UI provides metrics that can help you evaluate your memory u - Memory usage - Memory limit -See [console metrics]({{< relref "/operate/rs/8.0/references/metrics" >}}) for more detailed information. +See [console metrics](/content/operate/rs/8.0/references/metrics/_index.md) for more detailed information. ## Related info -- [Memory and performance]({{< relref "/operate/rs/8.0/databases/memory-performance" >}}) -- [Disk sizing for heavy write scenarios]({{< relref "/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios.md" >}}) -- [Turn off services to free system memory]({{< relref "/operate/rs/8.0/clusters/optimize/turn-off-services.md" >}}) -- [Eviction policy]({{< relref "/operate/rs/8.0/databases/memory-performance/eviction-policy.md" >}}) -- [Shard placement policy]({{< relref "/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md" >}}) -- [Database persistence]({{< relref "/operate/rs/8.0/databases/configure/database-persistence.md" >}}) +- [Memory and performance](/content/operate/rs/8.0/databases/memory-performance/_index.md) +- [Disk sizing for heavy write scenarios](/content/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios.md) +- [Turn off services to free system memory](/content/operate/rs/8.0/clusters/optimize/turn-off-services.md) +- [Eviction policy](/content/operate/rs/8.0/databases/memory-performance/eviction-policy.md) +- [Shard placement policy](/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md) +- [Database persistence](/content/operate/rs/8.0/databases/configure/database-persistence.md) diff --git a/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md b/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md index b358263977..ca510ae465 100644 --- a/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md +++ b/content/operate/rs/8.0/databases/memory-performance/shard-placement-policy.md @@ -52,4 +52,4 @@ For Redis on RAM databases with OSS cluster API enabled and for databases with A ## Related articles -You can [configure the shard placement policy]({{< relref "/operate/rs/8.0/databases/configure/shard-placement.md" >}}) for each database. +You can [configure the shard placement policy](/content/operate/rs/8.0/databases/configure/shard-placement.md) for each database. diff --git a/content/operate/rs/8.0/databases/migrate-shards.md b/content/operate/rs/8.0/databases/migrate-shards.md index 13f70b95fe..6de718834e 100644 --- a/content/operate/rs/8.0/databases/migrate-shards.md +++ b/content/operate/rs/8.0/databases/migrate-shards.md @@ -13,7 +13,7 @@ weight: 32 url: '/operate/rs/8.0/databases/migrate-shards/' --- -To migrate database shards to other nodes in the cluster, you can use the [`rladmin migrate`]({{}}) command or [REST API requests]({{}}). +To migrate database shards to other nodes in the cluster, you can use the [`rladmin migrate`](/content/operate/rs/8.0/references/cli-utilities/rladmin/migrate.md) command or [REST API requests](/content/operate/rs/8.0/references/rest-api/requests/shards/actions/migrate.md). ## Use cases for shard migration @@ -43,15 +43,15 @@ If too many primary shards are placed on the same node, it can impact database p To migrate a specific database shard, use one of the following methods: -- [`rladmin migrate shard`]({{}}): +- [`rladmin migrate shard`](/content/operate/rs/8.0/references/cli-utilities/rladmin/migrate.md#migrate-shard): ```sh rladmin migrate shard target_node ``` -- [Migrate shard]({{}}) REST API request: +- [Migrate shard](/content/operate/rs/8.0/references/rest-api/requests/shards/actions/migrate.md#post-shard) REST API request: - Specify the ID of the shard to migrate in the request path and the destination node's ID as the `target_node_uid` in the request body. See the [request reference]({{}}) for more options. + Specify the ID of the shard to migrate in the request path and the destination node's ID as the `target_node_uid` in the request body. See the [request reference](/content/operate/rs/8.0/references/rest-api/requests/shards/actions/migrate.md#post-request-body) for more options. ```sh POST /v1/shards//actions/migrate @@ -69,21 +69,21 @@ To migrate a specific database shard, use one of the following methods: } ``` - You can track the action's progress with a [`GET /v1/actions/`]({{}}) request. + You can track the action's progress with a [`GET /v1/actions/`](/content/operate/rs/8.0/references/rest-api/requests/actions/_index.md#get-action) request. ## Migrate multiple shards To migrate multiple database shards, use one of the following methods: -- [`rladmin migrate shard`]({{}}): +- [`rladmin migrate shard`](/content/operate/rs/8.0/references/cli-utilities/rladmin/migrate.md#migrate-shard): ```sh rladmin migrate shard target_node ``` -- [Migrate multiple shards]({{}}) REST API request: +- [Migrate multiple shards](/content/operate/rs/8.0/references/rest-api/requests/shards/actions/migrate.md#post-multi-shards) REST API request: - Specify the IDs of the shards to migrate in the `shard_uids` list and the destination node's ID as the `target_node_uid` in the request body. See the [request reference]({{}}) for more options. + Specify the IDs of the shards to migrate in the `shard_uids` list and the destination node's ID as the `target_node_uid` in the request body. See the [request reference](/content/operate/rs/8.0/references/rest-api/requests/shards/actions/migrate.md#post-multi-request-body) for more options. ```sh POST /v1/shards/actions/migrate @@ -102,11 +102,11 @@ To migrate multiple database shards, use one of the following methods: } ``` - You can track the action's progress with a [`GET /v1/actions/`]({{}}) request. + You can track the action's progress with a [`GET /v1/actions/`](/content/operate/rs/8.0/references/rest-api/requests/actions/_index.md#get-action) request. ## Migrate all shards from a node -To migrate all shards from a specific node to another node, run [`rladmin migrate all_shards`]({{}}): +To migrate all shards from a specific node to another node, run [`rladmin migrate all_shards`](/content/operate/rs/8.0/references/cli-utilities/rladmin/migrate.md#migrate-all_shards): ```sh rladmin migrate node all_shards target_node @@ -114,7 +114,7 @@ rladmin migrate node all_shards target_node ## Migrate primary shards -You can use the [`rladmin migrate all_master_shards`]({{}}) command to migrate all primary shards for a specific database or node to another node in the cluster. +You can use the [`rladmin migrate all_master_shards`](/content/operate/rs/8.0/references/cli-utilities/rladmin/migrate.md#migrate-all_master_shards) command to migrate all primary shards for a specific database or node to another node in the cluster. To migrate a specific database's primary shards: @@ -130,7 +130,7 @@ rladmin migrate node all_master_shards target_node ## Migrate replica shards -You can use the [`rladmin migrate all_slave_shards`]({{}}) command to migrate all replica shards for a specific database or node to another node in the cluster. +You can use the [`rladmin migrate all_slave_shards`](/content/operate/rs/8.0/references/cli-utilities/rladmin/migrate.md#migrate-all_slave_shards) command to migrate all replica shards for a specific database or node to another node in the cluster. To migrate a specific database's replica shards: diff --git a/content/operate/rs/8.0/databases/recover.md b/content/operate/rs/8.0/databases/recover.md index 205d699164..5cde0ec2d9 100644 --- a/content/operate/rs/8.0/databases/recover.md +++ b/content/operate/rs/8.0/databases/recover.md @@ -13,16 +13,16 @@ url: '/operate/rs/8.0/databases/recover/' --- When a cluster fails or a database is corrupted, you must: -1. [Restore the cluster configuration]({{< relref "/operate/rs/8.0/clusters/cluster-recovery.md" >}}) from the CCS files +1. [Restore the cluster configuration](/content/operate/rs/8.0/clusters/cluster-recovery.md) from the CCS files 1. Recover the databases with their previous configuration and data To restore data to databases in the new cluster, you must restore the database persistence files (backup, AOF, or snapshot files) to the databases. -These files are stored in the [persistence storage location]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}). +These files are stored in the [persistence storage location](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md). The database recovery process includes: -1. If the cluster failed, [recover the cluster]({{< relref "/operate/rs/8.0/clusters/cluster-recovery.md" >}}). +1. If the cluster failed, [recover the cluster](/content/operate/rs/8.0/clusters/cluster-recovery.md). 1. Identify recoverable databases. 1. Restore the database data. 1. Verify that the databases are active. @@ -31,7 +31,7 @@ The database recovery process includes: - Before you start database recovery, make sure that the cluster that hosts the database is healthy. In the case of a cluster failure, - you must [recover the cluster]({{< relref "/operate/rs/8.0/clusters/cluster-recovery.md" >}}) before you recover the databases. + you must [recover the cluster](/content/operate/rs/8.0/clusters/cluster-recovery.md) before you recover the databases. - We recommend that you allocate new persistent storage drives for the new cluster nodes. If you use the original storage drives, @@ -40,7 +40,7 @@ The database recovery process includes: ## Recover databases After you prepare the cluster that hosts the database, -you can run the recovery process from the [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) +you can run the recovery process from the [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) command-line interface (CLI). To recover the database: @@ -48,14 +48,14 @@ To recover the database: 1. Mount the persistent storage drives with the recovery files to the new nodes. These drives must contain the cluster configuration backup files and database persistence files. - {{< note >}} -Make sure that the user `redislabs` has permissions to access the storage location -of the configuration and persistence files on each of the nodes. - {{< /note >}} + > [!NOTE] + > Make sure that the user `redislabs` has permissions to access the storage location + > of the configuration and persistence files on each of the nodes. + > If you use local persistent storage, place all of the recovery files on each of the cluster nodes. -1. To see which databases are recoverable, run [`rladmin recover list`]({{}}): +1. To see which databases are recoverable, run [`rladmin recover list`](/content/operate/rs/8.0/references/cli-utilities/rladmin/recover.md#recover-list): ```sh rladmin recover list @@ -71,7 +71,7 @@ of the configuration and persistence files on each of the nodes. If you cannot resolve the issues, contact [Redis support](https://redis.com/company/support/). -1. Recover the database using one of the following [`rladmin recover`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/recover" >}}) commands: +1. Recover the database using one of the following [`rladmin recover`](/content/operate/rs/8.0/references/cli-utilities/rladmin/recover.md) commands: - Recover all databases from the persistence files located in the persistent storage drives: @@ -99,16 +99,16 @@ of the configuration and persistence files on each of the nodes. rladmin recover db only_configuration ``` - {{< note >}} -- If persistence was not configured for the database, the database is restored empty. -- For Active-Active databases that still have live instances, we recommend that you recover the configuration for the failed instances and let the data update from the other instances. -- For Active-Active databases where all instances need to be recovered, we recommend you recover one instance with the data and only recover the configuration for the other instances. - The empty instances then update from the recovered data. -- If the persistence files of the databases from the old cluster are not stored in the persistent storage location of the new node, - you must first map the recovery path of each node to the location of the old persistence files. - To do this, run the `node recovery_path set` command in rladmin. - The persistence files for each database are located in the persistent storage path of the nodes from the old cluster, usually under `/var/opt/redislabs/persist/redis`. - {{< /note >}} + > [!NOTE] + > - If persistence was not configured for the database, the database is restored empty. + > - For Active-Active databases that still have live instances, we recommend that you recover the configuration for the failed instances and let the data update from the other instances. + > - For Active-Active databases where all instances need to be recovered, we recommend you recover one instance with the data and only recover the configuration for the other instances. + > The empty instances then update from the recovered data. + > - If the persistence files of the databases from the old cluster are not stored in the persistent storage location of the new node, + > you must first map the recovery path of each node to the location of the old persistence files. + > To do this, run the `node recovery_path set` command in rladmin. + > The persistence files for each database are located in the persistent storage path of the nodes from the old cluster, usually under `/var/opt/redislabs/persist/redis`. + > 1. To verify that the recovered databases are now active, run: @@ -128,7 +128,7 @@ To enable automatic recovery, use one of the following methods: tab1="rladmin" tab2="REST API" >}} -To enable automatic recovery using `rladmin`, run the [`rladmin tune cluster`]({{}}) command: +To enable automatic recovery using `rladmin`, run the [`rladmin tune cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster) command: ```sh rladmin tune cluster auto_recovery enabled @@ -136,7 +136,7 @@ rladmin tune cluster auto_recovery enabled -tab-sep- -To enable automatic recovery using the REST API, use an [update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) request: +To enable automatic recovery using the REST API, use an [update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) request: ```sh PUT /v1/cluster/policy @@ -160,4 +160,4 @@ PUT /v1/bdbs/ } ``` -You can also set `recovery_wait_time` when you [create a database]({{< relref "/operate/rs/8.0/references/rest-api/requests/bdbs#post-bdbs-v1" >}}) using the REST API. +You can also set `recovery_wait_time` when you [create a database](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#post-bdbs-v1) using the REST API. diff --git a/content/operate/rs/8.0/flex/_index.md b/content/operate/rs/8.0/flex/_index.md index d6087b9a11..37402eeaa0 100644 --- a/content/operate/rs/8.0/flex/_index.md +++ b/content/operate/rs/8.0/flex/_index.md @@ -27,7 +27,7 @@ Flex moves data between RAM and flash based on access patterns: - Less active data moves to cost-efficient flash storage. - Data accessed from flash promotes back to RAM automatically. -Redis uses an [LRU (least recently used)]({{< relref "/develop/reference/eviction#apx-lru" >}}) eviction policy to manage data placement. When memory pressure increases, Flex identifies cold objects, transfers them to flash, and frees RAM for new or frequently accessed keys. +Redis uses an [LRU (least recently used)](/content/develop/reference/eviction/index.md#apx-lru) eviction policy to manage data placement. When memory pressure increases, Flex identifies cold objects, transfers them to flash, and frees RAM for new or frequently accessed keys. This process requires no application changes. Your existing Redis commands work across both storage tiers. @@ -42,13 +42,13 @@ This design delivers predictable latency and throughput as datasets grow beyond ## Compatibility -Flex is compatible with the Redis API and supports all [Redis data types]({{}}), including JSON and probabilistic data structures (Bloom filters, Count-Min Sketch, Top-K). +Flex is compatible with the Redis API and supports all [Redis data types](/content/develop/data-types/_index.md), including JSON and probabilistic data structures (Bloom filters, Count-Min Sketch, Top-K). The following features are not yet supported with Flex: -- [Redis Search]({{}}) -- [Time series]({{}}) -- [Active-Active]({{}}) +- [Redis Search](/content/develop/ai/search-and-query/_index.md) +- [Time series](/content/develop/data-types/timeseries/_index.md) +- [Active-Active](/content/operate/rs/8.0/databases/active-active/_index.md) ## When to use Flex @@ -59,13 +59,12 @@ Use Flex when you need to: - Operate large distributed caches with elastic scaling and consistent performance under heavy load - Reduce infrastructure costs by combining high-speed RAM with cost-efficient flash storage -{{}} -Flex does not replace long-term data persistence. For workloads that require durability and recovery across restarts or failures, use Redis persistence features like [AOF (Append-Only File)]({{< relref "/operate/oss_and_stack/management/persistence#append-only-file" >}}), [RDB snapshots]({{< relref "/operate/oss_and_stack/management/persistence#snapshotting" >}}), or both. For more information, see [Database persistence]({{< relref "/operate/rs/8.0/databases/configure/database-persistence" >}}). -{{}} +> [!NOTE] +> Flex does not replace long-term data persistence. For workloads that require durability and recovery across restarts or failures, use Redis persistence features like [AOF (Append-Only File)](/content/operate/oss_and_stack/management/persistence.md#append-only-file), [RDB snapshots](/content/operate/oss_and_stack/management/persistence.md#snapshotting), or both. For more information, see [Database persistence](/content/operate/rs/8.0/databases/configure/database-persistence.md). ## Flex and Auto Tiering -Flex replaces [Auto Tiering]({{< relref "/operate/rs/7.22/databases/auto-tiering" >}}) (formerly known as Redis on Flash). Redis Software selects the implementation based on your Redis version: +Flex replaces [Auto Tiering](/content/operate/rs/7.22/databases/auto-tiering/_index.md) (formerly known as Redis on Flash). Redis Software selects the implementation based on your Redis version: | Redis database version | Flex | Auto Tiering | |------------------------|------|--------------| @@ -73,7 +72,7 @@ Flex replaces [Auto Tiering]({{< relref "/operate/rs/7.22/databases/auto-tiering | 7.4 | ✅ | ✅| | 7.2 and earlier | ❌ | ✅ | -For Redis Software version 7.22.2-22 or earlier, see [Auto Tiering]({{< relref "/operate/rs/7.22/databases/auto-tiering" >}}). +For Redis Software version 7.22.2-22 or earlier, see [Auto Tiering](/content/operate/rs/7.22/databases/auto-tiering/_index.md). ### Differences between Flex and Auto Tiering @@ -89,6 +88,6 @@ For Redis Software version 7.22.2-22 or earlier, see [Auto Tiering]({{< relref " ## Next steps -- [Plan your deployment]({{< relref "/operate/rs/8.0/flex/plan" >}}): Review hardware requirements, sizing guidelines, and limitations. -- [Get started]({{< relref "/operate/rs/8.0/flex/get-started" >}}): Configure Flex on your cluster. -- [Scale your deployment]({{< relref "/operate/rs/8.0/flex/scale" >}}): Learn scaling strategies and best practices. +- [Plan your deployment](/content/operate/rs/8.0/flex/plan.md): Review hardware requirements, sizing guidelines, and limitations. +- [Get started](/content/operate/rs/8.0/flex/get-started.md): Configure Flex on your cluster. +- [Scale your deployment](/content/operate/rs/8.0/flex/scale.md): Learn scaling strategies and best practices. diff --git a/content/operate/rs/8.0/flex/get-started.md b/content/operate/rs/8.0/flex/get-started.md index 9b432cf934..e947e0806f 100644 --- a/content/operate/rs/8.0/flex/get-started.md +++ b/content/operate/rs/8.0/flex/get-started.md @@ -10,9 +10,9 @@ linkTitle: Get started weight: 20 url: '/operate/rs/8.0/flex/get-started/' --- -This page guides you through a quick setup of [Flex]({{< relref "/operate/rs/8.0/flex" >}}) with a single node for testing and demo purposes. +This page guides you through a quick setup of [Flex](/content/operate/rs/8.0/flex/_index.md) with a single node for testing and demo purposes. -For production environments, see [Plan a Flex deployment for Redis Software]({{}}) and more detailed installation instructions in the [install and setup]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) section. +For production environments, see [Plan a Flex deployment for Redis Software](/content/operate/rs/8.0/flex/plan.md) and more detailed installation instructions in the [install and setup](/content/operate/rs/8.0/installing-upgrading/_index.md) section. To set up a Redis Software cluster using Flex with a single node: @@ -87,10 +87,10 @@ sudo lsblk 1. Direct your browser to `https://localhost:8443` on the host machine to see the Redis Software Cluster Manager UI. - {{}} -Depending on your browser, you may see a certificate error. -Choose "continue to the website" to go to the setup screen. - {{}} + > [!NOTE] + > Depending on your browser, you may see a certificate error. + > Choose "continue to the website" to go to the setup screen. + > 1. Click **Create new cluster**. @@ -126,7 +126,7 @@ You now have a Flex database. ## Connect to your database -After you create the database, you can connect to it and store data. See [Test client connection]({{}}) for connection options and examples. +After you create the database, you can connect to it and store data. See [Test client connection](/content/operate/rs/8.0/databases/connect/test-client-connectivity.md) for connection options and examples. ## Next steps diff --git a/content/operate/rs/8.0/flex/plan.md b/content/operate/rs/8.0/flex/plan.md index 14acf84c62..2af87baa7f 100644 --- a/content/operate/rs/8.0/flex/plan.md +++ b/content/operate/rs/8.0/flex/plan.md @@ -44,7 +44,7 @@ When planning a Flex deployment, consider the following flash drive requirements - Flash storage must be greater than the total provisioned database size to account for write buffers, space amplification, and more. -See the general Redis Software [hardware requirements]({{}}) for additional requirements. +See the general Redis Software [hardware requirements](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md) for additional requirements. ## Sizing guidelines @@ -80,12 +80,12 @@ Actual performance can vary based on your data model, commands, and network late | Data type/feature | Flex support | |------------------|--------------| -| [Active-Active databases]({{}}) | ❌Not supported | -| [JSON]({{}}) | ✅ Supported | -| [Probabilistic data structures]({{}}) | ✅ Supported | -| [Redis Search]({{}}) | ❌Not supported | -| Standard [Redis data types]({{}}) | ✅ Supported | -| [Time series]({{}}) | ❌Not supported | +| [Active-Active databases](/content/operate/rs/8.0/databases/active-active/_index.md) | ❌Not supported | +| [JSON](/content/develop/data-types/json/_index.md) | ✅ Supported | +| [Probabilistic data structures](/content/develop/data-types/_index.md#probabilistic-data-types) | ✅ Supported | +| [Redis Search](/content/develop/ai/search-and-query/_index.md) | ❌Not supported | +| Standard [Redis data types](/content/develop/data-types/_index.md) | ✅ Supported | +| [Time series](/content/develop/data-types/timeseries/_index.md) | ❌Not supported | ## Best practices @@ -109,5 +109,5 @@ Actual performance can vary based on your data model, commands, and network late ## Next steps -- [Get started]({{< relref "/operate/rs/8.0/flex/get-started" >}}): Configure Flex on your cluster. -- [Scale your deployment]({{< relref "/operate/rs/8.0/flex/scale" >}}): Learn scaling strategies. \ No newline at end of file +- [Get started](/content/operate/rs/8.0/flex/get-started.md): Configure Flex on your cluster. +- [Scale your deployment](/content/operate/rs/8.0/flex/scale.md): Learn scaling strategies. \ No newline at end of file diff --git a/content/operate/rs/8.0/flex/scale.md b/content/operate/rs/8.0/flex/scale.md index 92ea936817..09dab2bf48 100644 --- a/content/operate/rs/8.0/flex/scale.md +++ b/content/operate/rs/8.0/flex/scale.md @@ -106,13 +106,13 @@ To add shards using the Cluster Manager UI: 1. Click **Save**. -To add nodes to the cluster, see [Add a node]({{}}) for instructions. +To add nodes to the cluster, see [Add a node](/content/operate/rs/8.0/clusters/add-node.md) for instructions. ### Increase RAM-to-flash ratio To improve throughput and lower latency, you can expand the in-memory tier to serve a higher proportion of requests directly from RAM. This strategy is recommended when low latency is your primary goal and you don't need to increase the dataset size. -Before increasing the RAM-to-flash ratio, you might need to add more nodes to accommodate additional RAM. See [Add a node]({{}}) for instructions. +Before increasing the RAM-to-flash ratio, you might need to add more nodes to accommodate additional RAM. See [Add a node](/content/operate/rs/8.0/clusters/add-node.md) for instructions. To increase the RAM-to-flash ratio using the Cluster Manager UI: @@ -136,8 +136,7 @@ For self-managed Redis Flex deployments, ensure the cluster has sufficient physi - Adequate vCPU to support increased shard count or throughput. -{{}} -Scaling operations will fail or underperform if the underlying cluster is resource-constrained. -{{}} +> [!WARNING] +> Scaling operations will fail or underperform if the underlying cluster is resource-constrained. -See Flex [hardware requirements]({{}}) for more information. +See Flex [hardware requirements](/content/operate/rs/8.0/flex/plan.md#hardware-requirements) for more information. diff --git a/content/operate/rs/8.0/installing-upgrading/_index.md b/content/operate/rs/8.0/installing-upgrading/_index.md index 8aac79ea49..b4b19340e5 100644 --- a/content/operate/rs/8.0/installing-upgrading/_index.md +++ b/content/operate/rs/8.0/installing-upgrading/_index.md @@ -15,25 +15,25 @@ url: '/operate/rs/8.0/installing-upgrading/' You can run self-managed Redis Software in an on-premises data center or on your preferred cloud platform. -If you prefer a fully managed Redis database-as-a-service, available on major public cloud services, consider setting up a [Redis Cloud]({{}}) subscription. You can [try Redis Cloud](https://redis.io/try-free/) for free. +If you prefer a fully managed Redis database-as-a-service, available on major public cloud services, consider setting up a [Redis Cloud](/content/operate/rc/_index.md) subscription. You can [try Redis Cloud](https://redis.io/try-free/) for free. ## Quickstarts If you want to try out Redis Software, see the following quickstarts: -- [Redis Software quickstart]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart" >}}) +- [Redis Software quickstart](/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md) -- [Docker quickstart for Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart" >}}) +- [Docker quickstart for Redis Software](/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md) ## Install Redis Software -To install Redis Software on a [supported platform]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms" >}}), you need to: +To install Redis Software on a [supported platform](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md), you need to: -1. [Plan your deployment]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment" >}}). +1. [Plan your deployment](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/_index.md). -1. [Prepare to install]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install" >}}). +1. [Prepare to install](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/_index.md). -1. [Perform the install]({{< relref "/operate/rs/8.0/installing-upgrading/install" >}}). +1. [Perform the install](/content/operate/rs/8.0/installing-upgrading/install/_index.md). Depending on your needs, you may also want to [customize the installation](#more-info-and-options). @@ -41,34 +41,34 @@ Depending on your needs, you may also want to [customize the installation](#more If you already installed Redis Software, you can: -- [Upgrade a cluster]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster" >}}) +- [Upgrade a cluster](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md) -- [Upgrade a database]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database" >}}) +- [Upgrade a database](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md) -- [Upgrade an Active-Active database]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active" >}}) +- [Upgrade an Active-Active database](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active.md) ## Uninstall Redis Software -- [Uninstall existing deployment]({{< relref "/operate/rs/8.0/installing-upgrading/uninstalling" >}}) +- [Uninstall existing deployment](/content/operate/rs/8.0/installing-upgrading/uninstalling.md) ## More info and options More information is available to help with customization and related questions: -- [CentOS/RHEL firewall configuration]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md" >}}) -- [Change socket file location]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md" >}}) -- [Cluster DNS configuration]({{< relref "/operate/rs/8.0/networking/cluster-dns.md" >}}) -- [Cluster load balancer setup]({{< relref "/operate/rs/8.0/networking/cluster-lba-setup.md" >}}) -- [File locations]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md" >}}) -- [Linux swap space configuration]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md" >}}) -- [mDNS client prerequisites]({{< relref "/operate/rs/8.0/networking/mdns.md" >}}) -- [User and group ownership]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md" >}}) +- [CentOS/RHEL firewall configuration](/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md) +- [Change socket file location](/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md) +- [Cluster DNS configuration](/content/operate/rs/8.0/networking/cluster-dns.md) +- [Cluster load balancer setup](/content/operate/rs/8.0/networking/cluster-lba-setup.md) +- [File locations](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md) +- [Linux swap space configuration](/content/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md) +- [mDNS client prerequisites](/content/operate/rs/8.0/networking/mdns.md) +- [User and group ownership](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) ## Next steps After you install Redis Software and set up your cluster, you can: -- [Add users]({{< relref "/operate/rs/8.0/security/access-control/create-users" >}}) to the cluster with specific permissions. To begin, start with [Access control]({{< relref "/operate/rs/8.0/security/access-control" >}}). +- [Add users](/content/operate/rs/8.0/security/access-control/create-users.md) to the cluster with specific permissions. To begin, start with [Access control](/content/operate/rs/8.0/security/access-control/_index.md). -- [Create databases]({{< relref "/operate/rs/8.0/databases/create" >}}) to use with your applications. +- [Create databases](/content/operate/rs/8.0/databases/create.md) to use with your applications. diff --git a/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md b/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md index 9550e1edff..c460b835c9 100644 --- a/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md +++ b/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md @@ -20,14 +20,13 @@ When you install Redis Software on CentOS or RHEL, it automatically creates two - A service named **redislabs-clients**, which includes the ports and protocols needed for external communication (outside of the cluster). These services are defined but not allowed through the firewall by default. -During Redis Software installation, the [installer prompts]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions" >}}) you to confirm auto-configuration of a default (public) zone +During Redis Software installation, the [installer prompts](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md) you to confirm auto-configuration of a default (public) zone to allow the **redislabs** service. Although automatic firewall configuration simplifies installation, your deployment might not be secure if you did not use other methods to secure the host machine's network, such as external firewall rules or security groups. You can use firewalld configuration tools such as **firewall-cmd** (command line) or **firewall-config** (UI) to create more specific firewall policies that allow these two services through the firewall, as necessary. -{{}} -If databases are created with non-standard [Redis Software ports]({{< relref "/operate/rs/8.0/networking/port-configurations" >}}), -you need to explicitly configure firewalld to make sure those ports are not blocked. -{{}} +> [!NOTE] +> If databases are created with non-standard [Redis Software ports](/content/operate/rs/8.0/networking/port-configurations.md), +> you need to explicitly configure firewalld to make sure those ports are not blocked. diff --git a/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md b/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md index 1621aafad9..5cc165be13 100644 --- a/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md +++ b/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md @@ -18,15 +18,15 @@ There are two default locations for the socket files in Redis Software: - `/tmp` - In clean installations of Redis Software version earlier than 5.2.2 - `/var/opt/redislabs/run` - In clean installations of Redis Software version 5.2.2 and later - {{}} -The default location was changed in case you run any maintenance procedures that delete the `/tmp` directory. - {{}} + > [!NOTE] + > The default location was changed in case you run any maintenance procedures that delete the `/tmp` directory. + > When you upgrade Redis Software from an earlier version to 5.2.2 or later, the socket files are not moved to the new location by default. You need to specify the socket file location [during installation](#during-install). ## Specify socket file location during install {#during-install} -To specify the socket file location during a new installation, follow the [Install Redis Software on Linux]({{}}) instructions, but use the `-s` [installation script option]({{}}): +To specify the socket file location during a new installation, follow the [Install Redis Software on Linux](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) instructions, but use the `-s` [installation script option](/content/operate/rs/8.0/installing-upgrading/install/install-script.md): ```sh sudo ./install.sh -s @@ -44,15 +44,15 @@ Directly changing the socket file location directly is not supported for bootstr To change the socket file location for all nodes in a cluster, follow these steps: -1. Install Redis Software on a new node with the new socket file location. Follow the [Install Redis Software on Linux]({{}}) instructions, but use the -s [installation script option]({{}}): +1. Install Redis Software on a new node with the new socket file location. Follow the [Install Redis Software on Linux](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) instructions, but use the -s [installation script option](/content/operate/rs/8.0/installing-upgrading/install/install-script.md): ```sh sudo ./install.sh -s ``` -1. [Add the new node]({{}}) to the existing cluster. +1. [Add the new node](/content/operate/rs/8.0/clusters/add-node.md) to the existing cluster. -1. [Remove a node]({{}}) with the old socket file location. +1. [Remove a node](/content/operate/rs/8.0/clusters/remove-node.md#remove-a-node) with the old socket file location. 1. Repeat the previous steps until all nodes with the old socket file location have been replaced. @@ -60,10 +60,10 @@ To change the socket file location for all nodes in a cluster, follow these step To migrate an existing cluster to a new cluster with a different socket file location: -1. Create a new cluster with the new socket file location. To do so, follow the [Install Redis Software on Linux]({{}}) instructions, but use the `-s` [installation script option]({{}}): +1. Create a new cluster with the new socket file location. To do so, follow the [Install Redis Software on Linux](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) instructions, but use the `-s` [installation script option](/content/operate/rs/8.0/installing-upgrading/install/install-script.md): ``` sudo ./install.sh -s ``` -1. Use Replica Of to migrate your databases from the original cluster to the new cluster. For detailed steps, see the procedure to [configure Replica Of with different Redis Software clusters]({{}}). +1. Use Replica Of to migrate your databases from the original cluster to the new cluster. For detailed steps, see the procedure to [configure Replica Of with different Redis Software clusters](/content/operate/rs/8.0/databases/import-export/replica-of/create.md#different-cluster). diff --git a/content/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md b/content/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md index 4d19d1dd8f..2b7656fa94 100644 --- a/content/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md +++ b/content/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md @@ -12,7 +12,7 @@ url: '/operate/rs/8.0/installing-upgrading/configuring/linux-swap/' --- Linux operating systems use swap space, which is enabled by default, to help manage memory (pages) by copying pages from RAM to disk. Due to the way Redis Software -utilizes and manages memory, it is best to prevent OS swapping. For more details, see [memory limits]({{< relref "/operate/rs/8.0/databases/memory-performance/memory-limit.md" >}}). The +utilizes and manages memory, it is best to prevent OS swapping. For more details, see [memory limits](/content/operate/rs/8.0/databases/memory-performance/memory-limit.md). The recommendation is to turn off Linux swap completely in the OS. When you install or build the OS on the machine intended to host your Redis Software cluster, avoid configuring swap partitions if possible. diff --git a/content/operate/rs/8.0/installing-upgrading/creating-support-package.md b/content/operate/rs/8.0/installing-upgrading/creating-support-package.md index 1172b9fccc..33b706e792 100644 --- a/content/operate/rs/8.0/installing-upgrading/creating-support-package.md +++ b/content/operate/rs/8.0/installing-upgrading/creating-support-package.md @@ -16,9 +16,8 @@ If you encounter any issues that you are not able to resolve yourself and need to [contact Redis support](https://redis.io/support/) for assistance, you can [create a support package](#create-support-package) that gathers all essential information to help debug your issues. -{{< note >}} -The process of creating the support package can take several minutes and generates load on the system. -{{< /note >}} +> [!NOTE] +> The process of creating the support package can take several minutes and generates load on the system. ## Create support package @@ -63,7 +62,7 @@ To create a support package from the Cluster Manager UI: -tab-sep- -If package creation fails with `internal error` or if you cannot access the UI, create a support package for the cluster from the command line on any node in the cluster using the [`rladmin cluster debug_info`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/debug_info" >}}) command: +If package creation fails with `internal error` or if you cannot access the UI, create a support package for the cluster from the command line on any node in the cluster using the [`rladmin cluster debug_info`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/debug_info.md) command: ```sh /opt/redislabs/bin/rladmin cluster debug_info @@ -95,7 +94,7 @@ Upload the tar file to [Redis support](https://redis.com/company/support/). The -tab-sep- -You can use `debuginfo` [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) requests to create and download support packages. +You can use `debuginfo` [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) requests to create and download support packages. To download debug info from all nodes and databases: @@ -147,10 +146,10 @@ The following table describes the included files: | /database_/ | Directory that includes files for a specific database. is the database ID. | | database__ccs_info.txt | Database information from the cluster configuration store (CCS). Includes settings for databases, endpoints, shards, replicas, and CRDB. | | database_.clientlist | List of clients connected to the database when the support package was created. | -| database_.info | Redis information and statistics for the database. See [`INFO`]({{}}) for details about the collected fields. | -| database_.rladmin | Database information. See [`rladmin info db`]({{}}) for an example of collected fields. Also includes creation time, last changed time, Redis version, memory limit, persistence type, eviction policy, hashing policy, and whether SSL, backups, and email alerts are enabled. | +| database_.info | Redis information and statistics for the database. See [`INFO`](/content/commands/info.md) for details about the collected fields. | +| database_.rladmin | Database information. See [`rladmin info db`](/content/operate/rs/8.0/references/cli-utilities/rladmin/info.md#info-db) for an example of collected fields. Also includes creation time, last changed time, Redis version, memory limit, persistence type, eviction policy, hashing policy, and whether SSL, backups, and email alerts are enabled. | | database_.slowlog | Contains slowlog output, which includes commands that took longer than 10 milliseconds. Only included if `slowlog_in_sanitized_support` is `true` in cluster settings. | -| /node_/redis_.txt | For each shard of the specified database only. Includes shard configuration and [information]({{}}), slowlog information, and latency information. | +| /node_/redis_.txt | For each shard of the specified database only. Includes shard configuration and [information](/content/commands/info.md), slowlog information, and latency information. | ### Node support package files @@ -165,9 +164,9 @@ The following table describes the included files: | /logs/ | Directory that includes logs. | | node_.ccs | Includes cluster configuration, node configuration, and DMC proxy configuration. | | node__envoy_config.json | Envoy configuration. | -| node_.rladmin | Information about the cluster's nodes, databases, endpoints, and shards. See [`rladmin status`]({{}}) for example output. | +| node_.rladmin | Information about the cluster's nodes, databases, endpoints, and shards. See [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) for example output. | | node__sys_info.txt | Node's system information including:
• Socket files list
• Log files list
• Processes running on the node
• Disk usage
• Persistent files list
• Memory usage
• Network interfaces
• Installed packages
• Active iptables
• OS and platform
• Network connection
• Status of Redis processes | -| redis_.txt | For each shard of the specified database only. Includes shard configuration and [information]({{}}), slowlog information, and latency information. | +| redis_.txt | For each shard of the specified database only. Includes shard configuration and [information](/content/commands/info.md), slowlog information, and latency information. | Each node's `/conf/` directory contains the following files: diff --git a/content/operate/rs/8.0/installing-upgrading/install/_index.md b/content/operate/rs/8.0/installing-upgrading/install/_index.md index 5fa7418da9..25289297d9 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/_index.md +++ b/content/operate/rs/8.0/installing-upgrading/install/_index.md @@ -12,13 +12,13 @@ weight: 35 url: '/operate/rs/8.0/installing-upgrading/install/' --- -After you [plan your deployment]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment" >}}), [download a Redis Software installation package]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package" >}}), and finish [installation preparation]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install" >}}): +After you [plan your deployment](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/_index.md), [download a Redis Software installation package](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md), and finish [installation preparation](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/_index.md): -1. [Install the Redis Software package]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}) on one of the nodes in the cluster. +1. [Install the Redis Software package](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) on one of the nodes in the cluster. 1. Repeat this process for each node in the cluster. -For installation on machines without an internet connection, see [Offline installation]({{< relref "/operate/rs/8.0/installing-upgrading/install/offline-installation" >}}). +For installation on machines without an internet connection, see [Offline installation](/content/operate/rs/8.0/installing-upgrading/install/offline-installation.md). ## Permissions and access @@ -28,9 +28,9 @@ For installation on machines without an internet connection, see [Offline instal - Redis Software is certified to run with permissions set to `750`, an industry standard. - {{}} -Do not reduce permissions to `700`. This configuration has not been tested and is not supported. - {{}} + > [!WARNING] + > Do not reduce permissions to `700`. This configuration has not been tested and is not supported. + > - Redis Software requires `umask` to be `0022` during installation to correctly set permissions for the installed directories and files. @@ -38,26 +38,26 @@ Do not reduce permissions to `700`. This configuration has not been tested and i If you've already installed Redis Software, you can also: -- [Upgrade an existing deployment]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading" >}}). +- [Upgrade an existing deployment](/content/operate/rs/8.0/installing-upgrading/upgrading/_index.md). -- [Uninstall an existing deployment]({{< relref "/operate/rs/8.0/installing-upgrading/uninstalling.md" >}}). +- [Uninstall an existing deployment](/content/operate/rs/8.0/installing-upgrading/uninstalling.md). To learn more about customization and find answers to related questions, see: -- [CentOS/RHEL Firewall configuration]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md" >}}) -- [Change socket file location]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md" >}}) -- [Cluster DNS configuration]({{< relref "/operate/rs/8.0/networking/cluster-dns.md" >}}) -- [Cluster load balancer setup]({{< relref "/operate/rs/8.0/networking/cluster-lba-setup.md" >}}) -- [File locations]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md" >}}) -- [Supported platforms]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md" >}}) -- [Manage installation questions]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md" >}}) -- [mDNS client prerequisites]({{< relref "/operate/rs/8.0/networking/mdns.md" >}}) -- [User and group ownership]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md" >}}) +- [CentOS/RHEL Firewall configuration](/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md) +- [Change socket file location](/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md) +- [Cluster DNS configuration](/content/operate/rs/8.0/networking/cluster-dns.md) +- [Cluster load balancer setup](/content/operate/rs/8.0/networking/cluster-lba-setup.md) +- [File locations](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md) +- [Supported platforms](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md) +- [Manage installation questions](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md) +- [mDNS client prerequisites](/content/operate/rs/8.0/networking/mdns.md) +- [User and group ownership](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) ## Next steps After your cluster is set up with nodes, you can: -- [Add users]({{< relref "/operate/rs/8.0/security/access-control/create-users" >}}) to the cluster with specific permissions. To begin, start with [Access control]({{< relref "/operate/rs/8.0/security/access-control" >}}). -- [Create databases]({{< relref "/operate/rs/8.0/databases/create" >}}) to use with your applications. +- [Add users](/content/operate/rs/8.0/security/access-control/create-users.md) to the cluster with specific permissions. To begin, start with [Access control](/content/operate/rs/8.0/security/access-control/_index.md). +- [Create databases](/content/operate/rs/8.0/databases/create.md) to use with your applications. diff --git a/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md b/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md index d0bc29e613..901ea4c2df 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md +++ b/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md @@ -55,7 +55,7 @@ These files are not in the custom directories: - /etc/opt/redislabs/redislabs_custom_install_version - /etc/opt/redislabs/redislabs_env_config.sh -To specify directories during [installation]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}), include installer flags as [command-line options]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-script" >}}) when you run the `install.sh` script. For example: +To specify directories during [installation](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md), include installer flags as [command-line options](/content/operate/rs/8.0/installing-upgrading/install/install-script.md) when you run the `install.sh` script. For example: ```sh sudo ./install.sh --install-dir --config-dir --var-dir @@ -79,7 +79,7 @@ To configure different mount points for data and log directories, use symbolic l ## Customize storage paths -When you install Redis Software to custom directories, you can specify custom storage paths for persistent and ephemeral storage during [cluster setup]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup" >}}) or when [adding nodes]({{< relref "/operate/rs/8.0/clusters/add-node" >}}). +When you install Redis Software to custom directories, you can specify custom storage paths for persistent and ephemeral storage during [cluster setup](/content/operate/rs/8.0/clusters/new-cluster-setup.md) or when [adding nodes](/content/operate/rs/8.0/clusters/add-node.md). 1. Specify the custom file location with the `--var-dir` option when you install Redis Software: @@ -105,7 +105,7 @@ When you install Redis Software to custom directories, you can specify custom st ls -l /path/to/custom/storage ``` -For more information about storage requirements, see [Persistent and ephemeral node storage]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}). +For more information about storage requirements, see [Persistent and ephemeral node storage](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md). ## Limitations diff --git a/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md b/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md index 4761553668..fe3d5ec91c 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md +++ b/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md @@ -31,7 +31,7 @@ During installation, you can specify the user and group that own all Redis Softw ## Install with custom user or group -To customize the user or group during [installation]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}), include the `--os-user` or `--os-group` [command-line options]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-script" >}}) when you run the `install.sh` script. +To customize the user or group during [installation](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md), include the `--os-user` or `--os-group` [command-line options](/content/operate/rs/8.0/installing-upgrading/install/install-script.md) when you run the `install.sh` script. ```sh sudo ./install.sh --os-user --os-group diff --git a/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md b/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md index c4c2950f69..6340ef9520 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md +++ b/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md @@ -11,9 +11,9 @@ weight: 10 url: '/operate/rs/8.0/installing-upgrading/install/install-on-linux/' --- -After you [download a Redis Software installation package]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package" >}}), install it on one of the nodes in the cluster. +After you [download a Redis Software installation package](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md), install it on one of the nodes in the cluster. -For installation on machines without an internet connection, see [Offline installation]({{< relref "/operate/rs/8.0/installing-upgrading/install/offline-installation" >}}). +For installation on machines without an internet connection, see [Offline installation](/content/operate/rs/8.0/installing-upgrading/install/offline-installation.md). ## Install on Linux @@ -49,7 +49,7 @@ To install Redis Software, use the command line: rpm --checksig ``` -1. To start the installation process, run the installation script. See [installation script options]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-script" >}}) for a complete list of command-line options. +1. To start the installation process, run the installation script. See [installation script options](/content/operate/rs/8.0/installing-upgrading/install/install-script.md) for a complete list of command-line options. **For default installation:** ```sh @@ -64,22 +64,22 @@ To install Redis Software, use the command line: sudo ./install.sh --install-dir --config-dir --var-dir ``` - For detailed information about custom installations, see [Customize installation directories]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-install-directories" >}}). + For detailed information about custom installations, see [Customize installation directories](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md). - {{< note >}} -- The Redis Software files are installed in the default [file locations]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md" >}}) unless you specify custom directories. -- By default, Redis Software runs on the OS as the `redislabs` user and `redislabs` group. If needed, you can [specify a different user and group]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md" >}}) during the installation. -- You must either be the root user or use `sudo` to run the installation script. - {{< /note >}} + > [!NOTE] + > - The Redis Software files are installed in the default [file locations](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md) unless you specify custom directories. + > - By default, Redis Software runs on the OS as the `redislabs` user and `redislabs` group. If needed, you can [specify a different user and group](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) during the installation. + > - You must either be the root user or use `sudo` to run the installation script. + > -1. Answer the [installation questions]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md" >}}) when shown to complete the installation process. +1. Answer the [installation questions](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md) when shown to complete the installation process. - {{< note >}} -To skip the installation questions, use one of the following methods: - -- Run `./install.sh -y` to answer yes to all of the questions. -- Create an [answer file]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions#configure-file-to-answer" >}}) to answer installation questions automatically. - {{< /note >}} + > [!NOTE] + > To skip the installation questions, use one of the following methods: + > + > - Run `./install.sh -y` to answer yes to all of the questions. + > - Create an [answer file](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md#configure-file-to-answer) to answer installation questions automatically. + > 1. When installation completes successfully, the output displays the Cluster Manager UI's IP address: @@ -99,7 +99,7 @@ To skip the installation questions, use one of the following methods: ## Redis Flex and Auto Tiering installation -If you want to use Redis Flex or Auto Tiering for your databases, review the prerequisites, storage requirements, and [other considerations]({{< relref "/operate/rs/8.0/databases/flash/" >}}) and prepare and format the flash memory. +If you want to use Redis Flex or Auto Tiering for your databases, review the prerequisites, storage requirements, and [other considerations](/content/operate/rs/8.0/databases/flash/_index.md) and prepare and format the flash memory. After you install Redis Software, use the `prepare_flash` script to prepare and format flash memory: @@ -119,17 +119,17 @@ sudo lsblk To learn more about customization and find answers to related questions, see: -- [CentOS/RHEL firewall configuration]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md" >}}) -- [Change socket file location]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md" >}}) -- [Cluster DNS configuration]({{< relref "/operate/rs/8.0/networking/cluster-dns.md" >}}) -- [Cluster load balancer setup]({{< relref "/operate/rs/8.0/networking/cluster-lba-setup.md" >}}) -- [mDNS client prerequisites]({{< relref "/operate/rs/8.0/networking/mdns.md" >}}) -- [File locations]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md" >}}) -- [Supported platforms]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md" >}}) +- [CentOS/RHEL firewall configuration](/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md) +- [Change socket file location](/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md) +- [Cluster DNS configuration](/content/operate/rs/8.0/networking/cluster-dns.md) +- [Cluster load balancer setup](/content/operate/rs/8.0/networking/cluster-lba-setup.md) +- [mDNS client prerequisites](/content/operate/rs/8.0/networking/mdns.md) +- [File locations](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md) +- [Supported platforms](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md) ## Limitations -Several Redis Software installation reference files are installed to the directory `/etc/opt/redislabs/` even if you use [custom installation directories]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-install-directories" >}}). +Several Redis Software installation reference files are installed to the directory `/etc/opt/redislabs/` even if you use [custom installation directories](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md). As a workaround to install Redis Software without using any root directories, do the following before installing Redis Software: @@ -139,11 +139,11 @@ As a workaround to install Redis Software without using any root directories, do ## Next steps -1. [Create]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup.md" >}}) - or [join]({{< relref "/operate/rs/8.0/clusters/add-node.md" >}}) an existing Redis Software cluster. +1. [Create](/content/operate/rs/8.0/clusters/new-cluster-setup.md) + or [join](/content/operate/rs/8.0/clusters/add-node.md) an existing Redis Software cluster. -1. [Create a database]({{< relref "/operate/rs/8.0/databases/create" >}}). +1. [Create a database](/content/operate/rs/8.0/databases/create.md). - For geo-distributed Active-Active replication, create an [Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/create.md" >}}) database. + For geo-distributed Active-Active replication, create an [Active-Active](/content/operate/rs/8.0/databases/active-active/create.md) database. -1. [Add users]({{< relref "/operate/rs/8.0/security/access-control/create-users" >}}) to the cluster with specific permissions. To begin, start with [Access control]({{< relref "/operate/rs/8.0/security/access-control" >}}). +1. [Add users](/content/operate/rs/8.0/security/access-control/create-users.md) to the cluster with specific permissions. To begin, start with [Access control](/content/operate/rs/8.0/security/access-control/_index.md). diff --git a/content/operate/rs/8.0/installing-upgrading/install/install-script.md b/content/operate/rs/8.0/installing-upgrading/install/install-script.md index 1703df6707..2f3b270310 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/install-script.md +++ b/content/operate/rs/8.0/installing-upgrading/install/install-script.md @@ -17,13 +17,13 @@ The following options are supported: | Option | Description | |--------|-------------| -| `-y` | Automatically answers `yes` to all install prompts, accepting all default values
See [Manage install questions]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions" >}})| -| `-c ` | Specify answer file used to respond to install prompts
See [Manage install questions]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions" >}})| +| `-y` | Automatically answers `yes` to all install prompts, accepting all default values
See [Manage install questions](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md)| +| `-c ` | Specify answer file used to respond to install prompts
See [Manage install questions](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md)| | `-s ` | Specify directory for redislabs unix sockets _(new installs only)_| -| `--install-dir ` | Specifies installation directory _(new installs only)_
See [Customize install locations]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-install-directories" >}})| -| `--config-dir ` | Configuration file directory *(new installs only)*
See [Customize install locations]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-install-directories" >}})| -|
`--var-dir ` | Var directory used for installation *(new installs only)*
See [Customize install locations]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-install-directories" >}})| -| `--os-user `| Operating system user account associated with install; default: `redislabs`
See [Customize user and group]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group" >}}) *(new installs only)*| -|
`--os-group ` | Operating system group associated with install; default: `redislabs`
See [Customize user and group]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group" >}}) *(new installs only)* | +|
`--install-dir ` | Specifies installation directory _(new installs only)_
See [Customize install locations](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md)| +| `--config-dir ` | Configuration file directory *(new installs only)*
See [Customize install locations](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md)| +|
`--var-dir ` | Var directory used for installation *(new installs only)*
See [Customize install locations](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md)| +| `--os-user `| Operating system user account associated with install; default: `redislabs`
See [Customize user and group](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) *(new installs only)*| +|
`--os-group ` | Operating system group associated with install; default: `redislabs`
See [Customize user and group](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) *(new installs only)* | | `--skip-dns-port-verification` | Skip DNS port verification during installation | -|
`--update-env-path` | Add paths related to Redis Software to root's PATH environment variable
See [Manage install questions]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions" >}}) | +| `--update-env-path` | Add paths related to Redis Software to root's PATH environment variable
See [Manage install questions](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md) | diff --git a/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md b/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md index fb257c3167..41ca925a5d 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md +++ b/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md @@ -22,7 +22,7 @@ Several questions appear during installation: - **Linux swap file** - `Swap is enabled. Do you want to proceed? [Y/N]?` - We recommend that you [disable Linux swap]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md" >}}) in the operating system configuration + We recommend that you [disable Linux swap](/content/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md) in the operating system configuration to give Redis Software control of the memory allocation. - **Automatic OS tuning** - `Do you want to automatically tune the system for best performance [Y/N]?` @@ -36,15 +36,15 @@ Several questions appear during installation: Redis Software requires that all cluster nodes have synchronized time. You can either let the installation process configure NTP - or you can [configure NTP manually]({{< relref "/operate/rs/8.0/clusters/configure/sync-clocks.md" >}}). + or you can [configure NTP manually](/content/operate/rs/8.0/clusters/configure/sync-clocks.md). - **Firewall ports** - `Would you like to open RedisLabs cluster ports on the default firewall zone [Y/N]?` - Redis Software requires that all nodes have [specific network ports]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) open. + Redis Software requires that all nodes have [specific network ports](/content/operate/rs/8.0/networking/port-configurations.md) open. To open the ports, you can: - Answer `Y` to let the installation process open these ports. - - Answer `N` and configure the firewall manually for [RHEL/CentOS firewall]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall" >}}). + - Answer `N` and configure the firewall manually for [RHEL/CentOS firewall](/content/operate/rs/8.0/installing-upgrading/configuring/centos-rhel-firewall.md). - Answer `N` and configure the firewall on the node manually for your OS. - **Installation verification (rlcheck)** - `Would you like to run rlcheck to verify proper configuration? [Y/N]?` @@ -64,11 +64,11 @@ Several questions appear during installation: ## Answer install questions automatically -To perform a silent (or automated) install, answer the questions when you start the [install]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}). +To perform a silent (or automated) install, answer the questions when you start the [install](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md). ### Answer yes to all questions -To automatically answer `yes` to all questions (which accepts the default values), run the [installation script]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-script" >}}) with the `-y` parameter: +To automatically answer `yes` to all questions (which accepts the default values), run the [installation script](/content/operate/rs/8.0/installing-upgrading/install/install-script.md) with the `-y` parameter: ```bash ./install.sh -y @@ -106,7 +106,7 @@ Use an answer file to manage your response: ignore_master_version=no ``` -1. Run the [installation script]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-script" >}}) with the `-c` command-line option and add the path to the answer file. +1. Run the [installation script](/content/operate/rs/8.0/installing-upgrading/install/install-script.md) with the `-c` command-line option and add the path to the answer file. For example: diff --git a/content/operate/rs/8.0/installing-upgrading/install/offline-installation.md b/content/operate/rs/8.0/installing-upgrading/install/offline-installation.md index cf5e5b3d1c..2fafe506ab 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/offline-installation.md +++ b/content/operate/rs/8.0/installing-upgrading/install/offline-installation.md @@ -13,7 +13,7 @@ url: '/operate/rs/8.0/installing-upgrading/install/offline-installation/' --- By default, the installation process requires an internet connection to enable installing dependency packages and for [synchronizing the -operating system clock]({{< relref "/operate/rs/8.0/clusters/configure/sync-clocks.md" >}}) against an NTP server. +operating system clock](/content/operate/rs/8.0/clusters/configure/sync-clocks.md) against an NTP server. If you install Redis Software on a machine without an internet connection, you need to perform two tasks manually. @@ -24,4 +24,4 @@ When you install Redis Software on a machine that is not connected to the intern ## Set up NTP time synchronization -At the end of the installation, the process asks if you want to set up NTP time synchronization. If you choose `Yes` while you are not connected to the internet, the action fails and displays the appropriate error message, but the installation completes successfully. Despite the successful completion of the installation, you still have to configure all nodes for [NTP time synchronization]({{< relref "/operate/rs/8.0/clusters/configure/sync-clocks.md" >}}). +At the end of the installation, the process asks if you want to set up NTP time synchronization. If you choose `Yes` while you are not connected to the internet, the action fails and displays the appropriate error message, but the installation completes successfully. Despite the successful completion of the installation, you still have to configure all nodes for [NTP time synchronization](/content/operate/rs/8.0/clusters/configure/sync-clocks.md). diff --git a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/_index.md b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/_index.md index 98b83b9b4f..9edfb38555 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/_index.md +++ b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/_index.md @@ -14,33 +14,33 @@ url: '/operate/rs/8.0/installing-upgrading/install/plan-deployment/' Before installing Redis Software, you need to: -- Set up your hardware. See [Hardware requirements]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}) and [Persistent and ephemeral node storage -]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}) for more information. +- Set up your hardware. See [Hardware requirements](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md) and [Persistent and ephemeral node storage +](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md) for more information. -- Choose your [deployment platform]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md" >}}). +- Choose your [deployment platform](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md). Redis Software supports a variety of platforms, including: - Multiple Linux distributions (Ubuntu, Red Hat Enterprise Linux (RHEL), IBM CentOS, Oracle Linux) - - [Amazon AWS AMI]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances" >}}) - - [Docker container]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart" >}}) (for development and testing only) - - [Kubernetes]({{< relref "/operate/kubernetes" >}}) + - [Amazon AWS AMI](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances.md) + - [Docker container](/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md) (for development and testing only) + - [Kubernetes](/content/operate/kubernetes/_index.md) - For more details, see [Supported platforms]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md" >}}). + For more details, see [Supported platforms](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/supported-platforms.md). -- Open appropriate [network ports]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) in the firewall to allow connections to the nodes. +- Open appropriate [network ports](/content/operate/rs/8.0/networking/port-configurations.md) in the firewall to allow connections to the nodes. -- Configure [cluster DNS]({{< relref "/operate/rs/8.0/networking/cluster-dns.md" >}}) so that cluster nodes can reach each other by DNS names. -- By default, the installation process requires an internet connection to install dependencies and synchronize the operating system clock. To learn more, see [Offline installation]({{< relref "/operate/rs/8.0/installing-upgrading/install/offline-installation" >}}). +- Configure [cluster DNS](/content/operate/rs/8.0/networking/cluster-dns.md) so that cluster nodes can reach each other by DNS names. +- By default, the installation process requires an internet connection to install dependencies and synchronize the operating system clock. To learn more, see [Offline installation](/content/operate/rs/8.0/installing-upgrading/install/offline-installation.md). -- [Configure different mount points for data and log directories]({{}}). +- [Configure different mount points for data and log directories](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md#config-diff-data-log-dirs). ## Next steps After you finish planning your deployment, you can: -- [Download an installation package]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package" >}}). +- [Download an installation package](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md). -- [Prepare to install]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install" >}}) Redis Software. +- [Prepare to install](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/_index.md) Redis Software. -- [View installation questions]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions" >}}) and prepare answers before installation. +- [View installation questions](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md) and prepare answers before installation. diff --git a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances.md b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances.md index 6ccde73281..c59f23e8c4 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances.md +++ b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances.md @@ -27,24 +27,23 @@ not be. If you require a persistent storage location for your database, the storage must be located outside of the instance. When you set up an instance, make sure it has a properly sized EBS-backed volume connected. When you set up Redis Software on the instance, make sure that [the -persistence storage]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}) is configured to use this volume. +persistence storage](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md) is configured to use this volume. -{{< note >}} -After [installing the Redis Software package]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) on the instance -and **before** running through [the setup process]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup.md" >}}), -you must give the group `redislabs` permission to the EBS volume by -running the following command from the OS command-line interface (CLI): -```sh -chown redislabs:redislabs /< ebs folder name> -``` -{{< /note >}} +> [!NOTE] +> After [installing the Redis Software package](/content/operate/rs/8.0/installing-upgrading/_index.md) on the instance +> and **before** running through [the setup process](/content/operate/rs/8.0/clusters/new-cluster-setup.md), +> you must give the group `redislabs` permission to the EBS volume by +> running the following command from the OS command-line interface (CLI): +> ```sh +> chown redislabs:redislabs /< ebs folder name> +> ``` Another feature that may be of importance to you is the use of Provisioned IOPS for EBS-backed volumes. Provisioned IOPS guarantee a certain level of disk performance. There are two features in Redis Software where this feature could be critical to use: -1. When using [Redis Flex or Auto Tiering]({{< relref "/operate/rs/8.0/databases/flash/" >}}) +1. When using [Redis Flex or Auto Tiering](/content/operate/rs/8.0/databases/flash/_index.md) 1. When using AOF on every write and there is a high write load. In this case, the provisioned IOPS should be on the nodes used as replicas in the cluster. @@ -53,7 +52,7 @@ this feature could be critical to use: Choose an instance type that has (at minimum) enough free memory and disk space to meet the Redis Software [hardware -requirements]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}). +requirements](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md). In addition, some instance types are optimized for EBS-backed volumes and some are not. If you are using persistent storage, you should use an @@ -69,14 +68,14 @@ When configuring the security group: access the Cluster Manager UI. - If you are using the DNS resolving option with Redis Software, define a DNS UDP rule for port 53 to allow access to the databases' endpoints by - using the [DNS resolving mechanism]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}). + using the [DNS resolving mechanism](/content/operate/rs/8.0/networking/cluster-dns.md). - To create a cluster that has multiple nodes all running as instances on AWS, you need to define a security group that has an All TCP rule for all ports, 0 - 65535, and add it to all instances that are part of the cluster. This ensures that all nodes are able to communicate with each other. - To limit the number of open ports, you can open only the [ports used by Redis Software]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}). + To limit the number of open ports, you can open only the [ports used by Redis Software](/content/operate/rs/8.0/networking/port-configurations.md). After successfully launching the instances: -1. Install Redis Software from the [Linux package or AWS AMI]({{< relref "/operate/rs/8.0/installing-upgrading" >}}). -2. [Set up the cluster]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup.md" >}}). +1. Install Redis Software from the [Linux package or AWS AMI](/content/operate/rs/8.0/installing-upgrading/_index.md). +2. [Set up the cluster](/content/operate/rs/8.0/clusters/new-cluster-setup.md). diff --git a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md index 8a555c771e..6547737371 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md +++ b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations.md @@ -10,9 +10,8 @@ linkTitle: File locations weight: 60 url: '/operate/rs/8.0/installing-upgrading/install/plan-deployment/file-locations/' --- -{{}} -To ensure that Redis Software functions properly, be careful with the files in the application directories. If you modify or delete the application files, Redis Software might not work as expected. -{{}} +> [!WARNING] +> To ensure that Redis Software functions properly, be careful with the files in the application directories. If you modify or delete the application files, Redis Software might not work as expected. ## Application directories @@ -21,7 +20,7 @@ The directories that Redis Software installs into are: | **Path** | **Description** | |------------|-----------------| | /opt/redislabs | Main installation directory for all Redis Software binaries | -| /opt/redislabs/bin | Binaries for all the utilities for command-line access and management, such as [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) or [`redis-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/redis-cli" >}}) | +| /opt/redislabs/bin | Binaries for all the utilities for command-line access and management, such as [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) or [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) | | /opt/redislabs/config | System configuration files | | /opt/redislabs/lib | System library files | | /opt/redislabs/sbin | System binaries for tweaking provisioning | @@ -40,9 +39,8 @@ The default directories that Redis Software uses for data and metadata are: You can change these file locations for: -- [Ephemeral and persistence storage]({{< relref "/operate/rs/8.0/clusters/new-cluster-setup.md" >}}) during cluster setup -- [Socket files]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md" >}}) after cluster setup +- [Ephemeral and persistence storage](/content/operate/rs/8.0/clusters/new-cluster-setup.md) during cluster setup +- [Socket files](/content/operate/rs/8.0/installing-upgrading/configuring/change-location-socket-files.md) after cluster setup -{{< note >}} -To specify custom paths for ephemeral and persistent storage during cluster setup, you must install Redis Software using [custom installation directories]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-install-directories" >}}). If you use the default installation, you cannot specify custom storage paths and will receive a "path not mounted" error. -{{< /note >}} +> [!NOTE] +> To specify custom paths for ephemeral and persistent storage during cluster setup, you must install Redis Software using [custom installation directories](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md). If you use the default installation, you cannot specify custom storage paths and will receive a "path not mounted" error. diff --git a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md index f57dcfd39d..38477872bd 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md +++ b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md @@ -23,25 +23,24 @@ Factors to consider when sizing your database. - **Dataset size** – Your limit should be greater than your dataset size to leave room for overhead. - **Database throughput** – High throughput needs more shards, leading to a higher memory limit. -- [**Modules**]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}) – Using modules with your database consumes more memory. -- [**Database clustering**]({{< relref "/operate/rs/8.0/databases/durability-ha/clustering" >}}) – Allows you to spread your data into shards across multiple nodes. -- [**Database replication**]({{< relref "/operate/rs/8.0/databases/durability-ha/replication" >}}) – Enabling replication doubles memory consumption. +- [**Modules**](/content/operate/oss_and_stack/stack-with-enterprise/_index.md) – Using modules with your database consumes more memory. +- [**Database clustering**](/content/operate/rs/8.0/databases/durability-ha/clustering.md) – Allows you to spread your data into shards across multiple nodes. +- [**Database replication**](/content/operate/rs/8.0/databases/durability-ha/replication.md) – Enabling replication doubles memory consumption. ### Active-Active database sizing {#active-active-sizing} Additional factors for sizing Active-Active databases: -- [**Active-Active replication**]({{< relref "/operate/rs/8.0/databases/active-active" >}}) – Requires double the memory of regular replication, which can be up to two times (2x) the original data size per instance. -- [**Database replication backlog**]({{< relref "/operate/rs/8.0/databases/durability-ha/replication#database-replication-backlog" >}}) – For synchronization between shards. By default, this is set to 1% of the database size. -- [**Active-Active replication backlog**]({{< relref "/operate/rs/8.0/databases/active-active/manage#replication-backlog" >}}) – For synchronization between clusters. By default, this is set to 1% of the database size. +- [**Active-Active replication**](/content/operate/rs/8.0/databases/active-active/_index.md) – Requires double the memory of regular replication, which can be up to two times (2x) the original data size per instance. +- [**Database replication backlog**](/content/operate/rs/8.0/databases/durability-ha/replication.md#database-replication-backlog) – For synchronization between shards. By default, this is set to 1% of the database size. +- [**Active-Active replication backlog**](/content/operate/rs/8.0/databases/active-active/manage.md#replication-backlog) – For synchronization between clusters. By default, this is set to 1% of the database size. -{{}} -Active-Active databases have a lower threshold for activating the eviction policy, because it requires propagation to all participating clusters. The eviction policy starts to evict keys when one of the Active-Active instances reaches 80% of its memory limit. -{{}} +> [!NOTE] +> Active-Active databases have a lower threshold for activating the eviction policy, because it requires propagation to all participating clusters. The eviction policy starts to evict keys when one of the Active-Active instances reaches 80% of its memory limit. ### Sizing databases with Auto Tiering enabled {#redis-on-flash-sizing} Additional factors for sizing databases with Auto Tiering enabled: -- [**Database persistence**]({{< relref "/operate/rs/8.0/databases/configure/database-persistence#redis-on-flash-data-persistence" >}}) – Auto Tiering uses dual database persistence where both the primary and replica shards persist to disk. This may add some processor and network overhead, especially in cloud configurations with network-attached storage. +- [**Database persistence**](/content/operate/rs/8.0/databases/configure/database-persistence.md#redis-on-flash-data-persistence) – Auto Tiering uses dual database persistence where both the primary and replica shards persist to disk. This may add some processor and network overhead, especially in cloud configurations with network-attached storage. diff --git a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md index 44a83782dc..a6cb8e43a2 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md +++ b/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md @@ -13,12 +13,11 @@ weight: 50 url: '/operate/rs/8.0/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage/' --- For each node in the cluster, you can configure paths for both persistent -storage and ephemeral storage. To do so, the volume must have full permissions for user and group `redislabs` or users:group `redislabs:redislabs`. See the [Customize system user and group]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-user-and-group" >}}) page for instructions. +storage and ephemeral storage. To do so, the volume must have full permissions for user and group `redislabs` or users:group `redislabs:redislabs`. See the [Customize system user and group](/content/operate/rs/8.0/installing-upgrading/install/customize-user-and-group.md) page for instructions. -{{< note >}} -The persistent storage and ephemeral storage discussed in this document are not related -to Redis persistence or AWS ephemeral drives. -{{< /note >}} +> [!NOTE] +> The persistent storage and ephemeral storage discussed in this document are not related +> to Redis persistence or AWS ephemeral drives. ## Persistent storage @@ -26,7 +25,7 @@ Persistent storage is mandatory. The cluster uses persistent storage to store information that needs to persist if a shard or a node fails, such as server logs, configurations, and files. -To set the frequency of syncs, you can configure [persistence]({{< relref "/operate/rs/8.0/databases/configure/database-persistence" >}}) +To set the frequency of syncs, you can configure [persistence](/content/operate/rs/8.0/databases/configure/database-persistence.md) options for a database. The persistent volume must be a storage area network (SAN) @@ -48,10 +47,10 @@ Ephemeral storage must be a locally attached volume on each node. For disk size requirements, see: - [Hardware - requirements]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements" >}}) + requirements](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/hardware-requirements.md) for general guidelines regarding the ideal disk size for each type of storage. - [Disk size requirements for extreme write - scenarios]({{< relref "/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios" >}}) + scenarios](/content/operate/rs/8.0/clusters/optimize/disk-sizing-heavy-write-scenarios.md) for special considerations when dealing with a high rate of write commands. diff --git a/content/operate/rs/8.0/installing-upgrading/install/prepare-install/_index.md b/content/operate/rs/8.0/installing-upgrading/install/prepare-install/_index.md index 652d1893b9..bd194a9449 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/prepare-install/_index.md +++ b/content/operate/rs/8.0/installing-upgrading/install/prepare-install/_index.md @@ -14,24 +14,24 @@ url: '/operate/rs/8.0/installing-upgrading/install/prepare-install/' Before you install Redis Software: -- [Download an installation package]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package" >}}). +- [Download an installation package](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md). -- [View installation questions]({{< relref "/operate/rs/8.0/installing-upgrading/install/manage-installation-questions" >}}) and optionally prepare answers before installation. +- [View installation questions](/content/operate/rs/8.0/installing-upgrading/install/manage-installation-questions.md) and optionally prepare answers before installation. -- Review the [security considerations]({{< relref "/operate/rs/8.0/security/" >}}) for your deployment. +- Review the [security considerations](/content/operate/rs/8.0/security/_index.md) for your deployment. - Check that you have root-level access to each node, either directly or with `sudo`. -- Check that all [required ports are available]({{< relref "/operate/rs/8.0/installing-upgrading/install/prepare-install/port-availability" >}}). +- Check that all [required ports are available](/content/operate/rs/8.0/installing-upgrading/install/prepare-install/port-availability.md). -- [Turn off Linux swap]({{< relref "/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md" >}}) on all cluster nodes. +- [Turn off Linux swap](/content/operate/rs/8.0/installing-upgrading/configuring/linux-swap.md) on all cluster nodes. - If you require the `redislabs` UID (user ID) and GID (group ID) numbers to be the same on all the nodes, create the `redislabs` user and group with the required numbers on each node. -- If you want to use Auto Tiering for your databases, see [Auto Tiering installation]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux#auto-tiering-installation" >}}). +- If you want to use Auto Tiering for your databases, see [Auto Tiering installation](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md#auto-tiering-installation). ## Next steps -- View [installation script options]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-script" >}}) before starting the installation. +- View [installation script options](/content/operate/rs/8.0/installing-upgrading/install/install-script.md) before starting the installation. -- [Install Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/install" >}}). +- [Install Redis Software](/content/operate/rs/8.0/installing-upgrading/install/_index.md). diff --git a/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md b/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md index d04f6b63ca..eefd628621 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md +++ b/content/operate/rs/8.0/installing-upgrading/install/prepare-install/download-install-package.md @@ -17,7 +17,6 @@ To download the installation package for any of the supported platforms: 1. Sign in with your Redis credentials or create a new account. 1. In the **Downloads** section for Redis Software, select the installation package for your platform then select **Go**. -{{< note >}} -Before you install the Linux package or AWS AMI on an AWS EC2 instance, -review the [configuration requirements for AWS EC2 instances]({{< relref "/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances" >}}). -{{< /note >}} +> [!NOTE] +> Before you install the Linux package or AWS AMI on an AWS EC2 instance, +> review the [configuration requirements for AWS EC2 instances](/content/operate/rs/8.0/installing-upgrading/install/plan-deployment/configuring-aws-instances.md). diff --git a/content/operate/rs/8.0/installing-upgrading/install/prepare-install/port-availability.md b/content/operate/rs/8.0/installing-upgrading/install/prepare-install/port-availability.md index 9bae457593..730c29929c 100644 --- a/content/operate/rs/8.0/installing-upgrading/install/prepare-install/port-availability.md +++ b/content/operate/rs/8.0/installing-upgrading/install/prepare-install/port-availability.md @@ -11,7 +11,7 @@ weight: 40 url: '/operate/rs/8.0/installing-upgrading/install/prepare-install/port-availability/' --- -Before [installing Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/install" >}}), make sure all required ports are available. +Before [installing Redis Software](/content/operate/rs/8.0/installing-upgrading/install/_index.md), make sure all required ports are available. {{}} diff --git a/content/operate/rs/8.0/installing-upgrading/product-lifecycle.md b/content/operate/rs/8.0/installing-upgrading/product-lifecycle.md index 9742c33748..ae2946c511 100644 --- a/content/operate/rs/8.0/installing-upgrading/product-lifecycle.md +++ b/content/operate/rs/8.0/installing-upgrading/product-lifecycle.md @@ -14,7 +14,7 @@ url: '/operate/rs/8.0/installing-upgrading/product-lifecycle/' The Redis Software product lifecycle fully reflects the [subscription agreement](https://redis.io/legal/software-agreement/). However, for any discrepancy between the two policies, the subscription agreement prevails. -Redis Software modules follow the [modules lifecycle]({{< relref "/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle" >}}). +Redis Software modules follow the [modules lifecycle](/content/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle.md). ## Redis Software cluster version lifecycle @@ -77,11 +77,10 @@ The following timeline chart visualizes the Redis Software product lifecycle, sh {{}} -For detailed upgrade instructions, see [Upgrade a Redis Software cluster]({{}}). +For detailed upgrade instructions, see [Upgrade a Redis Software cluster](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md). -{{}} -Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions]({{}}). -{{}} +> [!NOTE] +> Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions](/content/operate/kubernetes/reference/supported_k8s_distributions.md). ## Bundled Redis database versions diff --git a/content/operate/rs/8.0/installing-upgrading/quickstarts/_index.md b/content/operate/rs/8.0/installing-upgrading/quickstarts/_index.md index b8b102e07e..759847d144 100644 --- a/content/operate/rs/8.0/installing-upgrading/quickstarts/_index.md +++ b/content/operate/rs/8.0/installing-upgrading/quickstarts/_index.md @@ -14,14 +14,14 @@ url: '/operate/rs/8.0/installing-upgrading/quickstarts/' Try out Redis Software using one of the following quickstarts: -- [Redis Software quickstart]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart" >}}) +- [Redis Software quickstart](/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md) -- [Docker quickstart for Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart" >}}) +- [Docker quickstart for Redis Software](/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md) Additional quickstart guides are available to help you: -- Set up a [Redis Flex or Auto Tiering cluster]({{< relref "/operate/rs/8.0/databases/flash/quickstart" >}}) to optimize memory resources. +- Set up a [Redis Flex or Auto Tiering cluster](/content/operate/rs/8.0/databases/flash/quickstart.md) to optimize memory resources. -- Set up an [Active-Active cluster]({{< relref "/operate/rs/8.0/databases/active-active/get-started.md" >}}) to enable high availability. +- Set up an [Active-Active cluster](/content/operate/rs/8.0/databases/active-active/get-started.md) to enable high availability. -- [Benchmark]({{< relref "/operate/rs/8.0/clusters/optimize/memtier-benchmark.md" >}}) Redis Software performance. +- [Benchmark](/content/operate/rs/8.0/clusters/optimize/memtier-benchmark.md) Redis Software performance. diff --git a/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md b/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md index 774e5a5f77..e6ded899e3 100644 --- a/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md +++ b/content/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart.md @@ -12,9 +12,8 @@ weight: 2 aliases: /operate/rs/installing-upgrading/get-started-docker/ url: '/operate/rs/8.0/installing-upgrading/quickstarts/docker-quickstart/' --- -{{< warning >}} -Docker containers are currently only supported for development and test environments, not for production. Use [Redis Enterprise on Kubernetes]({{< relref "/operate/kubernetes" >}}) for a supported containerized deployment. -{{< /warning >}} +> [!WARNING] +> Docker containers are currently only supported for development and test environments, not for production. Use [Redis Enterprise on Kubernetes](/content/operate/kubernetes/_index.md) for a supported containerized deployment. For testing purposes, you can run Redis Software on Docker containers on Linux, Windows, or MacOS. @@ -46,9 +45,8 @@ Follow the Docker installation instructions for your operating system: To download and start the Redis Software Docker container, run the following [`docker run`](https://docs.docker.com/engine/reference/commandline/run/) command in the terminal or command line for your operating system. -{{< note >}} -On Windows, make sure Docker is configured to run Linux-based containers. -{{< /note >}} +> [!NOTE] +> On Windows, make sure Docker is configured to run Linux-based containers. ```sh docker run -d --cap-add sys_resource --name RE -p 8443:8443 -p 9443:9443 -p 12000:12000 redislabs/redis @@ -58,11 +56,11 @@ The example command runs the Docker container with Redis Software on `localhost` - Port 8443 for HTTPS connections -- Port 9443 for [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) connections +- Port 9443 for [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) connections - Port 12000 configured Redis database port allowing client connections -You can publish other [ports]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) +You can publish other [ports](/content/operate/rs/8.0/networking/port-configurations.md) with `-p :` or use the `--network host` option to open all ports to the host network. ## Set up a cluster @@ -73,9 +71,8 @@ with `-p :` or use the `--network host` option to ope {{}} -{{< note >}} -{{< embed-md "docker-memory-limitation.md" >}} -{{< /note >}} +> [!NOTE] +> {{< embed-md "docker-memory-limitation.md" >}} ## Connect to your database @@ -83,7 +80,7 @@ After you create the Redis database, you can connect to it to begin storing data ### Use redis-cli inside Docker {#connect-inside-docker} -Every installation of Redis Software includes the command-line tool [`redis-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/redis-cli" >}}) to interact with your Redis database. You can use `redis-cli` to connect to your database from within the same Docker network. +Every installation of Redis Software includes the command-line tool [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md) to interact with your Redis database. You can use `redis-cli` to connect to your database from within the same Docker network. Use [`docker exec`](https://docs.docker.com/engine/reference/commandline/exec/) to start an interactive `redis-cli` session in the running Redis Software container: @@ -99,13 +96,12 @@ To find the container name or ID, use [`docker ps`](https://docs.docker.com/refe ### Connect from the host environment {#connect-outside-docker} -The database you created uses port `12000`, which is also mapped from the Docker container back to the host environment. This lets you use any method you have available locally to [connect to a Redis database]({{< relref "/operate/rs/8.0/databases/connect/" >}}). Use `localhost` as the `host` and `12000` as the port. +The database you created uses port `12000`, which is also mapped from the Docker container back to the host environment. This lets you use any method you have available locally to [connect to a Redis database](/content/operate/rs/8.0/databases/connect/_index.md). Use `localhost` as the `host` and `12000` as the port. ## Test different topologies -{{< warning >}} -Docker containers are currently only supported for development and test environments, not for production. Use [Redis Enterprise on Kubernetes]({{< relref "/operate/kubernetes" >}}) for a supported containerized deployment. -{{< /warning >}} +> [!WARNING] +> Docker containers are currently only supported for development and test environments, not for production. Use [Redis Enterprise on Kubernetes](/content/operate/kubernetes/_index.md) for a supported containerized deployment. When deploying Redis Software using Docker for testing, several common topologies are available, according to your requirements: diff --git a/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md b/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md index af58b56128..be8af3d188 100644 --- a/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md +++ b/content/operate/rs/8.0/installing-upgrading/quickstarts/redis-enterprise-software-quickstart.md @@ -24,10 +24,9 @@ When finished, you'll have a simple cluster with a single node: 1. [Connect to your Redis database](#connect-to-your-database) -{{< note >}} -**This quickstart is designed for local testing only.** -For production environments, see the [install and setup]({{< relref "/operate/rs/8.0/installing-upgrading#install-redis-enterprise-software" >}}) guide for deployment options and instructions. -{{< /note >}} +> [!NOTE] +> **This quickstart is designed for local testing only.** +> For production environments, see the [install and setup](/content/operate/rs/8.0/installing-upgrading/_index.md#install-redis-enterprise-software) guide for deployment options and instructions. ## Ensure port availability @@ -65,9 +64,9 @@ To install Redis Software: 1. Download the installation files from the [Redis Software Download Center](https://redis.io/downloads/#Redis_Software) and copy the download package to a machine with a Linux-based OS. - {{< note >}} -You are required to create a free account to access the download center. - {{< /note >}} + > [!NOTE] + > You are required to create a free account to access the download center. + > 1. Extract the installation files: @@ -94,7 +93,7 @@ To set up your machine as a Redis Software cluster: ## Connect to your database After you create the Redis database, you can connect to it and store data. -See [Test client connection]({{< relref "/operate/rs/8.0/databases/connect/test-client-connectivity" >}}) for connection options and examples. +See [Test client connection](/content/operate/rs/8.0/databases/connect/test-client-connectivity.md) for connection options and examples. ## Supported web browsers diff --git a/content/operate/rs/8.0/installing-upgrading/uninstalling.md b/content/operate/rs/8.0/installing-upgrading/uninstalling.md index 447b3c57e3..ed8b0fff82 100644 --- a/content/operate/rs/8.0/installing-upgrading/uninstalling.md +++ b/content/operate/rs/8.0/installing-upgrading/uninstalling.md @@ -13,7 +13,7 @@ url: '/operate/rs/8.0/installing-upgrading/uninstalling/' Use the script `rl_uninstall.sh` to uninstall Redis Software and remove its files from a node. The script also deletes all Redis data and configuration from the node. -The uninstall script does not remove the node from the cluster, but the node's status changes to down. For node removal instructions, see [Remove a cluster node]({{}}). +The uninstall script does not remove the node from the cluster, but the node's status changes to down. For node removal instructions, see [Remove a cluster node](/content/operate/rs/8.0/clusters/remove-node.md). ## Uninstall Redis Software diff --git a/content/operate/rs/8.0/installing-upgrading/upgrading/_index.md b/content/operate/rs/8.0/installing-upgrading/upgrading/_index.md index 9ec5220a2c..72bccb887d 100644 --- a/content/operate/rs/8.0/installing-upgrading/upgrading/_index.md +++ b/content/operate/rs/8.0/installing-upgrading/upgrading/_index.md @@ -16,28 +16,28 @@ url: '/operate/rs/8.0/installing-upgrading/upgrading/' To upgrade Redis Software: -1. Verify appropriate [network ports]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) are either open or used by Redis Software. +1. Verify appropriate [network ports](/content/operate/rs/8.0/networking/port-configurations.md) are either open or used by Redis Software. -1. Complete all [prerequisites]({{}}) before starting the upgrade. +1. Complete all [prerequisites](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md#upgrade-prerequisites) before starting the upgrade. 1. Upgrade the software on all nodes of the cluster using one of the following methods: - - [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. + - [In-place upgrade](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md#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. - - [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. + - [Rolling upgrade](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md#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. ## Upgrade Redis database -[Upgrade each database]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database" >}}) in the cluster or [upgrade an Active-Active database]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active" >}}) to enable new features and important fixes. +[Upgrade each database](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md) in the cluster or [upgrade an Active-Active database](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active.md) to enable new features and important fixes. ## Upgrade operating system To upgrade the cluster's operating system: -1. Complete all [prerequisites]({{}}) before starting the upgrade. +1. Complete all [prerequisites](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-os.md#prerequisites) before starting the upgrade. 2. Use one of the following rolling upgrade methods: - - [Extra node method]({{}}) - Recommended if you have additional resources available. + - [Extra node method](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-os.md#extra-node-upgrade) - Recommended if you have additional resources available. - - [Replace node method]({{}}) - Recommended if you cannot temporarily allocate additional resources. \ No newline at end of file + - [Replace node method](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-os.md#replace-node-upgrade) - Recommended if you cannot temporarily allocate additional resources. \ No newline at end of file diff --git a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active.md b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active.md index f6613dc946..45a2dc3526 100644 --- a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active.md +++ b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active.md @@ -13,17 +13,17 @@ url: '/operate/rs/8.0/installing-upgrading/upgrading/upgrade-active-active/' ## Upgrade an Active-Active database -To upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/8.0/databases/active-active" >}}), you can upgrade all database instances with a single REST API request or upgrade each instance separately with `rladmin` and `crdb-cli`. The REST API method requires Redis Software version 8.0.18 or later. +To upgrade an [Active-Active (CRDB) database](/content/operate/rs/8.0/databases/active-active/_index.md), you can upgrade all database instances with a single REST API request or upgrade each instance separately with `rladmin` and `crdb-cli`. The REST API method requires Redis Software version 8.0.18 or later. {{< multitabs id="upgrade-active-active-db" tab1="REST API" tab2="rladmin and crdb-cli" >}} -1. [Upgrade Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster" >}}) on each node in the clusters where the Active-Active instances are located. +1. [Upgrade Redis Software](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md) on each node in the clusters where the Active-Active instances are located. 1. [Check the status](#check-database-status) of all Active-Active database instances. -1. Find the `` of your Active-Active database with the [`crdb-cli crdb list`]({{}}) command: +1. Find the `` of your Active-Active database with the [`crdb-cli crdb list`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/list.md) command: ```sh crdb-cli crdb list @@ -31,7 +31,7 @@ To upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/8.0/databa Look for the fully qualified domain name (`CLUSTER-FQDN`) of your cluster and use the associated `GUID`. -1. Use an [upgrade Active-Active database]({{< relref "/operate/rs/8.0/references/rest-api/requests/crdbs/upgrade" >}}) REST API request. The request upgrades the Redis version and modules of all database instances across regions, then upgrades the feature set version after all instances are upgraded. +1. Use an [upgrade Active-Active database](/content/operate/rs/8.0/references/rest-api/requests/crdbs/upgrade.md) REST API request. The request upgrades the Redis version and modules of all database instances across regions, then upgrades the feature set version after all instances are upgraded. ```sh POST https://:/v1/crdbs//upgrade @@ -41,9 +41,9 @@ To upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/8.0/databa } ``` - For additional upgrade options, see the [request body]({{}}) section of the Active-Active database upgrade requests reference. + For additional upgrade options, see the [request body](/content/operate/rs/8.0/references/rest-api/requests/crdbs/upgrade.md#request-body) section of the Active-Active database upgrade requests reference. -1. Check the upgrade's progress with the ID of the [CRDB task]({{< relref "/operate/rs/8.0/references/rest-api/requests/crdb_tasks#get-crdb_task" >}}) returned by the upgrade request: +1. Check the upgrade's progress with the ID of the [CRDB task](/content/operate/rs/8.0/references/rest-api/requests/crdb_tasks/_index.md#get-crdb_task) returned by the upgrade request: ```sh GET https://:/v1/crdb_tasks/ @@ -53,7 +53,7 @@ To upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/8.0/databa -tab-sep- -1. [Upgrade Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster" >}}) on each node in the clusters where the Active-Active instances are located. +1. [Upgrade Redis Software](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md) on each node in the clusters where the Active-Active instances are located. 1. [Check the status](#check-database-status) of all Active-Active database instances. @@ -61,7 +61,7 @@ To upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/8.0/databa 1. If the status indicates `OLD CRDB FEATURESET VERSION`, [upgrade the featureset version](#upgrade-featureset-version). See [Feature version guidelines](#feature-version-guidelines) for more information. -1. If your Active-Active database uses modules, [update module information](#update-module-information). To check if your database uses modules, run [`rladmin status modules`]({{}}): +1. If your Active-Active database uses modules, [update module information](#update-module-information). To check if your database uses modules, run [`rladmin status modules`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md#status-modules): ```sh rladmin status modules db { db: | } @@ -71,7 +71,7 @@ To upgrade an [Active-Active (CRDB) database]({{< relref "/operate/rs/8.0/databa ## Check database status -To check the status of an Active-Active database instance, run [`rladmin status`]({{}}): +To check the status of an Active-Active database instance, run [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md): ```sh rladmin status @@ -91,7 +91,7 @@ The statuses of the Active-Active instances on the node can indicate: For each Active-Active database instance: -1. Upgrade the Redis database version and enabled modules with [`rladmin upgrade db`]({{}}): +1. Upgrade the Redis database version and enabled modules with [`rladmin upgrade db`](/content/operate/rs/8.0/references/cli-utilities/rladmin/upgrade.md#upgrade-db): ```sh rladmin upgrade db { db: | } @@ -103,11 +103,11 @@ For each Active-Active database instance: After confirmation, the Active-Active instance will use the new Redis version and CRDB protocol version. - {{}} -You can use the `keep_crdt_protocol_version` option to upgrade the database version without upgrading the CRDB protocol version. However, you must upgrade the CRDB protocol before you update the CRDB feature set version. - -If you use `keep_crdt_protocol_version`, make sure that you upgrade the CRDB protocol soon after with the [`rladmin upgrade db`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/upgrade#upgrade-db" >}}) command. - {{}} + > [!NOTE] + > You can use the `keep_crdt_protocol_version` option to upgrade the database version without upgrading the CRDB protocol version. However, you must upgrade the CRDB protocol before you update the CRDB feature set version. + > + > If you use `keep_crdt_protocol_version`, make sure that you upgrade the CRDB protocol soon after with the [`rladmin upgrade db`](/content/operate/rs/8.0/references/cli-utilities/rladmin/upgrade.md#upgrade-db) command. + > ### CRDB protocol version guidelines @@ -141,7 +141,7 @@ If the feature set version is old, as indicated by the `OLD CRDB FEATURESET VERS 1. Find the `` of your Active-Active database. - You can use the [`crdb-cli crdb list`]({{}}) command: + You can use the [`crdb-cli crdb list`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/list.md) command: ```sh crdb-cli crdb list diff --git a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md index 713eb6ad0d..59e26c58ef 100644 --- a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md +++ b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md @@ -25,27 +25,26 @@ To upgrade a cluster's Redis Software version, use one of the following methods: {{}} -See the [Redis Software product lifecycle]({{}}) for more information about release numbers and the end-of-life schedule. +See the [Redis Software product lifecycle](/content/operate/rs/8.0/installing-upgrading/product-lifecycle.md) for more information about release numbers and the end-of-life schedule. -{{}} -Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions]({{}}). -{{}} +> [!NOTE] +> Redis Enterprise for Kubernetes has its own support lifecycle, which accounts for the Kubernetes distribution lifecycle. For details, see [Supported Kubernetes distributions](/content/operate/kubernetes/reference/supported_k8s_distributions.md). ## Upgrade prerequisites Before upgrading a cluster: -- Verify access to [rlcheck]({{< relref "/operate/rs/8.0/references/cli-utilities/rlcheck/" >}}) and [rladmin]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/#use-the-rladmin-shell" >}}) commands. +- Verify access to [rlcheck](/content/operate/rs/8.0/references/cli-utilities/rlcheck/_index.md) and [rladmin](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md#use-the-rladmin-shell) commands. -- Run [rlcheck]({{< relref "/operate/rs/8.0/references/cli-utilities/rlcheck/" >}}) on each node and verify there are no issues: +- Run [rlcheck](/content/operate/rs/8.0/references/cli-utilities/rlcheck/_index.md) on each node and verify there are no issues: ```sh rlcheck ``` -- Verify [maintenance mode]({{< relref "/operate/rs/8.0/clusters/maintenance-mode" >}}) is not enabled: +- Verify [maintenance mode](/content/operate/rs/8.0/clusters/maintenance-mode.md) is not enabled: - 1. On a node in the cluster, run [`rladmin status`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status" >}}): + 1. On a node in the cluster, run [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md): ```sh rladmin status @@ -55,13 +54,13 @@ Before upgrading a cluster: {{< image filename="/images/rs/maintenance_mode.png" >}} - 1. To deactivate maintenance mode on a node, run the following [`rladmin node maintenance_mode off`]({{}}) command. See [Deactivate maintenance mode]({{}}) for additional details. + 1. To deactivate maintenance mode on a node, run the following [`rladmin node maintenance_mode off`](/content/operate/rs/8.0/references/cli-utilities/rladmin/node/maintenance-mode.md#node-maintenance_mode-off) command. See [Deactivate maintenance mode](/content/operate/rs/8.0/clusters/maintenance-mode.md#deactivate-maintenance-mode) for additional details. ```sh rladmin node maintenance_mode off ``` -- Verify that you meet the upgrade path requirements for the target cluster version and review the relevant [release notes]({{< relref "/operate/rs/release-notes" >}}) for any preparation instructions. +- Verify that you meet the upgrade path requirements for the target cluster version and review the relevant [release notes](/content/operate/rs/release-notes/_index.md) for any preparation instructions. - Before you upgrade a cluster from Redis 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: @@ -71,9 +70,9 @@ Before upgrading a cluster: rladmin tune cluster redis_upgrade_policy latest ``` - 1. [Upgrade Redis 6.0 databases]({{}}) to Redis 6.2. + 1. [Upgrade Redis 6.0 databases](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md) to Redis 6.2. -- [Upgrade your databases]({{}}) to a version that is supported by the target Redis 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. +- [Upgrade your databases](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md) to a version that is supported by the target Redis 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. - Avoid changing the database configuration or performing other cluster management operations during the cluster upgrade process, as this might cause unexpected results. @@ -81,9 +80,9 @@ Before upgrading a cluster: - **Nodes** screen in the new Cluster Manager UI (only available for Redis Software versions 7.2 and later) - - [`rladmin status nodes`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status#status-nodes" >}}) command + - [`rladmin status nodes`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md#status-nodes) command - - [`GET /nodes/status`]({{< relref "/operate/rs/8.0/references/rest-api/requests/nodes/status#get-all-nodes-status" >}}) REST API request + - [`GET /nodes/status`](/content/operate/rs/8.0/references/rest-api/requests/nodes/status.md#get-all-nodes-status) REST API request ## In-place upgrade @@ -98,9 +97,9 @@ Starting with the primary node, follow these steps for every node in the cluster $ rladmin status extra all ``` - {{}} -Do not proceed if any shard, node, or endpoint is not `OK`. - {{}} + > [!WARNING] + > Do not proceed if any shard, node, or endpoint is not `OK`. + > 1. Download the Redis Software installation package to the machine running the node from the Download Center on [https://cloud.redis.io](https://cloud.redis.io). @@ -110,11 +109,11 @@ Do not proceed if any shard, node, or endpoint is not `OK`. tar vxf ``` - {{}} -You cannot change the installation path or the user during the upgrade. - {{}} + > [!NOTE] + > You cannot change the installation path or the user during the upgrade. + > -1. Run the install command. See [installation script options]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-script" >}}) for a list of command-line options you can add to the following command. You cannot use options marked as "new installs only" during an in-place upgrade. +1. Run the install command. See [installation script options](/content/operate/rs/8.0/installing-upgrading/install/install-script.md) for a list of command-line options you can add to the following command. You cannot use options marked as "new installs only" during an in-place upgrade. ``` shell sudo ./install.sh @@ -147,23 +146,23 @@ To perform a rolling upgrade of the cluster, use one of the following methods: 1. Complete all [prerequisites](#upgrade-prerequisites) before starting the rolling upgrade. -1. [Install a later version of Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}) on a new node. +1. [Install a later version of Redis Software](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) on a new node. -1. [Add the new node]({{< relref "/operate/rs/8.0/clusters/add-node" >}}) to the cluster. +1. [Add the new node](/content/operate/rs/8.0/clusters/add-node.md) to the cluster. -1. If the [cluster uses DNS]({{}}), add the new node’s IP address to the DNS records. +1. If the [cluster uses DNS](/content/operate/rs/8.0/networking/cluster-dns.md), add the new node’s IP address to the DNS records. -1. [Promote the first new node]({{}}) to become the primary node. +1. [Promote the first new node](/content/operate/rs/8.0/clusters/change-node-role.md#promote-secondary-node) to become the primary node. -1. [Remove one node]({{< relref "/operate/rs/8.0/clusters/remove-node#remove-a-node" >}}) running the earlier Redis Software version from the cluster. +1. [Remove one node](/content/operate/rs/8.0/clusters/remove-node.md#remove-a-node) running the earlier Redis Software version from the cluster. -1. 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. +1. 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](/content/operate/rs/8.0/clusters/change-node-role.md#demote-primary-node) to a secondary node before you remove it. ### Replace node upgrade method {#replace-node-upgrade} 1. Complete all [prerequisites](#upgrade-prerequisites) before starting the rolling upgrade. -1. [Remove a node]({{< relref "/operate/rs/8.0/clusters/remove-node#remove-a-node" >}}) with the earlier Redis Software version from the cluster. +1. [Remove a node](/content/operate/rs/8.0/clusters/remove-node.md#remove-a-node) with the earlier Redis Software version from the cluster. 1. Uninstall Redis Software from the removed node: @@ -171,19 +170,19 @@ To perform a rolling upgrade of the cluster, use one of the following methods: sudo ./rl_uninstall.sh ``` -1. [Install a later version of Redis Software]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}) on the removed node or a new node. +1. [Install a later version of Redis Software](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) on the removed node or a new node. -1. [Add the new node]({{< relref "/operate/rs/8.0/clusters/add-node" >}}) to the cluster. +1. [Add the new node](/content/operate/rs/8.0/clusters/add-node.md) to the cluster. - If you want to reuse the removed node's ID when you add the node to the cluster, run [`rladmin cluster join`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/join" >}}) with the `replace_node` flag: + If you want to reuse the removed node's ID when you add the node to the cluster, run [`rladmin cluster join`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/join.md) with the `replace_node` flag: ```sh rladmin cluster join nodes username password replace_node ``` -1. If the [cluster uses DNS]({{}}), add the new node’s IP address to the DNS records. +1. If the [cluster uses DNS](/content/operate/rs/8.0/networking/cluster-dns.md), add the new node’s IP address to the DNS records. -1. [Promote the first new node]({{}}) to become the primary node. +1. [Promote the first new node](/content/operate/rs/8.0/clusters/change-node-role.md#promote-secondary-node) to become the primary node. 1. Verify node health: @@ -209,7 +208,7 @@ To perform a rolling upgrade of the cluster, use one of the following methods: For healthy nodes, the expected output is `ALL TESTS PASSED`. - 1. Run [`rladmin status`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status" >}}) on the new node: + 1. Run [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) on the new node: ```sh rladmin status extra all @@ -225,7 +224,7 @@ To perform a rolling upgrade of the cluster, use one of the following methods: ... ``` -1. 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. +1. 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](/content/operate/rs/8.0/clusters/change-node-role.md#demote-primary-node) to a secondary node before you remove it. ## After cluster upgrade diff --git a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md index c46441ad44..ce21a83743 100644 --- a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md +++ b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md @@ -13,13 +13,13 @@ url: '/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database/' ## 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/8.0/references/rest-api/requests/bdbs" >}}) or [`rladmin upgrade db`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/upgrade#upgrade-db" >}}). +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](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md) or [`rladmin upgrade db`](/content/operate/rs/8.0/references/cli-utilities/rladmin/upgrade.md#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/8.0/references/rest-api/requests/nodes" >}}) and see `supported_database_versions` in the response. +- Send a [`GET /nodes` REST API request](/content/operate/rs/8.0/references/rest-api/requests/nodes/_index.md) and see `supported_database_versions` in the response. The default Redis database version differs between Redis Software releases as follows: @@ -30,7 +30,7 @@ The default Redis database version differs between Redis Software releases as fo Before upgrading a database: -- Review the relevant [release notes]({{< relref "/operate/rs/release-notes" >}}) for any preparation instructions. +- Review the relevant [release notes](/content/operate/rs/release-notes/_index.md) 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. @@ -38,7 +38,7 @@ Before upgrading a database: - 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/8.0/references/cli-utilities/rladmin/status" >}}) command to display configuration details: + - _(Optional)_ Use the [`rladmin status extra all`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) command to display configuration details: ```sh rladmin status extra all @@ -50,15 +50,15 @@ Before upgrading a database: 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. -- For [Replica Of databases]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}), upgrade the destination database before the source database. +- For [Replica Of databases](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md), upgrade the destination database before the source database. - 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/8.0/references/compatibility/resp#client-prerequisites-for-redis-72-upgrade" >}}) for more details and examples. + 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](/content/operate/rs/8.0/references/compatibility/resp.md#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/8.0/databases/import-export/schedule-backups" >}}). +- To avoid data loss during the upgrade, [back up your data](/content/operate/rs/8.0/databases/import-export/schedule-backups.md). - You can [export the data]({{< relref "/operate/rs/8.0/databases/import-export/export-data" >}}) to an external location, [enable replication]({{< relref "/operate/rs/8.0/databases/durability-ha/replication" >}}), or [enable persistence]({{< relref "/operate/rs/8.0/databases/configure/database-persistence" >}}). + You can [export the data](/content/operate/rs/8.0/databases/import-export/export-data.md) to an external location, [enable replication](/content/operate/rs/8.0/databases/durability-ha/replication.md), or [enable persistence](/content/operate/rs/8.0/databases/configure/database-persistence.md). When choosing how to back up data, keep the following in mind: @@ -117,7 +117,7 @@ To upgrade a database: 1. Optionally, back up the database to minimize the risk of data loss. -1. Upgrade the database using [`rladmin upgrade db`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/upgrade" >}}). 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. +1. Upgrade the database using [`rladmin upgrade db`](/content/operate/rs/8.0/references/cli-utilities/rladmin/upgrade.md). 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: @@ -143,9 +143,9 @@ To upgrade a database: rladmin upgrade db redis_version preserve_roles ``` - For module upgrade options, see [Upgrade modules]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module" >}}). + For module upgrade options, see [Upgrade modules](/content/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module.md). -1. Use [`rladmin status databases extra all`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status#status-databases" >}}) to display a list of the databases in your cluster and their current Redis database compatibility version. Verify that the Redis version is set to the expected value. +1. Use [`rladmin status databases extra all`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md#status-databases) to display a list of the databases in your cluster and their current Redis database compatibility version. Verify that the Redis version is set to the expected value. ```sh rladmin status databases extra all @@ -157,7 +157,7 @@ To upgrade a database: 1. Optionally, back up the database to minimize the risk of data loss. -1. Use an [upgrade database]({{< relref "/operate/rs/8.0/references/rest-api/requests/bdbs/upgrade" >}}) REST API request. 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. +1. Use an [upgrade database](/content/operate/rs/8.0/references/rest-api/requests/bdbs/upgrade.md) REST API request. 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. ```sh POST https://:/v1/bdbs//upgrade @@ -167,6 +167,6 @@ To upgrade a database: } ``` - For additional database upgrade options, see the [request body]({{}}) section of the database upgrade requests reference. + For additional database upgrade options, see the [request body](/content/operate/rs/8.0/references/rest-api/requests/bdbs/upgrade.md#request-body) section of the database upgrade requests reference. {{< /multitabs >}} diff --git a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-os.md b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-os.md index 906d6c623b..99637ae35e 100644 --- a/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-os.md +++ b/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-os.md @@ -19,12 +19,12 @@ To upgrade the operating system (OS) on a Redis Software cluster to a later majo Before you upgrade a cluster's operating system: -1. [Upgrade all nodes in the cluster]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster" >}}) to a Redis Software version that supports the OS's current version and upgrade version. +1. [Upgrade all nodes in the cluster](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-cluster.md) to a Redis Software version that supports the OS's current version and upgrade version. - To learn which versions of Redis Software support specific OS versions, see [Supported platforms]({{< relref "/operate/rs/8.0/references/supported-platforms#supported-platforms" >}}). + To learn which versions of Redis Software support specific OS versions, see [Supported platforms](/content/operate/rs/8.0/references/supported-platforms.md#supported-platforms). -1. If the cluster uses custom directories, make sure the OS upgrade version also supports custom directories, and specify the same custom directories during installation for all nodes. See [Customize installation directories]({{< relref "/operate/rs/8.0/installing-upgrading/install/customize-install-directories" >}}) for details. +1. If the cluster uses custom directories, make sure the OS upgrade version also supports custom directories, and specify the same custom directories during installation for all nodes. See [Customize installation directories](/content/operate/rs/8.0/installing-upgrading/install/customize-install-directories.md) for details. ## Perform OS rolling upgrade @@ -40,21 +40,21 @@ To upgrade the cluster's operating system, use one of the following rolling upgr 1. Create a node with the OS upgrade version. -1. [Install the cluster's current Redis Software version]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}) on the new node using the installation package for the OS upgrade version. +1. [Install the cluster's current Redis Software version](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) on the new node using the installation package for the OS upgrade version. -1. [Add the new node]({{< relref "/operate/rs/8.0/clusters/add-node" >}}) to the cluster. +1. [Add the new node](/content/operate/rs/8.0/clusters/add-node.md) to the cluster. -1. If the [cluster uses DNS]({{}}), add the new node’s IP address to the DNS records. +1. If the [cluster uses DNS](/content/operate/rs/8.0/networking/cluster-dns.md), add the new node’s IP address to the DNS records. -1. [Remove one node]({{< relref "/operate/rs/8.0/clusters/remove-node#remove-a-node" >}}) running the earlier OS version from the cluster. +1. [Remove one node](/content/operate/rs/8.0/clusters/remove-node.md#remove-a-node) running the earlier OS version from the cluster. -1. Repeat the previous steps until all nodes with the earlier OS 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. +1. Repeat the previous steps until all nodes with the earlier OS version are removed. If the final node to remove from the cluster is the primary node, [demote it](/content/operate/rs/8.0/clusters/change-node-role.md#demote-primary-node) to a secondary node before you remove it. ### Replace node upgrade method {#replace-node-upgrade} 1. Complete all [prerequisites](#prerequisites) before starting the rolling upgrade. -1. [Remove a node]({{< relref "/operate/rs/8.0/clusters/remove-node#remove-a-node" >}}) with the earlier OS version from the cluster. +1. [Remove a node](/content/operate/rs/8.0/clusters/remove-node.md#remove-a-node) with the earlier OS version from the cluster. 1. Uninstall Redis Software from the removed node: @@ -64,17 +64,17 @@ To upgrade the cluster's operating system, use one of the following rolling upgr 1. Either upgrade the existing node to the OS upgrade version, or create a new node with the OS upgrade version. -1. [Install the cluster's current Redis Software version]({{< relref "/operate/rs/8.0/installing-upgrading/install/install-on-linux" >}}) on the upgraded node using the installation package for the OS upgrade version. +1. [Install the cluster's current Redis Software version](/content/operate/rs/8.0/installing-upgrading/install/install-on-linux.md) on the upgraded node using the installation package for the OS upgrade version. -1. [Add the new node]({{< relref "/operate/rs/8.0/clusters/add-node" >}}) to the cluster. +1. [Add the new node](/content/operate/rs/8.0/clusters/add-node.md) to the cluster. - If you want to reuse the removed node's ID when you add the node to the cluster, run [`rladmin cluster join`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/join" >}}) with the `replace_node` flag: + If you want to reuse the removed node's ID when you add the node to the cluster, run [`rladmin cluster join`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/join.md) with the `replace_node` flag: ```sh rladmin cluster join nodes username password replace_node ``` -1. If the [cluster uses DNS]({{}}), add the new node’s IP address to the DNS records. +1. If the [cluster uses DNS](/content/operate/rs/8.0/networking/cluster-dns.md), add the new node’s IP address to the DNS records. 1. Verify node health: @@ -100,7 +100,7 @@ To upgrade the cluster's operating system, use one of the following rolling upgr For healthy nodes, the expected output is `ALL TESTS PASSED`. - 1. Run [`rladmin status`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/status" >}}) on the new node: + 1. Run [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) on the new node: ```sh rladmin status extra all @@ -116,4 +116,4 @@ To upgrade the cluster's operating system, use one of the following rolling upgr ... ``` -1. Repeat the previous steps until all nodes with the earlier OS 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. +1. Repeat the previous steps until all nodes with the earlier OS version are replaced. If the final node to remove from the cluster is the primary node, [demote it](/content/operate/rs/8.0/clusters/change-node-role.md#demote-primary-node) to a secondary node before you remove it. diff --git a/content/operate/rs/8.0/monitoring/_index.md b/content/operate/rs/8.0/monitoring/_index.md index 90592b05ba..72d0918a39 100644 --- a/content/operate/rs/8.0/monitoring/_index.md +++ b/content/operate/rs/8.0/monitoring/_index.md @@ -21,31 +21,31 @@ to monitor the performance of your databases. In the Redis Software Cluster Manager UI, you can view metrics, configure alerts, and send notifications based on alert parameters. You can also access metrics and configure alerts through the REST API. -See [Metrics and alerts for monitoring v1]({{}}) for more information. +See [Metrics and alerts for monitoring v1](/content/operate/rs/8.0/monitoring/v1_monitoring.md) for more information. ## Metrics stream engine -The new metrics stream engine is generally available as of [Redis Software version 8.0]({{}}) This new engine exposes the v2 Prometheus scraping endpoint at `https://:8070/v2`, exports all time-series metrics to external monitoring tools, and enables real-time monitoring. +The new metrics stream engine is generally available as of [Redis Software version 8.0](/content/operate/rs/release-notes/rs-8-0-releases/_index.md) This new engine exposes the v2 Prometheus scraping endpoint at `https://:8070/v2`, exports all time-series metrics to external monitoring tools, and enables real-time monitoring. -See [Metrics stream engine for monitoring v2]({{}}) for more information. +See [Metrics stream engine for monitoring v2](/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md) for more information. ## Integrate with external monitoring tools To integrate Redis Software metrics into your monitoring environment, see the following integration guides: -- [Grafana]({{}}) +- [Grafana](/content/integrate/prometheus-with-redis-enterprise/_index.md) -- [Datadog]({{}}) +- [Datadog](/content/integrate/datadog-with-redis-enterprise/_index.md) -- [Dynatrace]({{}}) +- [Dynatrace](/content/integrate/dynatrace-with-redis-enterprise/_index.md) -- [New Relic]({{}}) +- [New Relic](/content/integrate/new-relic-with-redis-enterprise/_index.md) For a detailed tutorial to deploy a complete monitoring stack with Prometheus and Grafana, see [Redis Software Observability with Prometheus and Grafana](https://redis.io/learn/operate/observability/redis-software-prometheus-and-grafana). -Filter [Libraries and tools]({{}}) by "observability" for additional tools and guides. +Filter [Libraries and tools](/content/integrate/_index.md) by "observability" for additional tools and guides. ## Metrics reference -Make sure you read the [definition of each metric]({{< relref "/operate/rs/8.0/references/metrics/" >}}) +Make sure you read the [definition of each metric](/content/operate/rs/8.0/references/metrics/_index.md) so that you understand exactly what it represents. diff --git a/content/operate/rs/8.0/monitoring/db-availability.md b/content/operate/rs/8.0/monitoring/db-availability.md index 95e9b65e68..99919736ba 100644 --- a/content/operate/rs/8.0/monitoring/db-availability.md +++ b/content/operate/rs/8.0/monitoring/db-availability.md @@ -14,11 +14,10 @@ aliases: /operate/rs/databases/durability-ha/db-availability/ url: '/operate/rs/8.0/monitoring/db-availability/' --- -You can use the [database availability API]({{}}) to verify whether a Redis Software database is available to perform read and write operations and can respond to queries from client applications. Load balancers and automated monitoring tools can use this API to monitor database availability. +You can use the [database availability API](/content/operate/rs/8.0/references/rest-api/requests/bdbs/availability.md) to verify whether a Redis Software database is available to perform read and write operations and can respond to queries from client applications. Load balancers and automated monitoring tools can use this API to monitor database availability. -{{}} -Database availability does not guarantee data availability. -{{}} +> [!NOTE] +> Database availability does not guarantee data availability. ## Check database availability for monitoring @@ -32,7 +31,7 @@ If the OSS Cluster API is enabled, this request verifies all endpoints for this Returns the status code 200 OK if the database is available. -If the database is unavailable, returns an error status code and a JSON object that contains [`error_code` and `description` fields]({{}}). +If the database is unavailable, returns an error status code and a JSON object that contains [`error_code` and `description` fields](/content/operate/rs/8.0/references/rest-api/requests/bdbs/availability.md#get-db-error-codes). ## Check local database endpoint availability for load balancers @@ -44,7 +43,7 @@ GET /v1/local/bdbs//endpoint/availability Returns HTTP status code 200 OK if all primary (master) shards are reachable from the local database endpoint. -If the local database endpoint is unavailable, returns an error status code and a JSON object that contains [`error_code` and `description` fields]({{}}). +If the local database endpoint is unavailable, returns an error status code and a JSON object that contains [`error_code` and `description` fields](/content/operate/rs/8.0/references/rest-api/requests/bdbs/availability.md#get-endpoint-error-codes). ## Use lag-aware availability checks for disaster recovery {#lag-aware} @@ -54,7 +53,7 @@ The database availability API supports lag-aware availability checks that consid The lag tolerance threshold is 100 milliseconds by default. Depending on factors such as workload, network conditions, and throughput, you might want to adjust the lag tolerance threshold. -To change the default threshold for the entire cluster, set `availability_lag_tolerance_ms` with an [update cluster]({{}}) request: +To change the default threshold for the entire cluster, set `availability_lag_tolerance_ms` with an [update cluster](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) request: ```sh PUT /v1/cluster @@ -92,7 +91,7 @@ GET /v1/local/bdbs//endpoint/availability?extend_check=lag&availabi ## Availability by database status -The following table shows the relationship between a database's status and availability. For more details about the database status values, see [BDB status field]({{}}). +The following table shows the relationship between a database's status and availability. For more details about the database status values, see [BDB status field](/content/operate/rs/8.0/references/rest-api/objects/bdb/status.md). | Database status | Availability | |-----------------|--------------| diff --git a/content/operate/rs/8.0/monitoring/get-started.md b/content/operate/rs/8.0/monitoring/get-started.md index 04ca19625c..b26a357733 100644 --- a/content/operate/rs/8.0/monitoring/get-started.md +++ b/content/operate/rs/8.0/monitoring/get-started.md @@ -33,13 +33,13 @@ You can use Prometheus integrations to: You can integrate Redis Software with Prometheus and one of the following tools to collect and visualize your deployment's metrics: -- [Grafana]({{}}) +- [Grafana](/content/integrate/prometheus-with-redis-enterprise/_index.md) -- [Datadog]({{}}) +- [Datadog](/content/integrate/datadog-with-redis-enterprise/_index.md) -- [Dynatrace]({{}}) +- [Dynatrace](/content/integrate/dynatrace-with-redis-enterprise/_index.md) -- [New Relic]({{}}) +- [New Relic](/content/integrate/new-relic-with-redis-enterprise/_index.md) {{}} @@ -132,9 +132,9 @@ scrape_configs: 1. Set up your Prometheus server. - {{< note >}} -We recommend running Prometheus in Docker only for development and testing. - {{< /note >}} + > [!NOTE] + > We recommend running Prometheus in Docker only for development and testing. + > To set up Prometheus on Docker: diff --git a/content/operate/rs/8.0/monitoring/health-report.md b/content/operate/rs/8.0/monitoring/health-report.md index 35e47ac4b3..db5c54c09c 100644 --- a/content/operate/rs/8.0/monitoring/health-report.md +++ b/content/operate/rs/8.0/monitoring/health-report.md @@ -28,7 +28,7 @@ The consolidated health report is a read-only, consolidated snapshot of a cluste - High availability health -The consolidated health report consolidates cluster and database health information that was previously scattered across multiple APIs and CLI commands, such as [`rladmin status extra all`]({{}}) and required SSH access to view. +The consolidated health report consolidates cluster and database health information that was previously scattered across multiple APIs and CLI commands, such as [`rladmin status extra all`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) and required SSH access to view. As of Redis Software version 8.0.16, you can access the cluster and database health reports using the [Cluster manager UI](#view-health-overview) or [REST API requests](#health-rest-api-requests). @@ -128,7 +128,7 @@ When viewing a node's configuration, you can click the **Shards** tab to view a ### Cluster health report requests -[Cluster health report]({{}}) REST API requests provide overall health information for a cluster: +[Cluster health report](/content/operate/rs/8.0/references/rest-api/api-reference.md#tag/Cluster/operation/cluster_cluster_health_report) REST API requests provide overall health information for a cluster: ```sh GET https://:/v4/cluster/health @@ -136,7 +136,7 @@ GET https://:/v4/cluster/health ### Database health report requests -[Database health report]({{}}) REST API requests provide detailed health information for a specific database: +[Database health report](/content/operate/rs/8.0/references/rest-api/api-reference.md#tag/Database/operation/cluster_database_health_report) REST API requests provide detailed health information for a specific database: ```sh GET https://:/v4/bdb//health diff --git a/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md b/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md index cdd23978d2..43df4f363d 100644 --- a/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md +++ b/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md @@ -14,7 +14,7 @@ tocEmbedHeaders: true url: '/operate/rs/8.0/monitoring/metrics_stream_engine/' --- -The new metrics stream engine is generally available as of [Redis Software version 8.0]({{}}). +The new metrics stream engine is generally available as of [Redis Software version 8.0](/content/operate/rs/release-notes/rs-8-0-releases/_index.md). The new metrics stream engine: @@ -28,21 +28,21 @@ The new metrics stream engine: To integrate Redis Software metrics into your monitoring environment, see the following integration guides: -- [Grafana]({{}}) +- [Grafana](/content/integrate/prometheus-with-redis-enterprise/_index.md) -- [Datadog]({{}}) +- [Datadog](/content/integrate/datadog-with-redis-enterprise/_index.md) -- [Dynatrace]({{}}) +- [Dynatrace](/content/integrate/dynatrace-with-redis-enterprise/_index.md) -- [New Relic]({{}}) +- [New Relic](/content/integrate/new-relic-with-redis-enterprise/_index.md) For a detailed tutorial to deploy a complete monitoring stack with Prometheus and Grafana, see [Redis Software Observability with Prometheus and Grafana](https://redis.io/learn/operate/observability/redis-software-prometheus-and-grafana). -Filter [Libraries and tools]({{}}) by "observability" for additional tools and guides. +Filter [Libraries and tools](/content/integrate/_index.md) by "observability" for additional tools and guides. ## Prometheus metrics v2 -For a list of all available v2 metrics, see [Prometheus metrics v2]({{}}). +For a list of all available v2 metrics, see [Prometheus metrics v2](/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v2.md). The v2 scraping endpoint also exposes metrics for `node_exporter`. For more information, see the [Prometheus node_exporter GitHub repository](https://github.com/prometheus/node_exporter). @@ -68,7 +68,7 @@ If you are already using the existing scraping endpoint for integration, do the - targets: [":8070"] ``` -1. Use the metrics tables in [this guide]({{}}) to transition from v1 metrics to equivalent v2 PromQL. +1. Use the metrics tables in [this guide](/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2.md) to transition from v1 metrics to equivalent v2 PromQL. It is possible to scrape both existing and new endpoints simultaneously, allowing advanced dashboard preparation and a smooth transition. diff --git a/content/operate/rs/8.0/monitoring/metrics_stream_engine/alerts-v1-to-v2.md b/content/operate/rs/8.0/monitoring/metrics_stream_engine/alerts-v1-to-v2.md index b55b033dc4..d1859d477c 100644 --- a/content/operate/rs/8.0/monitoring/metrics_stream_engine/alerts-v1-to-v2.md +++ b/content/operate/rs/8.0/monitoring/metrics_stream_engine/alerts-v1-to-v2.md @@ -11,7 +11,7 @@ weight: 50 url: '/operate/rs/8.0/monitoring/metrics_stream_engine/alerts-v1-to-v2/' --- -As Redis Software transitions from the [deprecated monitoring system]({{}}) to the [new metrics stream engine]({{}}), some internal cluster manager alerts were deprecated in favor of external monitoring solutions. +As Redis Software transitions from the [deprecated monitoring system](/content/operate/rs/8.0/monitoring/v1_monitoring.md) to the [new metrics stream engine](/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md), some internal cluster manager alerts were deprecated in favor of external monitoring solutions. You can use the following table to transition from the deprecated alerts and set up equivalent alerts in Prometheus with [PromQL (Prometheus Query Language)](https://prometheus.io/docs/prometheus/latest/querying/basics/): diff --git a/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2.md b/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2.md index 70a56ecd17..e1f0b96bb2 100644 --- a/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2.md +++ b/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2.md @@ -15,7 +15,7 @@ tocEmbedHeaders: true url: '/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2/' --- -You can integrate Redis Software with Prometheus and tools such as [Grafana]({{}}), [Datadog]({{}}), [Dynatrace]({{}}), or [New Relic]({{}}) to create dashboards for important metrics. +You can integrate Redis Software with Prometheus and tools such as [Grafana](/content/integrate/prometheus-with-redis-enterprise/_index.md), [Datadog](/content/integrate/datadog-with-redis-enterprise/_index.md), [Dynatrace](/content/integrate/dynatrace-with-redis-enterprise/_index.md), or [New Relic](/content/integrate/new-relic-with-redis-enterprise/_index.md) to create dashboards for important metrics. As of Redis Software version 7.8.2, [PromQL (Prometheus Query Language)](https://prometheus.io/docs/prometheus/latest/querying/basics/) metrics are available. V1 metrics are deprecated but still available. @@ -39,6 +39,6 @@ scrape_configs: You can scrape both v1 and v2 endpoints simultaneously during the transition period to prepare dashboards and ensure a smooth transition. -You can use the following tables to transition from v1 metrics to equivalent v2 PromQL. For a list of all available v2 metrics, see [Prometheus metrics v2]({{}}). +You can use the following tables to transition from v1 metrics to equivalent v2 PromQL. For a list of all available v2 metrics, see [Prometheus metrics v2](/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v2.md). {{}} diff --git a/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v2.md b/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v2.md index 3d43c4255d..ecc7ebc74b 100644 --- a/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v2.md +++ b/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v2.md @@ -15,9 +15,9 @@ tocEmbedHeaders: true url: '/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v2/' --- -You can integrate Redis Software with Prometheus and tools such as [Grafana]({{}}), [Datadog]({{}}), [Dynatrace]({{}}), or [New Relic]({{}}) to create dashboards for important metrics. +You can integrate Redis Software with Prometheus and tools such as [Grafana](/content/integrate/prometheus-with-redis-enterprise/_index.md), [Datadog](/content/integrate/datadog-with-redis-enterprise/_index.md), [Dynatrace](/content/integrate/dynatrace-with-redis-enterprise/_index.md), or [New Relic](/content/integrate/new-relic-with-redis-enterprise/_index.md) to create dashboards for important metrics. -The v2 metrics in the following tables are available as of Redis Software version 7.8.0. For help transitioning from v1 metrics to v2 PromQL, see [Prometheus v1 metrics and equivalent v2 PromQL]({{}}). +The v2 metrics in the following tables are available as of Redis Software version 7.8.0. For help transitioning from v1 metrics to v2 PromQL, see [Prometheus v1 metrics and equivalent v2 PromQL](/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2.md). The v2 scraping endpoint also exposes metrics for `node_exporter`. For more information, see the [Prometheus node_exporter GitHub repository](https://github.com/prometheus/node_exporter). diff --git a/content/operate/rs/8.0/monitoring/v1_monitoring.md b/content/operate/rs/8.0/monitoring/v1_monitoring.md index 2ad073821e..a989832d33 100644 --- a/content/operate/rs/8.0/monitoring/v1_monitoring.md +++ b/content/operate/rs/8.0/monitoring/v1_monitoring.md @@ -23,7 +23,7 @@ The current monitoring system, which is deprecated as of Redis Software version - This historical data is used to generate trends and performance insights over time. -- [Statistics APIs]({{}}): +- [Statistics APIs](/content/operate/rs/8.0/references/rest-api/objects/statistics/_index.md): - This set of RESTful APIs exposes metrics collected at regular intervals from clusters, nodes, databases, shards, and endpoints. @@ -37,7 +37,7 @@ The current monitoring system, which is deprecated as of Redis Software version - v1 Prometheus scraping endpoint: - - Redis Software exposes a legacy `/prometheus_metrics` endpoint to integrate with external observability platforms like [Prometheus and Grafana]({{}}). + - Redis Software exposes a legacy `/prometheus_metrics` endpoint to integrate with external observability platforms like [Prometheus and Grafana](/content/operate/rs/8.0/monitoring/get-started.md). - This endpoint fetches data from the internal storage, providing basic monitoring integration. @@ -57,7 +57,7 @@ The internal monitoring system, while functional, has several limitations that a ### Transition to the metrics stream engine -To improve monitoring and address current limitations, Redis Software is transitioning to a new observability foundation: the [metrics stream engine]({{}}). +To improve monitoring and address current limitations, Redis Software is transitioning to a new observability foundation: the [metrics stream engine](/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md). This modern monitoring stack introduces: @@ -69,11 +69,11 @@ This modern monitoring stack introduces: We recommend migrating to the metrics stream engine for enhanced accuracy, scalability, and future-proof observability. -If you are already using the existing scraping endpoint for integration, follow [this guide]({{}}) to transition and try the new engine. It is possible to scrape both existing and new endpoints simultaneously, allowing advanced dashboard preparation and a smooth transition. +If you are already using the existing scraping endpoint for integration, follow [this guide](/content/operate/rs/8.0/monitoring/metrics_stream_engine/prometheus-metrics-v1-to-v2.md) to transition and try the new engine. It is possible to scrape both existing and new endpoints simultaneously, allowing advanced dashboard preparation and a smooth transition. ### Transition cluster manager alerts -As part of Redis Software's transition to the [new metrics stream engine]({{}}), some internal cluster manager alerts were deprecated in favor of external monitoring solutions. See the [alerts transition plan]({{}}) for guidance. +As part of Redis Software's transition to the [new metrics stream engine](/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md), some internal cluster manager alerts were deprecated in favor of external monitoring solutions. See the [alerts transition plan](/content/operate/rs/8.0/monitoring/metrics_stream_engine/alerts-v1-to-v2.md) for guidance. ## Cluster manager metrics @@ -93,9 +93,9 @@ To choose which metrics to display in the two large graphs at the top of the pag We recommend that you show two similar metrics in the top graphs so you can compare them side-by-side. See the following topics for metrics definitions: -- [Database operations]({{< relref "/operate/rs/8.0/references/metrics/database-operations" >}}) for database metrics -- [Resource usage]({{< relref "/operate/rs/8.0/references/metrics/resource-usage" >}}) for resource and database usage metrics -- [Auto Tiering]({{< relref "/operate/rs/8.0/references/metrics/auto-tiering" >}}) for additional metrics for [Auto Tiering ]({{< relref "/operate/rs/8.0/databases/flash" >}}) databases +- [Database operations](/content/operate/rs/8.0/references/metrics/database-operations.md) for database metrics +- [Resource usage](/content/operate/rs/8.0/references/metrics/resource-usage.md) for resource and database usage metrics +- [Auto Tiering](/content/operate/rs/8.0/references/metrics/auto-tiering.md) for additional metrics for [Auto Tiering ](/content/operate/rs/8.0/databases/flash/_index.md) databases ## Cluster alerts @@ -107,10 +107,9 @@ Configured alerts are shown: - In the **log** - In email notifications, if you configure [email alerts](#send-alerts-by-email) -{{< note >}} -If you enable alerts for "Node joined" or "Node removed" actions, -you must also enable "Receive email alerts" so that the notifications are sent. -{{< /note >}} +> [!NOTE] +> If you enable alerts for "Node joined" or "Node removed" actions, +> you must also enable "Receive email alerts" so that the notifications are sent. To enable alerts for a cluster: @@ -138,8 +137,8 @@ To enable alerts for a database: To send cluster and database alerts by email: 1. In **Cluster > Alert Settings**, click **Edit**. -1. Select **Set an email** to configure the [email server settings]({{< relref "/operate/rs/8.0/clusters/configure/cluster-settings#configuring-email-server-settings" >}}). +1. Select **Set an email** to configure the [email server settings](/content/operate/rs/8.0/clusters/configure/cluster-settings.md#configuring-email-server-settings). 1. In **Configuration** for the database, click **Edit**. 1. Select the **Alerts** section to open it. 1. Select **Receive email alerts** and click **Save**. -1. In **Access Control**, select the [database and cluster alerts]({{< relref "/operate/rs/8.0/security/access-control/create-users#add-users" >}}) that you want each user to receive. +1. In **Access Control**, select the [database and cluster alerts](/content/operate/rs/8.0/security/access-control/create-users.md#add-users) that you want each user to receive. diff --git a/content/operate/rs/8.0/networking/cluster-dns.md b/content/operate/rs/8.0/networking/cluster-dns.md index c5a7932e71..708a4ebfc5 100644 --- a/content/operate/rs/8.0/networking/cluster-dns.md +++ b/content/operate/rs/8.0/networking/cluster-dns.md @@ -11,7 +11,7 @@ weight: $weight url: '/operate/rs/8.0/networking/cluster-dns/' --- -By default, Redis Software deployments use DNS to communicate between nodes. You can also use the [Discovery Service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service.md" >}}), which uses IP addresses to connect and complies with the [Redis Sentinel API]({{< relref "/operate/oss_and_stack/management/sentinel" >}}) supported by Redis Open Source. +By default, Redis Software deployments use DNS to communicate between nodes. You can also use the [Discovery Service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md), which uses IP addresses to connect and complies with the [Redis Sentinel API](/content/operate/oss_and_stack/management/sentinel.md) supported by Redis Open Source. Each node in a Redis Software cluster includes a small DNS server to manage internal functions, such as high availability, automatic failover, automatic migration, and so on. Nodes should only run the DNS server included with the software. Running additional DNS servers can lead to unexpected behavior. @@ -33,9 +33,8 @@ Whether you're administering Redis Software or accessing databases, there are tw The fully qualified domain name (FQDN) is the unique cluster identifier that enables clients to connect to the different components of Redis Software. The FQDN is a crucial component of the high-availability mechanism because it's used internally to enable and implement automatic and transparent failover of nodes, databases, shards, and endpoints. -{{< note >}} -Setting the cluster's FQDN is a one-time operation, one that cannot be changed after being set. -{{< /note >}} +> [!NOTE] +> Setting the cluster's FQDN is a one-time operation, one that cannot be changed after being set. The FQDN must always comply with the IETF's [RFC 952](https://datatracker.ietf.org/doc/html/rfc952) standard and section 2.1 of the [RFC 1123](https://datatracker.ietf.org/doc/html/rfc1123) standard. @@ -106,9 +105,9 @@ However, as the topology of the cluster changes and node with the given IP addre you need to remember the IP address of another node participating in this cluster to connect to the Cluster Manager UI and manage the cluster. Applications connecting to Redis Software databases have the same constraints. -When using the IP-based connection method, you can use the [Discovery Service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service.md" >}}) +When using the IP-based connection method, you can use the [Discovery Service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md) to discover the database endpoint for a given database name as long as you have an IP address for at least one of the nodes in the cluster. The API used for discovery service is compliant with the Redis Sentinel API. -To test your connection, try pinging the service. For help, see [Connect to your database]({{< relref "/operate/rs/8.0/databases/connect/test-client-connectivity" >}}). +To test your connection, try pinging the service. For help, see [Connect to your database](/content/operate/rs/8.0/databases/connect/test-client-connectivity.md). diff --git a/content/operate/rs/8.0/networking/cluster-lba-setup.md b/content/operate/rs/8.0/networking/cluster-lba-setup.md index 5221c69668..6b19d01d2d 100644 --- a/content/operate/rs/8.0/networking/cluster-lba-setup.md +++ b/content/operate/rs/8.0/networking/cluster-lba-setup.md @@ -41,7 +41,7 @@ The architecture is shown in the following diagram with a 3-node Redis Software ### Prerequisites -- [Install]({{< relref "/operate/rs/8.0/installing-upgrading" >}}) the latest version of Redis Software on your clusters +- [Install](/content/operate/rs/8.0/installing-upgrading/_index.md) the latest version of Redis Software on your clusters - Configure the cluster with the cluster name (FQDN) even though DNS is not in use. Remember that the same cluster name is used to issue the license keys. We recommend that you use a ".local" suffix in the FQDN. @@ -54,19 +54,18 @@ The architecture is shown in the following diagram with a 3-node Redis Software - Rest API on port 9443 for secure HTTPS connections and port 8080 for HTTP - Database ports 10000-19999 -Other ports are shown in the list of [Redis Software network ports]({{< relref "/operate/rs/8.0/networking/port-configurations" >}}). +Other ports are shown in the list of [Redis Software network ports](/content/operate/rs/8.0/networking/port-configurations.md). -{{< note >}} -Sticky, secured connections are needed only for the Redis Software Cluster Manager UI on port 8443. - -- Certain load balancers provide specific logic to close idle connections. Either turn off this feature or make sure the applications connecting to Redis use reconnection logic. -- Make sure the load balancer is fast enough to resolve connections between two clusters or applications that are connected to Redis databases through a load balancer. -- Choose the standard load balancer that is commonly used in your environment so that you have easy access to in-house expertise for troubleshooting issues. -{{< /note >}} +> [!NOTE] +> Sticky, secured connections are needed only for the Redis Software Cluster Manager UI on port 8443. +> +> - Certain load balancers provide specific logic to close idle connections. Either turn off this feature or make sure the applications connecting to Redis use reconnection logic. +> - Make sure the load balancer is fast enough to resolve connections between two clusters or applications that are connected to Redis databases through a load balancer. +> - Choose the standard load balancer that is commonly used in your environment so that you have easy access to in-house expertise for troubleshooting issues. ### Configure cluster -For clusters behind load balancers, we recommend using the `all-nodes` [proxy policy]({{}}) and enabling `handle_redirects`. +For clusters behind load balancers, we recommend using the `all-nodes` [proxy policy](/content/operate/rs/8.0/databases/configure/proxy-policy.md) and enabling `handle_redirects`. To allow inbound connections to be terminated on the relevant node inside the cluster, run the following `rladmin` commands on the cluster: @@ -87,9 +86,9 @@ rladmin tune cluster default_shards_placement sparse ### Configure database -After you update the cluster settings and configure the load balancers, you can go to the Redis Software Cluster Manager UI at `https://load-balancer-virtual-ip:8443/` and [create a new database]({{< relref "/operate/rs/8.0/databases/create.md" >}}). +After you update the cluster settings and configure the load balancers, you can go to the Redis Software Cluster Manager UI at `https://load-balancer-virtual-ip:8443/` and [create a new database](/content/operate/rs/8.0/databases/create.md). -To create an Active-Active database, use the `crdb-cli` utility. See the [`crdb-cli` reference]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}) for more information about creating Active-Active databases from the command line. +To create an Active-Active database, use the `crdb-cli` utility. See the [`crdb-cli` reference](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) for more information about creating Active-Active databases from the command line. ### Update load balancer configuration when cluster configuration changes @@ -106,7 +105,7 @@ especially if they are directly connected on IP addresses that have changed. ## Intercluster communication considerations -Redis Software supports several topologies that allow intercluster replication, such as [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}) and [Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/" >}}) deployment options. +Redis Software supports several topologies that allow intercluster replication, such as [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) and [Active-Active](/content/operate/rs/8.0/databases/active-active/_index.md) deployment options. When your Redis Software clusters are behind load balancers, you must allow some network services to be open and defined in the load balancers to allow the replication to work. ### Replica Of @@ -115,4 +114,4 @@ For Replica Of communication to work, you must expose database ports locally in ### Active-Active -For Active-Active communication to work, you must expose several ports, including every database port and several control plane ports as defined in [Network port configurations]({{< relref "/operate/rs/8.0/networking/port-configurations" >}}). Pay attention to services that include "Active-Active" in the connection source column, and allow these ports through any firewalls between the clusters. +For Active-Active communication to work, you must expose several ports, including every database port and several control plane ports as defined in [Network port configurations](/content/operate/rs/8.0/networking/port-configurations.md). Pay attention to services that include "Active-Active" in the connection source column, and allow these ports through any firewalls between the clusters. diff --git a/content/operate/rs/8.0/networking/configuring-aws-route53-dns-redis-enterprise.md b/content/operate/rs/8.0/networking/configuring-aws-route53-dns-redis-enterprise.md index a58dc19de8..87292593dc 100644 --- a/content/operate/rs/8.0/networking/configuring-aws-route53-dns-redis-enterprise.md +++ b/content/operate/rs/8.0/networking/configuring-aws-route53-dns-redis-enterprise.md @@ -53,9 +53,8 @@ When you create a new hosted zone in Route 53 for your domain, a set of NS recor You will need to create a new NS record which will point to the glue records created in the previous step. -{{}} -It is important to make sure that the **Record Name** of the NS record equals the FQDN (Fully Qualified Domain Name) of your Redis Software cluster. If not, DNS resolution will not function correctly. -{{}} +> [!NOTE] +> It is important to make sure that the **Record Name** of the NS record equals the FQDN (Fully Qualified Domain Name) of your Redis Software cluster. If not, DNS resolution will not function correctly. {{< image filename="/images/rs/07-NSRecord-en.png" >}} diff --git a/content/operate/rs/8.0/networking/mdns.md b/content/operate/rs/8.0/networking/mdns.md index e0b37f8865..fbb3e79d99 100644 --- a/content/operate/rs/8.0/networking/mdns.md +++ b/content/operate/rs/8.0/networking/mdns.md @@ -10,13 +10,12 @@ linkTitle: mDNS client prerequisites weight: $weight url: '/operate/rs/8.0/networking/mdns/' --- -{{< note >}} -mDNS is only supported for development and testing environments. -{{< /note >}} +> [!NOTE] +> mDNS is only supported for development and testing environments. -If you choose to use the mDNS protocol when [you set the cluster name]({{< relref "/operate/rs/8.0/networking/cluster-dns" >}}), +If you choose to use the mDNS protocol when [you set the cluster name](/content/operate/rs/8.0/networking/cluster-dns.md), make sure that the configurations and prerequisites for resolving database endpoints are met on the client machines. -If you have [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}) databases on the cluster, +If you have [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) databases on the cluster, the configurations and prerequisites are also required for the Redis Software nodes. To prepare a client or node for mDNS: @@ -47,7 +46,7 @@ To prepare a client or node for mDNS: $ service avahi-daemon start ``` -1. If you are using [mDNS with IPv6 addresses]({{< relref "/operate/rs/8.0/networking/multi-ip-ipv6.md" >}}), +1. If you are using [mDNS with IPv6 addresses](/content/operate/rs/8.0/networking/multi-ip-ipv6.md), update the hosts line in `/etc/nsswitch.conf` to: ```yaml diff --git a/content/operate/rs/8.0/networking/multi-ip-ipv6.md b/content/operate/rs/8.0/networking/multi-ip-ipv6.md index a2705bf76b..323c6bce1f 100644 --- a/content/operate/rs/8.0/networking/multi-ip-ipv6.md +++ b/content/operate/rs/8.0/networking/multi-ip-ipv6.md @@ -38,7 +38,7 @@ IPv6 for internal communication is supported only for new clusters with Redis So If the server has only IPv6 interfaces, IPv6 is automatically used for internal and external traffic. Otherwise, internal traffic uses IPv4 by default. -To use IPv6 for internal traffic on a machine with both IPv4 and IPv6 interfaces, set `use_internal_ipv6` to `true` when you create a cluster using the [bootstrap REST API request]({{< relref "/operate/rs/8.0/references/rest-api/requests/bootstrap#post-bootstrap" >}}): +To use IPv6 for internal traffic on a machine with both IPv4 and IPv6 interfaces, set `use_internal_ipv6` to `true` when you create a cluster using the [bootstrap REST API request](/content/operate/rs/8.0/references/rest-api/requests/bootstrap/_index.md#post-bootstrap): ```sh POST /v1/bootstrap/create_cluster @@ -88,7 +88,7 @@ If you need to update the internal IP address in the OS, one option is to remove Alternatively, you can use the following steps to update a node's internal IP address without removing it from the cluster: -1. Turn the node into a replica using [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/node/enslave" >}}): +1. Turn the node into a replica using [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/node/enslave.md): ```sh rladmin node enslave demote_node @@ -104,7 +104,7 @@ Alternatively, you can use the following steps to update a node's internal IP ad 1. Follow the operating system vendor's instructions to change the node's IP address. -1. From a different cluster node, use [`rladmin node addr set`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/node/addr" >}}) to update the first node's IP address: +1. From a different cluster node, use [`rladmin node addr set`](/content/operate/rs/8.0/references/cli-utilities/rladmin/node/addr.md) to update the first node's IP address: ```sh rladmin node addr set @@ -135,7 +135,7 @@ Repeat this procedure for other cluster nodes to change their internal IP addres You can configure external addresses that are not bound to an active interface, but are otherwise mapped or configured to route traffic to the node (such as AWS Elastic IPs or a load balancer VIP). -You can use [rladmin node external_addr]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/node/external-addr" >}}) to change a node's external IP addresses. +You can use [rladmin node external_addr](/content/operate/rs/8.0/references/cli-utilities/rladmin/node/external-addr.md) to change a node's external IP addresses. Add an external IP address: @@ -156,13 +156,12 @@ Remove an external IP address: rladmin node external_addr remove ``` -{{< note >}} -While [joining a new node to a -cluster]({{< relref "/operate/rs/8.0/clusters/add-node.md" >}}) -during the node bootstrap process, -when prompted to provide an IP of an existing node in the cluster, -if you use the node's IP, provide the node's internal IP address. -{{< /note >}} +> [!NOTE] +> While [joining a new node to a +> cluster](/content/operate/rs/8.0/clusters/add-node.md) +> during the node bootstrap process, +> when prompted to provide an IP of an existing node in the cluster, +> if you use the node's IP, provide the node's internal IP address. ## Known limitations diff --git a/content/operate/rs/8.0/networking/port-configurations.md b/content/operate/rs/8.0/networking/port-configurations.md index bbba3a86f6..4050752c0b 100644 --- a/content/operate/rs/8.0/networking/port-configurations.md +++ b/content/operate/rs/8.0/networking/port-configurations.md @@ -13,9 +13,8 @@ url: '/operate/rs/8.0/networking/port-configurations/' All Redis Software deployments span multiple physical/virtual nodes. You'll need to keep several ports open between these nodes. This document describes the various port ranges and their uses. -{{< note >}} -Whenever you create a new database, you must verify that the ports assigned to the new database's endpoints are open. The cluster will not perform this verification for you. -{{< /note >}} +> [!NOTE] +> Whenever you create a new database, you must verify that the ports assigned to the new database's endpoints are open. The cluster will not perform this verification for you. ## Ports and port ranges used by Redis Software @@ -27,7 +26,7 @@ Redis Software's port usage falls into three general categories: | Protocol | Port | Configurable | Connection source | Description | |----------|------|--------------|-------------------|-------------| -| TCP | 8001 | ❌ No | Internal, External | Traffic from application to Redis Software [Discovery Service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service.md" >}}) | +| TCP | 8001 | ❌ No | Internal, External | Traffic from application to Redis Software [Discovery Service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md) | | TCP | 8070 | ❌ No | External | Metrics exported and managed by the web proxy | | TCP | 3347-3349, 8000, 8071, 9091, 9125 | ❌ No | Internal | Internal metrics ports | | TCP | 8443 | ✅ Yes | Internal, External | Secure (HTTPS) access to the management web UI | @@ -45,9 +44,8 @@ Redis Software's port usage falls into three general categories: | TCP | 8002, 8004, 8006 | ✅ Yes | Internal | Default system health monitoring (envoy admin, envoy management server, gossip envoy admin)| | TCP | 8444, 9080 | ❌ No | Internal | Traffic between web proxy and cnm_http/cm | -{{< note >}} -The cluster uses ports 20000-29999 for internal shard traffic. You can't change the range, but `reserved_ports` excludes specific ports or port ranges from shard assignment. -{{< /note >}} +> [!NOTE] +> The cluster uses ports 20000-29999 for internal shard traffic. You can't change the range, but `reserved_ports` excludes specific ports or port ranges from shard assignment. ## Change port configuration @@ -55,7 +53,7 @@ The cluster uses ports 20000-29999 for internal shard traffic. You can't change Redis Software reserves some ports by default (`system_reserved_ports`). To reserve other ports or port ranges and prevent the cluster from assigning them to database endpoints or internal shard traffic, configure `reserved_ports` using one of the following methods: -- [rladmin cluster config]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config" >}}) +- [rladmin cluster config](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md) ```sh rladmin cluster config reserved_ports @@ -67,7 +65,7 @@ Redis Software reserves some ports by default (`system_reserved_ports`). To rese rladmin cluster config reserved_ports 11000 13000-13010 20048 ``` -- [Update cluster settings]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster#put-cluster" >}}) REST API request +- [Update cluster settings](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request ```sh PUT /v1/cluster @@ -103,7 +101,7 @@ For system health monitoring, Redis uses the following ports by default: - Port 8006 for gossip envoy admin -You can change each envoy port to a custom port using the [`rladmin cluster config`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config" >}}) command as long as the new port is not in use by another process. When you change `envoy_admin_port`, expect a restart of envoy. +You can change each envoy port to a custom port using the [`rladmin cluster config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md) command as long as the new port is not in use by another process. When you change `envoy_admin_port`, expect a restart of envoy. To change the envoy admin port, run: @@ -174,4 +172,4 @@ To poll metrics from the `metrics_exporter` or to access the Cluster Manager UI, ## Nodes on different VLANs Nodes in the same cluster must reside on the same VLAN. If you can't -host the nodes on the same VLAN, then you must open [all ports]({{< relref "/operate/rs/8.0/networking/port-configurations.md" >}}) between them. +host the nodes on the same VLAN, then you must open [all ports](/content/operate/rs/8.0/networking/port-configurations.md) between them. diff --git a/content/operate/rs/8.0/networking/private-public-endpoints.md b/content/operate/rs/8.0/networking/private-public-endpoints.md index 3f0b8f350c..53810a6078 100644 --- a/content/operate/rs/8.0/networking/private-public-endpoints.md +++ b/content/operate/rs/8.0/networking/private-public-endpoints.md @@ -11,7 +11,7 @@ title: "Enable private and\_public database endpoints" weight: $weight url: '/operate/rs/8.0/networking/private-public-endpoints/' --- -Each node in Redis Software can be configured with [private and external IP addresses]({{< relref "/operate/rs/8.0/networking/multi-ip-ipv6.md" >}}). By default, Redis Software databases expose a single endpoint, e.g. cluster.com (FQDN), using the external IP addresses, making it available to the public network (e.g. the internet). Additionally, the cluster can be configured to expose a private FQDN, which utilizes the private IP addresses for access from the private network only (e.g. VPC or an internal network). +Each node in Redis Software can be configured with [private and external IP addresses](/content/operate/rs/8.0/networking/multi-ip-ipv6.md). By default, Redis Software databases expose a single endpoint, e.g. cluster.com (FQDN), using the external IP addresses, making it available to the public network (e.g. the internet). Additionally, the cluster can be configured to expose a private FQDN, which utilizes the private IP addresses for access from the private network only (e.g. VPC or an internal network). When you create a cluster via the UI, you can configure it to expose private and public endpoints. This is common for environments such as cloud platforms and enterprises. diff --git a/content/operate/rs/8.0/new-features-redis-enterprise.md b/content/operate/rs/8.0/new-features-redis-enterprise.md index 3db32964f8..f186db4dc4 100644 --- a/content/operate/rs/8.0/new-features-redis-enterprise.md +++ b/content/operate/rs/8.0/new-features-redis-enterprise.md @@ -27,7 +27,7 @@ provide smart and automatic conflict resolution based on the data type's intent. For more information, go here. For information, go to [Developing with -Active-Active databases]({{< relref "/operate/rs/8.0/developing/crdbs" >}}). +Active-Active databases](/content/operate/rs/8.0/developing/crdbs). ## Redis modules @@ -41,17 +41,17 @@ Enterprise is known for. Redis developed and certified these modules for use with Redis Enterprise Software: -- [RedisBloom]({{< relref "/operate/modules/redisbloom" >}}) +- [RedisBloom](/content/operate/modules/redisbloom) - Enables Redis to have a scalable bloom filter as a data type. Bloom filters are probabilistic data structures that quickly determine if something is contained within a set. - RedisGraph - RedisGraph is the first queryable Property Graph database to use sparse matrices to represent the adjacency matrix in graphs and linear algebra to query the graph. RedisGraph uses [Cypher](https://www.opencypher.org/) as its query language. -- [RedisJSON]({{< relref "/operate/modules/redisjson" >}}) +- [RedisJSON](/content/operate/modules/redisjson) - Now you have the convenience JSON as a built-in data type and easily able to address nested data via a path. -- [RediSearch]({{< relref "/operate/modules/redisearch" >}}) +- [RediSearch](/content/operate/modules/redisearch) - This module turns Redis into a distributed in-memory full-text indexing and search beast. @@ -70,7 +70,7 @@ easily and quickly test several containers to build the scalable and highly available cluster Redis Enterprise Software is famous for. For more information go to [quick start with Redis Enterprise Software -on Docker.]({{< relref "/operate/rs/8.0/installing-upgrading/get-started-docker.md" >}}) +on Docker.](/content/operate/rs/8.0/installing-upgrading/get-started-docker.md) ## LDAP integration @@ -81,4 +81,4 @@ accounts can be used for administering resources on the cluster via command line, Rest API, or admin console. For more information see [LDAP -Integration]({{< relref "/operate/rs/8.0/security/passwords-users-roles.md#setting-up-ldap" >}}). +Integration](/content/operate/rs/8.0/security/passwords-users-roles.md#setting-up-ldap). diff --git a/content/operate/rs/8.0/security/_index.md b/content/operate/rs/8.0/security/_index.md index a9a10ad79d..b67948314b 100644 --- a/content/operate/rs/8.0/security/_index.md +++ b/content/operate/rs/8.0/security/_index.md @@ -15,16 +15,16 @@ Redis Software provides various features to secure your deployment: | Login and passwords | Users and roles | Encryption and TLS | Certificates and audit | |---------------------|-----------------|--------------------|-----------------------| -| [Password attempts and session timeout]({{}}) | [Cluster and database access explained]({{}}) | [Enable TLS]({{}}) | [Create certificates]({{}}) | -| [Password complexity]({{}}) | [Create users]({{}}) | [Configure TLS protocols]({{}}) | [Monitor certificates]({{}}) | -| [Password expiration]({{}}) | [Create roles]({{}}) | [Configure cipher suites]({{}}) | [Update certificates]({{}}) | -| [Default database access]({{}}) | [Redis ACLs]({{}}) | [Encrypt private keys on disk]({{}}) | [Enable OCSP stapling]({{}}) | -| [Rotate user passwords]({{}}) | [Integrate with LDAP]({{}}) | [Internode encryption]({{}}) | [Audit database connections]({{}}) | -| [Single sign-on (SSO)]({{}}) | | | | +| [Password attempts and session timeout](/content/operate/rs/8.0/security/access-control/manage-users/login-lockout.md) | [Cluster and database access explained](/content/operate/rs/8.0/security/access-control/_index.md) | [Enable TLS](/content/operate/rs/8.0/security/encryption/tls/enable-tls.md) | [Create certificates](/content/operate/rs/8.0/security/certificates/create-certificates.md) | +| [Password complexity](/content/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules.md) | [Create users](/content/operate/rs/8.0/security/access-control/create-users.md) | [Configure TLS protocols](/content/operate/rs/8.0/security/encryption/tls/tls-protocols.md) | [Monitor certificates](/content/operate/rs/8.0/security/certificates/monitor-certificates.md) | +| [Password expiration](/content/operate/rs/8.0/security/access-control/manage-passwords/password-expiration.md) | [Create roles](/content/operate/rs/8.0/security/access-control/create-combined-roles.md) | [Configure cipher suites](/content/operate/rs/8.0/security/encryption/tls/ciphers.md) | [Update certificates](/content/operate/rs/8.0/security/certificates/updating-certificates.md) | +| [Default database access](/content/operate/rs/8.0/security/access-control/manage-users/default-user.md) | [Redis ACLs](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md) | [Encrypt private keys on disk](/content/operate/rs/8.0/security/encryption/pem-encryption.md) | [Enable OCSP stapling](/content/operate/rs/8.0/security/certificates/ocsp-stapling.md) | +| [Rotate user passwords](/content/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords.md) | [Integrate with LDAP](/content/operate/rs/8.0/security/access-control/ldap/_index.md) | [Internode encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md) | [Audit database connections](/content/operate/rs/8.0/security/audit-events.md) | +| [Single sign-on (SSO)](/content/operate/rs/8.0/security/access-control/saml-sso.md) | | | | ## Recommended security practices -See [Recommended security practices]({{}}) to learn how to protect Redis Software. +See [Recommended security practices](/content/operate/rs/8.0/security/recommended-security-practices.md) to learn how to protect Redis Software. ## Redis Trust Center diff --git a/content/operate/rs/8.0/security/access-control/_index.md b/content/operate/rs/8.0/security/access-control/_index.md index a0022a990c..7cf02a5e1a 100644 --- a/content/operate/rs/8.0/security/access-control/_index.md +++ b/content/operate/rs/8.0/security/access-control/_index.md @@ -40,12 +40,11 @@ The following diagram shows three different options for roles and users: ## Default database access -When you create a database, [default user access]({{< relref "/operate/rs/8.0/security/access-control/manage-users/default-user" >}}) is enabled automatically. +When you create a database, [default user access](/content/operate/rs/8.0/security/access-control/manage-users/default-user.md) is enabled automatically. -If you set up role-based access controls for your database and don't require compatibility with versions earlier than Redis 6, you can [deactivate the default user]({{< relref "/operate/rs/8.0/security/access-control/manage-users/default-user" >}}). +If you set up role-based access controls for your database and don't require compatibility with versions earlier than Redis 6, you can [deactivate the default user](/content/operate/rs/8.0/security/access-control/manage-users/default-user.md). -{{}} -Before you [deactivate default user access]({{< relref "/operate/rs/8.0/security/access-control/manage-users/default-user#deactivate-default-user" >}}), make sure the role associated with the database is [assigned to a user]({{< relref "/operate/rs/8.0/security/access-control/create-users#assign-roles-to-users" >}}). Otherwise, the database will be inaccessible. -{{}} +> [!WARNING] +> Before you [deactivate default user access](/content/operate/rs/8.0/security/access-control/manage-users/default-user.md#deactivate-default-user), make sure the role associated with the database is [assigned to a user](/content/operate/rs/8.0/security/access-control/create-users.md#assign-roles-to-users). Otherwise, the database will be inaccessible. ## More info diff --git a/content/operate/rs/8.0/security/access-control/create-cluster-roles.md b/content/operate/rs/8.0/security/access-control/create-cluster-roles.md index 6d35924777..d5d6be29e5 100644 --- a/content/operate/rs/8.0/security/access-control/create-cluster-roles.md +++ b/content/operate/rs/8.0/security/access-control/create-cluster-roles.md @@ -15,7 +15,7 @@ Roles with cluster access allow access to the Cluster Management UI and REST API ## Default management roles -Redis Software includes five predefined roles that determine a user's level of access to the Cluster Manager UI and [REST API]({{}}). +Redis Software includes five predefined roles that determine a user's level of access to the Cluster Manager UI and [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). 1. **DB Viewer** - Read database settings 1. **DB Member** - Administer databases @@ -25,7 +25,7 @@ Redis Software includes five predefined roles that determine a user's level of a 1. **Admin** - Full cluster access 1. **None** - For data access only - cannot access the Cluster Manager UI or use the REST API -For more details about the privileges granted by each of these roles, see [Cluster Manager UI permissions](#cluster-manager-ui-permissions) or [REST API permissions]({{}}). +For more details about the privileges granted by each of these roles, see [Cluster Manager UI permissions](#cluster-manager-ui-permissions) or [REST API permissions](/content/operate/rs/8.0/references/rest-api/permissions.md). ## Cluster Manager UI permissions @@ -78,7 +78,7 @@ To create a role that grants cluster access using the Cluster Manager UI: -tab-sep- -To [create a role]({{}}) that grants cluster access using the REST API: +To [create a role](/content/operate/rs/8.0/references/rest-api/requests/roles/_index.md#post-role) that grants cluster access using the REST API: ```sh POST /v1/roles @@ -89,4 +89,4 @@ POST /v1/roles ``` {{< /multitabs >}} -You can [assign the new role to users]({{}}) to grant cluster access. +You can [assign the new role to users](/content/operate/rs/8.0/security/access-control/create-users.md#assign-roles-to-users) to grant cluster access. diff --git a/content/operate/rs/8.0/security/access-control/create-combined-roles.md b/content/operate/rs/8.0/security/access-control/create-combined-roles.md index 1539dabb8d..6055657a5b 100644 --- a/content/operate/rs/8.0/security/access-control/create-combined-roles.md +++ b/content/operate/rs/8.0/security/access-control/create-combined-roles.md @@ -35,13 +35,13 @@ To define a Redis ACL rule using the Cluster Manager UI: 1. Enter a descriptive name for the Redis ACL. This will be used to associate the ACL rule with the role. -1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{}}). +1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md). 1. Click **Save**. -tab-sep- -To define a Redis ACL rule using the REST API, use a [create Redis ACL]({{}}) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{}}). +To define a Redis ACL rule using the REST API, use a [create Redis ACL](/content/operate/rs/8.0/references/rest-api/requests/redis_acls/_index.md#post-redis_acl) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md). Example request: @@ -67,9 +67,8 @@ To associate the Redis ACL with a role and database, use the `uid` from the resp {{< /multitabs >}} -{{}} -For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed. -{{}} +> [!NOTE] +> For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed. ## Create roles with ACLs and cluster access {#create-role} @@ -91,7 +90,7 @@ To define a role for combined access using the Cluster Manager UI: 1. Enter a descriptive name for the role. This will be used to reference the role when configuring users. -1. Choose a **Management role** other than **None**. For details about permissions granted by each role, see [Cluster Manager UI permissions]({{}}) and [REST API permissions]({{}}). +1. Choose a **Management role** other than **None**. For details about permissions granted by each role, see [Cluster Manager UI permissions](/content/operate/rs/8.0/security/access-control/create-cluster-roles.md#cluster-manager-ui-permissions) and [REST API permissions](/content/operate/rs/8.0/references/rest-api/permissions.md). Add role with name @@ -109,7 +108,7 @@ To define a role for combined access using the Cluster Manager UI: To define a role for combined access using the REST API: -1. Use a [create role]({{}}) request: +1. Use a [create role](/content/operate/rs/8.0/references/rest-api/requests/roles/_index.md#post-role) request: ```sh POST /v1/roles @@ -131,7 +130,7 @@ To define a role for combined access using the REST API: To associate the role with a Redis ACL and database, use the `uid` from the response as the `role_uid` when you add `roles_permissions` to the database. -2. [Update a database's configuration]({{}}) to add `roles_permissions` with the role and Redis ACL: +2. [Update a database's configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) to add `roles_permissions` with the role and Redis ACL: ```sh POST /v1/bdbs/ @@ -148,4 +147,4 @@ To define a role for combined access using the REST API: {{< /multitabs >}} -You can [assign the new role to users]({{}}) to grant database access and access to the Cluster Manager UI and REST API. +You can [assign the new role to users](/content/operate/rs/8.0/security/access-control/create-users.md#assign-roles-to-users) to grant database access and access to the Cluster Manager UI and REST API. diff --git a/content/operate/rs/8.0/security/access-control/create-db-roles.md b/content/operate/rs/8.0/security/access-control/create-db-roles.md index 98aeabae3c..d867fc25de 100644 --- a/content/operate/rs/8.0/security/access-control/create-db-roles.md +++ b/content/operate/rs/8.0/security/access-control/create-db-roles.md @@ -11,7 +11,7 @@ weight: 15 url: '/operate/rs/8.0/security/access-control/create-db-roles/' --- -Roles with database access grant the ability to access and interact with a database's data. Database access privileges are determined by defining [Redis ACLs]({{}}) and adding them to roles. +Roles with database access grant the ability to access and interact with a database's data. Database access privileges are determined by defining [Redis ACLs](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md) and adding them to roles. To create a role that grants database access without granting access to the Redis Software Cluster Manager UI and REST API: @@ -37,13 +37,13 @@ To define a Redis ACL rule using the Cluster Manager UI: 1. Enter a descriptive name for the Redis ACL. This will be used to associate the ACL rule with the role. -1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{}}). +1. Define the ACL rule. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md). 1. Click **Save**. -tab-sep- -To define a Redis ACL rule using the REST API, use a [create Redis ACL]({{}}) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview]({{}}). +To define a Redis ACL rule using the REST API, use a [create Redis ACL](/content/operate/rs/8.0/references/rest-api/requests/redis_acls/_index.md#post-redis_acl) request. For more information about Redis ACL rules and syntax, see the [Redis ACL overview](/content/operate/rs/8.0/security/access-control/redis-acl-overview.md). Example request: @@ -69,9 +69,8 @@ To associate the Redis ACL with a role and database, use the `uid` from the resp {{< /multitabs >}} -{{}} -For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed. -{{}} +> [!NOTE] +> For multi-key commands on multi-slot keys, the return value is `failure`, but the command runs on the keys that are allowed. ## Create roles with ACLs @@ -109,7 +108,7 @@ To define a role for database access using the Cluster Manager UI: To define a role for database access using the REST API: -1. Use a [create role]({{}}) request: +1. Use a [create role](/content/operate/rs/8.0/references/rest-api/requests/roles/_index.md#post-role) request: ```sh POST /v1/roles @@ -131,7 +130,7 @@ To define a role for database access using the REST API: To associate the role with a Redis ACL and database, use the `uid` from the response as the `role_uid` when you add `roles_permissions` to the database. -1. [Update a database's configuration]({{}}) to add `roles_permissions` with the role and Redis ACL: +1. [Update a database's configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) to add `roles_permissions` with the role and Redis ACL: ```sh POST /v1/bdbs/ @@ -148,4 +147,4 @@ To define a role for database access using the REST API: {{< /multitabs >}} -You can [assign the new role to users]({{}}) to grant database access. +You can [assign the new role to users](/content/operate/rs/8.0/security/access-control/create-users.md#assign-roles-to-users) to grant database access. diff --git a/content/operate/rs/8.0/security/access-control/create-users.md b/content/operate/rs/8.0/security/access-control/create-users.md index 22abe09d52..622c2ba0d7 100644 --- a/content/operate/rs/8.0/security/access-control/create-users.md +++ b/content/operate/rs/8.0/security/access-control/create-users.md @@ -15,9 +15,9 @@ url: '/operate/rs/8.0/security/access-control/create-users/' Before you create other users: -1. Review the [access control overview]({{}}) to learn how to use role-based access control (RBAC) to manage users' cluster access and database access. +1. Review the [access control overview](/content/operate/rs/8.0/security/access-control/_index.md) to learn how to use role-based access control (RBAC) to manage users' cluster access and database access. -1. Create roles you can assign to users. See [Create roles with cluster access only]({{}}), [Create roles with database access only]({{}}), or [Create roles with combined access]({{}}) for instructions. +1. Create roles you can assign to users. See [Create roles with cluster access only](/content/operate/rs/8.0/security/access-control/create-cluster-roles.md), [Create roles with database access only](/content/operate/rs/8.0/security/access-control/create-db-roles.md), or [Create roles with combined access](/content/operate/rs/8.0/security/access-control/create-combined-roles.md) for instructions. ## Add users @@ -29,11 +29,11 @@ To add a user to the cluster: 1. Enter the name, email, and password of the new user. - {{< note >}} -- Usernames must contain ASCII characters only. - -- To use [single sign-on (SSO)]({{< relref "/operate/rs/8.0/security/access-control/saml-sso" >}}), users must have email addresses. - {{< /note >}} + > [!NOTE] + > - Usernames must contain ASCII characters only. + > + > - To use [single sign-on (SSO)](/content/operate/rs/8.0/security/access-control/saml-sso.md), users must have email addresses. + > {{Create user panel with fields for username, email, password, and alerts.}} @@ -75,8 +75,8 @@ Assign a role, associated with specific databases and access control lists (ACLs Depending on the type of the user's assigned role (cluster management role or data access role), the user can now: -- [Connect to a database]({{< relref "/operate/rs/8.0/databases/connect" >}}) associated with the role and run limited Redis commands, depending on the role's Redis ACLs. +- [Connect to a database](/content/operate/rs/8.0/databases/connect/_index.md) associated with the role and run limited Redis commands, depending on the role's Redis ACLs. - Sign in to the Redis Software Cluster Manager UI. -- Make a [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) request. +- Make a [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) request. diff --git a/content/operate/rs/8.0/security/access-control/ldap/_index.md b/content/operate/rs/8.0/security/access-control/ldap/_index.md index 13a336d133..e145cb9861 100644 --- a/content/operate/rs/8.0/security/access-control/ldap/_index.md +++ b/content/operate/rs/8.0/security/access-control/ldap/_index.md @@ -14,9 +14,9 @@ weight: 50 url: '/operate/rs/8.0/security/access-control/ldap/' --- -Redis Software supports [Lightweight Directory Access Protocol](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) (LDAP) authentication and authorization through its [role-based access controls]({{< relref "/operate/rs/8.0/security/access-control" >}}) (RBAC). You can use LDAP to authorize access to the Cluster Manager UI and to control database access. +Redis Software supports [Lightweight Directory Access Protocol](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) (LDAP) authentication and authorization through its [role-based access controls](/content/operate/rs/8.0/security/access-control/_index.md) (RBAC). You can use LDAP to authorize access to the Cluster Manager UI and to control database access. -You can configure LDAP roles using the Redis Software Cluster Manager UI or [REST API]({{< relref "/operate/rs/8.0/references/rest-api/requests/ldap_mappings/" >}}). +You can configure LDAP roles using the Redis Software Cluster Manager UI or [REST API](/content/operate/rs/8.0/references/rest-api/requests/ldap_mappings/_index.md). ## How it works @@ -57,26 +57,26 @@ Before you enable LDAP in Redis Software, you need: 1. The LDAP groups that correspond to the levels of access you wish to authorize. Each LDAP group will be mapped to a Redis Software access control role. -1. A Redis Software access control role for each LDAP group. Before you enable LDAP, you need to set up [role-based access controls]({{< relref "/operate/rs/8.0/security/access-control" >}}) (RBAC). +1. A Redis Software access control role for each LDAP group. Before you enable LDAP, you need to set up [role-based access controls](/content/operate/rs/8.0/security/access-control/_index.md) (RBAC). ## Enable LDAP To enable LDAP: -1. From **Access Control > LDAP** in the Cluster Manager UI, select the **Configuration** tab and [enable LDAP access]({{< relref "/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap" >}}). +1. From **Access Control > LDAP** in the Cluster Manager UI, select the **Configuration** tab and [enable LDAP access](/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md). {{Configure LDAP screen}} -2. Map LDAP groups to [access control roles]({{< relref "/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles" >}}). +2. Map LDAP groups to [access control roles](/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md). -3. Update database access control lists (ACLs) to [authorize role access]({{< relref "/operate/rs/8.0/security/access-control/ldap/update-database-acls" >}}). +3. Update database access control lists (ACLs) to [authorize role access](/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md). If you already have appropriate roles, you can update them to include LDAP groups. ## More info -- Enable and configure [role-based LDAP]({{< relref "/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap" >}}) -- Map LDAP groups to [access control roles]({{< relref "/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles" >}}) -- Update database ACLs to [authorize LDAP access]({{< relref "/operate/rs/8.0/security/access-control/ldap/update-database-acls" >}}) -- Learn more about Redis Software [security and practices]({{< relref "/operate/rs/8.0/security/" >}}) +- Enable and configure [role-based LDAP](/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md) +- Map LDAP groups to [access control roles](/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md) +- Update database ACLs to [authorize LDAP access](/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md) +- Learn more about Redis Software [security and practices](/content/operate/rs/8.0/security/_index.md) diff --git a/content/operate/rs/8.0/security/access-control/ldap/certificate-based-authentication.md b/content/operate/rs/8.0/security/access-control/ldap/certificate-based-authentication.md index d9635da2bd..c18bb78aa8 100644 --- a/content/operate/rs/8.0/security/access-control/ldap/certificate-based-authentication.md +++ b/content/operate/rs/8.0/security/access-control/ldap/certificate-based-authentication.md @@ -22,19 +22,19 @@ Here's how it works: Before enabling certificate-based authentication for LDAP, you must complete the following prerequisites: -1. [Enable mutual TLS]({{}}) for the relevant databases to set up certificate-based authentication. +1. [Enable mutual TLS](/content/operate/rs/8.0/security/encryption/tls/enable-tls.md) for the relevant databases to set up certificate-based authentication. -1. [Set up LDAP for the cluster]({{< relref "/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap#set-up-ldap-connection" >}}). +1. [Set up LDAP for the cluster](/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md#set-up-ldap-connection). -1. [Map LDAP users to appropriate cluster roles]({{< relref "/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles" >}}). +1. [Map LDAP users to appropriate cluster roles](/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md). -1. [Configure database ACLs]({{< relref "/operate/rs/8.0/security/access-control/ldap/update-database-acls" >}}) to authorize LDAP users. +1. [Configure database ACLs](/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md) to authorize LDAP users. ## Set up certificate-based authentication for LDAP To set up certificate-based authentication for LDAP: -1. Enable certificate-based authentication in the cluster LDAP configuration using an [update LDAP configuration]({{}}) REST API request. +1. Enable certificate-based authentication in the cluster LDAP configuration using an [update LDAP configuration](/content/operate/rs/8.0/references/rest-api/api-reference.md#tag/Cluster/operation/cluster_update_ldap_config) REST API request. To perform LDAP lookup for certificate-authenticated users: @@ -79,7 +79,7 @@ The certificate subject must include the OID. {{}} -1. Enable external certificate-based authentication in cluster settings using an [update cluster settings]({{}}) REST API request: +1. Enable external certificate-based authentication in cluster settings using an [update cluster settings](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request: ```sh PUT https://:/v1/cluster @@ -90,4 +90,4 @@ The certificate subject must include the OID. ## Verify your setup -After configuration is complete, try to [connect to the database with certificate-based authentication]({{}}) and verify your setup. +After configuration is complete, try to [connect to the database with certificate-based authentication](/content/operate/rs/8.0/security/certificates/certificate-based-authentication.md#authenticate-database-connections) and verify your setup. diff --git a/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md b/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md index 3e17d61e6d..ee2d224122 100644 --- a/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md +++ b/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md @@ -94,6 +94,6 @@ However, if you enable multi-factor authentication (MFA) for your LDAP server, y ## More info -- Map LDAP groups to [access control roles]({{< relref "/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles" >}}) -- Update database ACLs to [authorize LDAP access]({{< relref "/operate/rs/8.0/security/access-control/ldap/update-database-acls" >}}) -- Learn more about Redis Software [security and practices]({{< relref "/operate/rs/8.0/security/" >}}) +- Map LDAP groups to [access control roles](/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md) +- Update database ACLs to [authorize LDAP access](/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md) +- Learn more about Redis Software [security and practices](/content/operate/rs/8.0/security/_index.md) diff --git a/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md b/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md index d10ab90cec..f82ef615f5 100644 --- a/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md +++ b/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md @@ -21,9 +21,9 @@ To map LDAP groups to access control roles in the Cluster Manager UI: 1. Select **Access Control > LDAP > Mapping**. - {{}} -You can map LDAP roles when LDAP configuration is not enabled, but they won't have any effect until you [configure and enable LDAP]({{< relref "/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap" >}}). - {{}} + > [!NOTE] + > You can map LDAP roles when LDAP configuration is not enabled, but they won't have any effect until you [configure and enable LDAP](/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md). + > {{Enable LDAP mappings Panel}} @@ -53,6 +53,6 @@ The scope of the authorization depends on the access control role: ## More info -- Enable and configure [role-based LDAP]({{< relref "/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap" >}}) -- Update database ACLs to [authorize LDAP access]({{< relref "/operate/rs/8.0/security/access-control/ldap/update-database-acls" >}}) -- Learn more about Redis Software [security and practices]({{< relref "/operate/rs/8.0/security/" >}}) +- Enable and configure [role-based LDAP](/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md) +- Update database ACLs to [authorize LDAP access](/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md) +- Learn more about Redis Software [security and practices](/content/operate/rs/8.0/security/_index.md) diff --git a/content/operate/rs/8.0/security/access-control/ldap/migrate-to-role-based-ldap.md b/content/operate/rs/8.0/security/access-control/ldap/migrate-to-role-based-ldap.md index fc2124ff45..6d57c75ed2 100644 --- a/content/operate/rs/8.0/security/access-control/ldap/migrate-to-role-based-ldap.md +++ b/content/operate/rs/8.0/security/access-control/ldap/migrate-to-role-based-ldap.md @@ -11,7 +11,7 @@ weight: 55 url: '/operate/rs/8.0/security/access-control/ldap/migrate-to-role-based-ldap/' --- -Redis Software supports LDAP through a [role-based mechanism]({{< relref "/operate/rs/8.0/security/access-control/ldap/" >}}), first introduced [in v6.0.20]({{< relref "/operate/rs/release-notes/rs-6-0-20-april-2021" >}}). +Redis Software supports LDAP through a [role-based mechanism](/content/operate/rs/8.0/security/access-control/ldap/_index.md), first introduced [in v6.0.20](/content/operate/rs/release-notes/rs-6-0-20-april-2021.md). Earlier versions of Redis Software supported a cluster-based mechanism; however, that mechanism was removed in v6.2.12. @@ -59,17 +59,17 @@ This checklist covers the basic process: To test your LDAP integration, you can: -- Connect with `redis-cli` and use the [`AUTH` command]({{< relref "/commands/auth" >}}) to test LDAP username/password credentials. +- Connect with `redis-cli` and use the [`AUTH` command](/content/commands/auth.md) to test LDAP username/password credentials. - Sign in to the Cluster Manager UI using LDAP credentials authorized for admin access. -- Use [Redis Insight]({{< relref "/develop/tools/insight" >}}) to access a database using authorized LDAP credentials. +- Use [Redis Insight](/content/develop/tools/insight/_index.md) to access a database using authorized LDAP credentials. -- Use the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) to connect using authorized LDAP credentials. +- Use the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) to connect using authorized LDAP credentials. ## More info -- Enable and configure [role-based LDAP]({{< relref "/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap" >}}) -- Map LDAP groups to [access control roles]({{< relref "/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles" >}}) -- Update database ACLs to [authorize LDAP access]({{< relref "/operate/rs/8.0/security/access-control/ldap/update-database-acls" >}}) -- Learn more about Redis Software [security and practices]({{< relref "/operate/rs/8.0/security/" >}}) +- Enable and configure [role-based LDAP](/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md) +- Map LDAP groups to [access control roles](/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md) +- Update database ACLs to [authorize LDAP access](/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md) +- Learn more about Redis Software [security and practices](/content/operate/rs/8.0/security/_index.md) diff --git a/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md b/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md index 91150a6755..993a055726 100644 --- a/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md +++ b/content/operate/rs/8.0/security/access-control/ldap/update-database-acls.md @@ -32,6 +32,6 @@ As a result, we recommend ordering roles so that higher access roles appear befo ## More info -- Enable and configure [role-based LDAP]({{< relref "/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md" >}}) -- Map LDAP groups to [access control roles]({{< relref "/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md" >}}) -- Learn more about Redis Software [security and practices]({{< relref "/operate/rs/8.0/security/" >}}) +- Enable and configure [role-based LDAP](/content/operate/rs/8.0/security/access-control/ldap/enable-role-based-ldap.md) +- Map LDAP groups to [access control roles](/content/operate/rs/8.0/security/access-control/ldap/map-ldap-groups-to-roles.md) +- Learn more about Redis Software [security and practices](/content/operate/rs/8.0/security/_index.md) diff --git a/content/operate/rs/8.0/security/access-control/manage-passwords/_index.md b/content/operate/rs/8.0/security/access-control/manage-passwords/_index.md index 232c332bd1..e603c59cbf 100644 --- a/content/operate/rs/8.0/security/access-control/manage-passwords/_index.md +++ b/content/operate/rs/8.0/security/access-control/manage-passwords/_index.md @@ -15,16 +15,15 @@ url: '/operate/rs/8.0/security/access-control/manage-passwords/' Redis Software provides several ways to manage the passwords of local accounts, including: -- [Password complexity rules]({{< relref "/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules" >}}) +- [Password complexity rules](/content/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules.md) -- [Password expiration]({{< relref "/operate/rs/8.0/security/access-control/manage-passwords/password-expiration" >}}) +- [Password expiration](/content/operate/rs/8.0/security/access-control/manage-passwords/password-expiration.md) -- [Password rotation]({{< relref "/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords" >}}) +- [Password rotation](/content/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords.md) -You can also manage a user's ability to [sign in]({{< relref "/operate/rs/8.0/security/access-control/manage-users/login-lockout#user-login-lockout" >}}) and control [session timeout]({{< relref "/operate/rs/8.0/security/access-control/manage-users/login-lockout#session-timeout" >}}). +You can also manage a user's ability to [sign in](/content/operate/rs/8.0/security/access-control/manage-users/login-lockout.md#user-login-lockout) and control [session timeout](/content/operate/rs/8.0/security/access-control/manage-users/login-lockout.md#session-timeout). -To enforce more advanced password policies, we recommend using [LDAP integration]({{< relref "/operate/rs/8.0/security/access-control/ldap" >}}) with an external identity provider, such as Active Directory. +To enforce more advanced password policies, we recommend using [LDAP integration](/content/operate/rs/8.0/security/access-control/ldap/_index.md) with an external identity provider, such as Active Directory. -{{}} -Redis Software securely stores all user passwords using a cryptographic hash function. The default password hashing algorithm is `SHA-256`, but you can [change the password hashing algorithm]({{}}) to `PBKDF2` as of Redis Software version 7.8.6-13. -{{}} +> [!NOTE] +> Redis Software securely stores all user passwords using a cryptographic hash function. The default password hashing algorithm is `SHA-256`, but you can [change the password hashing algorithm](/content/operate/rs/8.0/security/access-control/manage-passwords/password-hashing-algorithm.md) to `PBKDF2` as of Redis Software version 7.8.6-13. diff --git a/content/operate/rs/8.0/security/access-control/manage-passwords/active-active-admin-credentials.md b/content/operate/rs/8.0/security/access-control/manage-passwords/active-active-admin-credentials.md index fef5de012e..fa9987f96c 100644 --- a/content/operate/rs/8.0/security/access-control/manage-passwords/active-active-admin-credentials.md +++ b/content/operate/rs/8.0/security/access-control/manage-passwords/active-active-admin-credentials.md @@ -13,15 +13,14 @@ url: '/operate/rs/8.0/security/access-control/manage-passwords/active-active-adm Active-Active databases use administrator credentials to manage operations. When you change the administrator password on clusters with Active-Active databases, you must update the Active-Active database configuration to prevent authentication failures during Active-Active management operations. -{{}} -Do not perform any management operations on the databases until these steps are complete. -{{}} +> [!WARNING] +> Do not perform any management operations on the databases until these steps are complete. To update the administrator password on a cluster with Active-Active databases: 1. From the user management page, update the administrator user password on the clusters you want to update. -1. Run [`crdb-cli crdb list`]({{}}) to find the `CRDB-GUID` that uniquely identifies each Active-Active database and the fully qualified domain names (`FQDN`) of each participating cluster: +1. Run [`crdb-cli crdb list`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/list.md) to find the `CRDB-GUID` that uniquely identifies each Active-Active database and the fully qualified domain names (`FQDN`) of each participating cluster: ```sh crdb-cli crdb list @@ -35,7 +34,7 @@ To update the administrator password on a cluster with Active-Active databases: 4053a0dd-a4a5-4f38-b135-75b7a2dc7331 my-aa-db 2 fqdn2.example.com ``` -1. Update the Active-Active database credentials using the [`crdb-cli crdb update`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update" >}}) command: +1. Update the Active-Active database credentials using the [`crdb-cli crdb update`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update.md) command: ```sh crdb-cli crdb update \ diff --git a/content/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules.md b/content/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules.md index ac23559add..c7974987d1 100644 --- a/content/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules.md +++ b/content/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules.md @@ -41,7 +41,7 @@ To enable password complexity rules, use one of the following methods: 1. Select **Save**. -- [Update cluster]({{}}) REST API request: +- [Update cluster](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request: ```sh PUT https://[host][:port]/v1/cluster @@ -70,7 +70,7 @@ To change the minimum password length, use one of the following methods: 1. Click **Save**. -- [Update cluster]({{}}) REST API request: +- [Update cluster](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request: ```sh PUT https://[host][:port]/v1/cluster @@ -89,7 +89,7 @@ To deactivate password complexity rules, use one of the following methods: 1. Select **Save**. -- [Update cluster]({{}}) REST API request: +- [Update cluster](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request: ```sh PUT https://[host][:port]/v1/cluster diff --git a/content/operate/rs/8.0/security/access-control/manage-passwords/password-expiration.md b/content/operate/rs/8.0/security/access-control/manage-passwords/password-expiration.md index 43fe15f6c4..c489e75fff 100644 --- a/content/operate/rs/8.0/security/access-control/manage-passwords/password-expiration.md +++ b/content/operate/rs/8.0/security/access-control/manage-passwords/password-expiration.md @@ -15,9 +15,8 @@ url: '/operate/rs/8.0/security/access-control/manage-passwords/password-expirati ## Enable password expiration -{{}} -Password expiration is calculated from the time the password was last updated, not from when the policy is enabled. Passwords that were set long enough ago to already be expired will immediately be locked out when you enable this policy. Before enabling password expiration, verify all user passwords have been updated recently enough to avoid immediate lockouts. -{{}} +> [!WARNING] +> Password expiration is calculated from the time the password was last updated, not from when the policy is enabled. Passwords that were set long enough ago to already be expired will immediately be locked out when you enable this policy. Before enabling password expiration, verify all user passwords have been updated recently enough to avoid immediate lockouts. To enforce an expiration of a user's password after a specified number of days: diff --git a/content/operate/rs/8.0/security/access-control/manage-passwords/password-hashing-algorithm.md b/content/operate/rs/8.0/security/access-control/manage-passwords/password-hashing-algorithm.md index 6c9b82ecf0..1376d40c3f 100644 --- a/content/operate/rs/8.0/security/access-control/manage-passwords/password-hashing-algorithm.md +++ b/content/operate/rs/8.0/security/access-control/manage-passwords/password-hashing-algorithm.md @@ -14,11 +14,11 @@ url: '/operate/rs/8.0/security/access-control/manage-passwords/password-hashing- Redis Software securely stores all user passwords using a cryptographic hash function. The default password hashing algorithm is `SHA-256`, but `PBKDF2` is also supported as of Redis Software version 7.8.6-13. -You can change the password hashing algorithm using [`rladmin`]({{}}) or the [REST API]({{}}). When you change the password hashing algorithm, the cluster rehashes the administrator password and passwords for all users, including default users. +You can change the password hashing algorithm using [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) or the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). When you change the password hashing algorithm, the cluster rehashes the administrator password and passwords for all users, including default users. ## Command-line method -To change the password hashing algorithm from the command line, run [`rladmin cluster change_password_hashing_algorithm`]({{}}): +To change the password hashing algorithm from the command line, run [`rladmin cluster change_password_hashing_algorithm`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/change_password_hashing_algorithm.md): ```sh rladmin cluster change_password_hashing_algorithm PBKDF2 @@ -26,7 +26,7 @@ rladmin cluster change_password_hashing_algorithm PBKDF2 ## REST API method -You can [change the password hashing algorithm]({{}}) using a REST API request: +You can [change the password hashing algorithm](/content/operate/rs/8.0/references/rest-api/requests/cluster/change_password_hashing_algorithm.md#patch-change-password-hashing-algorithm) using a REST API request: ```sh PATCH /v1/cluster/change_password_hashing_algorithm diff --git a/content/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords.md b/content/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords.md index 3ae1fa4b1f..09d6066197 100644 --- a/content/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords.md +++ b/content/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords.md @@ -12,18 +12,17 @@ weight: 70 url: '/operate/rs/8.0/security/access-control/manage-passwords/rotate-passwords/' --- -Redis Software lets you implement password rotation policies using the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}). +Redis Software lets you implement password rotation policies using the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). You can add a new password for a database user without immediately invalidating the old one to prevent possible authentication errors in production. -{{< note >}} -Password rotation does not work for the default user. [Add additional users]({{< relref "/operate/rs/8.0/security/access-control/create-users" >}}) to enable password rotation. -{{< /note >}} +> [!NOTE] +> Password rotation does not work for the default user. [Add additional users](/content/operate/rs/8.0/security/access-control/create-users.md) to enable password rotation. ## Password rotation policies For user access to the Redis Software Cluster Manager UI, -you can set a [password expiration policy]({{< relref "/operate/rs/8.0/security/access-control/manage-passwords/password-expiration" >}}) to prompt the user to change their password. +you can set a [password expiration policy](/content/operate/rs/8.0/security/access-control/manage-passwords/password-expiration.md) to prompt the user to change their password. However, for database connections that rely on password authentication, you need to allow for authentication with the existing password while you roll out the new password to your systems. @@ -32,13 +31,12 @@ With the Redis Software REST API, you can add additional passwords to your user After the old password is replaced in the database connections, you can delete the old password to finish the password rotation process. -{{< warning >}} -Multiple passwords are only supported using the REST API. -If you reset the password for a user in the Cluster Manager UI, -the new password replaces all other passwords for that user. -{{< /warning >}} +> [!WARNING] +> Multiple passwords are only supported using the REST API. +> If you reset the password for a user in the Cluster Manager UI, +> the new password replaces all other passwords for that user. -The new password cannot already exist as a password for the user and must meet the [password complexity]({{< relref "/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules" >}}) requirements, if enabled. +The new password cannot already exist as a password for the user and must meet the [password complexity](/content/operate/rs/8.0/security/access-control/manage-passwords/password-complexity-rules.md) requirements, if enabled. ## Rotate password @@ -46,7 +44,7 @@ Admins can rotate passwords for any user. If you are not an admin, you can only To rotate passwords: -1. Add an additional password to a user's password list with [`POST /v1/users/password`]({{< relref "/operate/rs/8.0/references/rest-api/requests/users/password#add-password" >}}). +1. Add an additional password to a user's password list with [`POST /v1/users/password`](/content/operate/rs/8.0/references/rest-api/requests/users/password.md#add-password). ```sh POST https://:/v1/users/password @@ -59,7 +57,7 @@ To rotate passwords: After you send this request, the user can authenticate with both the old and the new password. 1. Update the password in all database connections that connect with the user account. -1. Delete the original password with [`DELETE /v1/users/password`]({{< relref "/operate/rs/8.0/references/rest-api/requests/users/password#delete-password" >}}): +1. Delete the original password with [`DELETE /v1/users/password`](/content/operate/rs/8.0/references/rest-api/requests/users/password.md#delete-password): ```sh DELETE https://:/v1/users/password @@ -76,7 +74,7 @@ To rotate passwords: You can replace all existing passwords for your account with a single password that does not match any existing passwords. Admins can reset passwords for any user. This can be helpful if you suspect that your passwords are compromised and you want to quickly resecure the account. -To replace a user's passwords, use [`PUT /v1/users/password`]({{< relref "/operate/rs/8.0/references/rest-api/requests/users/password#update-password" >}}). +To replace a user's passwords, use [`PUT /v1/users/password`](/content/operate/rs/8.0/references/rest-api/requests/users/password.md#update-password). ```sh PUT https://:/v1/users/password diff --git a/content/operate/rs/8.0/security/access-control/manage-users/default-user.md b/content/operate/rs/8.0/security/access-control/manage-users/default-user.md index 9eff3615a9..daa6eae9e7 100644 --- a/content/operate/rs/8.0/security/access-control/manage-users/default-user.md +++ b/content/operate/rs/8.0/security/access-control/manage-users/default-user.md @@ -12,7 +12,7 @@ weight: 60 url: '/operate/rs/8.0/security/access-control/manage-users/default-user/' --- -When you [create a database]({{< relref "/operate/rs/8.0/databases/create" >}}), default user database access is enabled by default (**Unauthenticated access** is selected). This gives the default user full access to the database and enables compatibility with versions of Redis before Redis 6. +When you [create a database](/content/operate/rs/8.0/databases/create.md), default user database access is enabled by default (**Unauthenticated access** is selected). This gives the default user full access to the database and enables compatibility with versions of Redis before Redis 6. Select **Password-only authentication**, then enter and confirm a default database password to require authentication for connections to the database. @@ -20,7 +20,7 @@ Select **Password-only authentication**, then enter and confirm a default databa ## Authenticate as default user -When you configure a password for your database, all connections to the database must authenticate using the [AUTH]({{< relref "/commands/auth" >}}) command. See Redis security's [authentication]({{}}) section for more information. +When you configure a password for your database, all connections to the database must authenticate using the [AUTH](/content/commands/auth.md) command. See Redis security's [authentication](/content/operate/oss_and_stack/management/security/_index.md#authentication) section for more information. ```sh AUTH @@ -40,13 +40,12 @@ To change the default user's password: ## Deactivate default user -If you set up [role-based access control]({{< relref "/operate/rs/8.0/security/access-control" >}}) with [access control lists]({{< relref "/operate/rs/8.0/security/access-control/create-db-roles" >}}) (ACLs) for your database and don't require backwards compatibility with versions earlier than Redis 6, you can [deactivate the default user]({{< relref "/operate/rs/8.0/security/access-control/manage-users/default-user" >}}). +If you set up [role-based access control](/content/operate/rs/8.0/security/access-control/_index.md) with [access control lists](/content/operate/rs/8.0/security/access-control/create-db-roles.md) (ACLs) for your database and don't require backwards compatibility with versions earlier than Redis 6, you can [deactivate the default user](/content/operate/rs/8.0/security/access-control/manage-users/default-user.md). -{{}} -- Before you deactivate default user access, make sure the role associated with the database is [assigned to a user]({{< relref "/operate/rs/8.0/security/access-control/create-users" >}}). Otherwise, the database will be inaccessible. - -- If you enabled the default database password during the creation of an [Active-Active database]({{< relref "/operate/rs/8.0/databases/active-active" >}}), you should not turn off the default database password because it could prevent the removal of participating database instances. -{{}} +> [!WARNING] +> - Before you deactivate default user access, make sure the role associated with the database is [assigned to a user](/content/operate/rs/8.0/security/access-control/create-users.md). Otherwise, the database will be inaccessible. +> +> - If you enabled the default database password during the creation of an [Active-Active database](/content/operate/rs/8.0/databases/active-active/_index.md), you should not turn off the default database password because it could prevent the removal of participating database instances. To deactivate the default user: diff --git a/content/operate/rs/8.0/security/access-control/manage-users/login-lockout.md b/content/operate/rs/8.0/security/access-control/manage-users/login-lockout.md index cfd89cbda1..43c424114d 100644 --- a/content/operate/rs/8.0/security/access-control/manage-users/login-lockout.md +++ b/content/operate/rs/8.0/security/access-control/manage-users/login-lockout.md @@ -22,11 +22,11 @@ Here, you learn how to configure the relevant settings. ## User login lockout -By default, after 5 failed login attempts within 15 minutes, the user account is locked for 30 minutes. You can change the user login lockout settings in the Cluster Manager UI or with [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}). +By default, after 5 failed login attempts within 15 minutes, the user account is locked for 30 minutes. You can change the user login lockout settings in the Cluster Manager UI or with [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md). ### View login lockout settings -You can view the cluster's user login lockout settings from **Cluster > Security > Preferences > Lockout threshold** in the Cluster Manager UI or with [`rladmin info cluster`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/info#info-cluster" >}}): +You can view the cluster's user login lockout settings from **Cluster > Security > Preferences > Lockout threshold** in the Cluster Manager UI or with [`rladmin info cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/info.md#info-cluster): ```sh $ rladmin info cluster | grep login_lockout @@ -65,7 +65,7 @@ To change the number of failed login attempts allowed before the user account is - [Cluster Manager UI](#configure-user-login-lockout) -- [`rladmin tune cluster`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [`rladmin tune cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster login_lockout_threshold @@ -89,7 +89,7 @@ To change the amount of time during which failed login attempts are counted, use - [Cluster Manager UI](#configure-user-login-lockout) -- [`rladmin tune cluster`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [`rladmin tune cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster login_lockout_counter_reset_after @@ -107,7 +107,7 @@ To change the amount of time that the user account is locked after excessive fai - [Cluster Manager UI](#configure-user-login-lockout) -- [`rladmin tune cluster`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [`rladmin tune cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster login_lockout_duration @@ -154,7 +154,7 @@ To unlock a user account in the Cluster Manager UI: -tab-sep- -To unlock a user account or reset a user password with `rladmin`, run the [`rladmin cluster reset_password`]({{}}) command: +To unlock a user account or reset a user password with `rladmin`, run the [`rladmin cluster reset_password`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/reset_password.md) command: ```sh rladmin cluster reset_password @@ -162,7 +162,7 @@ rladmin cluster reset_password -tab-sep- -To unlock a user account or reset a user password with the REST API, use [`PUT /v1/users`]({{< relref "/operate/rs/8.0/references/rest-api/requests/users#put-user" >}}): +To unlock a user account or reset a user password with the REST API, use [`PUT /v1/users`](/content/operate/rs/8.0/references/rest-api/requests/users/_index.md#put-user): ```sh PUT /v1/users @@ -189,7 +189,7 @@ To turn off user login lockout using the Cluster Manager UI: -tab-sep- -To turn off user login lockout using `rladmin`, run the [`rladmin tune cluster`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}) command: +To turn off user login lockout using `rladmin`, run the [`rladmin tune cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster) command: ```sh rladmin tune cluster login_lockout_threshold 0 @@ -219,7 +219,7 @@ To configure the session timeout using the Cluster Manager UI: -tab-sep- -To configure the session timeout using `rladmin`, run the [`rladmin cluster config`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config" >}}) command: +To configure the session timeout using `rladmin`, run the [`rladmin cluster config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md) command: ```sh rladmin cluster config cm_session_timeout_minutes diff --git a/content/operate/rs/8.0/security/access-control/redis-acl-overview.md b/content/operate/rs/8.0/security/access-control/redis-acl-overview.md index f7f09fed6e..3b133fa585 100644 --- a/content/operate/rs/8.0/security/access-control/redis-acl-overview.md +++ b/content/operate/rs/8.0/security/access-control/redis-acl-overview.md @@ -23,7 +23,7 @@ Redis ACLs are defined by a set of rules where you specify the commands or comma ### Commands and categories -Redis ACL rules can allow or block specific [Redis commands]({{< relref "/commands" >}}) or [command categories]({{< relref "/operate/oss_and_stack/management/security/acl" >}}#command-categories). +Redis ACL rules can allow or block specific [Redis commands](/content/commands) or [command categories](/content/operate/oss_and_stack/management/security/acl.md#command-categories). - `+` includes commands @@ -41,9 +41,9 @@ The following example allows all `read` commands and the `SET` command: For database versions earlier than Redis 8.2, module commands have several ACL limitations: -- [Redis modules]({{< relref "/operate/oss_and_stack/stack-with-enterprise" >}}) do not have command categories. +- [Redis modules](/content/operate/oss_and_stack/stack-with-enterprise/_index.md) do not have command categories. -- Other [command category]({{< relref "/operate/oss_and_stack/management/security/acl" >}}#command-categories) ACLs, such as `+@read` and `+@write`, do not include Redis module commands. `+@all` is the only exception because it allows all Redis commands. +- Other [command category](/content/operate/oss_and_stack/management/security/acl.md#command-categories) ACLs, such as `+@read` and `+@write`, do not include Redis module commands. `+@all` is the only exception because it allows all Redis commands. - You have to include individual module commands in a Redis ACL rule to allow them. @@ -73,7 +73,7 @@ The following example allows read and write access to all keys that start with " ### Pub/sub channels -The `&` prefix allows access to [pub/sub channels]({{< relref "/develop/pubsub" >}}) (only supported for databases with Redis version 6.2 or later). +The `&` prefix allows access to [pub/sub channels](/content/develop/pubsub/_index.md) (only supported for databases with Redis version 6.2 or later). To limit access to specific channels, include `resetchannels` before the allowed channels: @@ -83,7 +83,7 @@ resetchannels &channel1 &channel2 ### Selectors -[Selectors]({{< relref "/operate/oss_and_stack/management/security/acl" >}}#selectors) let you define multiple sets of rules in a single Redis ACL (only supported for databases with Redis version 7.2 or later). A command is allowed if it matches the base rule or any selector in the Redis ACL. +[Selectors](/content/operate/oss_and_stack/management/security/acl.md#selectors) let you define multiple sets of rules in a single Redis ACL (only supported for databases with Redis version 7.2 or later). A command is allowed if it matches the base rule or any selector in the Redis ACL. - `()` creates a new selector. @@ -97,7 +97,7 @@ In the following example, the base rule allows `GET key1` and the selector allow ## Default pub/sub permissions -Redis database version 6.2 introduced pub/sub ACL rules that determine which [pub/sub channels]({{< relref "/develop/pubsub" >}}) a user can access. +Redis database version 6.2 introduced pub/sub ACL rules that determine which [pub/sub channels](/content/develop/pubsub/_index.md) a user can access. The configuration option `acl-pubsub-default`, added in Redis Software version 6.4.2, determines the cluster-wide default level of access for all pub/sub channels. Redis Software uses the following pub/sub permissions by default: @@ -125,15 +125,14 @@ To secure pub/sub channels and prepare your cluster for future Redis Software re 1. If any issues occur, you can temporarily change the default pub/sub setting back to permissive. Resolve any problematic ACLs before making pub/sub permissions restrictive again. -{{}} -When you change the cluster's default pub/sub permissions to restrictive, `&*` is added to the **Full Access** ACL. Before you make this change, consider the following: - -- Because pub/sub ACL syntax was added in Redis 6.2, you can't associate the **Full Access** ACL with database versions 6.0 or lower after this change. - -- The **Full Access** ACL is not reverted if you change `acl-pubsub-default` to permissive again. - -- Every database with the default user enabled uses the **Full Access** ACL. -{{}} +> [!NOTE] +> When you change the cluster's default pub/sub permissions to restrictive, `&*` is added to the **Full Access** ACL. Before you make this change, consider the following: +> +> - Because pub/sub ACL syntax was added in Redis 6.2, you can't associate the **Full Access** ACL with database versions 6.0 or lower after this change. +> +> - The **Full Access** ACL is not reverted if you change `acl-pubsub-default` to permissive again. +> +> - Every database with the default user enabled uses the **Full Access** ACL. ### Change default pub/sub permissions @@ -145,7 +144,7 @@ As of Redis Software version 6.4.2, you can configure `acl_pubsub_default`, whic To make default pub/sub permissions restrictive: -1. [Upgrade all databases]({{< relref "/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database" >}}) in the cluster to Redis version 6.2 or later. +1. [Upgrade all databases](/content/operate/rs/8.0/installing-upgrading/upgrading/upgrade-database.md) in the cluster to Redis version 6.2 or later. 1. Set the default to restrictive (`resetchannels`) using one of the following methods: @@ -164,7 +163,7 @@ To set the default pub/sub permissions using the Cluster Manager UI: -tab-sep- -To set the default pub/sub permissions using `rladmin`, run the [`rladmin tune cluster`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}) command: +To set the default pub/sub permissions using `rladmin`, run the [`rladmin tune cluster`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster) command: ```sh rladmin tune cluster acl_pubsub_default resetchannels @@ -172,7 +171,7 @@ rladmin tune cluster acl_pubsub_default resetchannels -tab-sep- -To set the default pub/sub permissions using the REST API, use an [update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) request: +To set the default pub/sub permissions using the REST API, use an [update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) request: ```sh PUT /v1/cluster/policy @@ -201,14 +200,14 @@ Redis ACLs also have the following differences in Redis Software: To configure passwords in Redis Software, use one of the following methods: - - [`rladmin cluster reset_password`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/reset_password" >}}): + - [`rladmin cluster reset_password`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/reset_password.md): ```sh rladmin cluster reset_password ``` - - REST API [`PUT /v1/users`]({{< relref "/operate/rs/8.0/references/rest-api/requests/users#put-user" >}}) request and provide `password` + - REST API [`PUT /v1/users`](/content/operate/rs/8.0/references/rest-api/requests/users/_index.md#put-user) request and provide `password` ## See also -[Redis ACL rules]({{< relref "/operate/oss_and_stack/management/security/acl" >}}) +[Redis ACL rules](/content/operate/oss_and_stack/management/security/acl.md) diff --git a/content/operate/rs/8.0/security/access-control/saml-sso.md b/content/operate/rs/8.0/security/access-control/saml-sso.md index d32353d342..637d2f83c4 100644 --- a/content/operate/rs/8.0/security/access-control/saml-sso.md +++ b/content/operate/rs/8.0/security/access-control/saml-sso.md @@ -23,7 +23,7 @@ When single sign-on is activated, users can sign in to the Redis Software Cluste Before users can sign in to the Cluster Manager UI with SSO, the identity provider admin needs to set up these users on the IdP side with matching email addresses. -With just-in-time (JIT) user provisioning, Redis Software automatically creates user accounts for new users assigned to the SAML application in your identity provider when they sign in to the Cluster Manager UI for the first time. For these users, you must configure the `redisRoleMapping` attribute in your identity provider to assign appropriate roles for [role-based access control]({{}}) during account creation. +With just-in-time (JIT) user provisioning, Redis Software automatically creates user accounts for new users assigned to the SAML application in your identity provider when they sign in to the Cluster Manager UI for the first time. For these users, you must configure the `redisRoleMapping` attribute in your identity provider to assign appropriate roles for [role-based access control](/content/operate/rs/8.0/security/access-control/_index.md) during account creation. ### IdP-initiated SSO @@ -73,7 +73,7 @@ To set up SAML single sign-on for a Redis Software cluster: ### Upload SP certificate -1. Create a service provider certificate for Redis Software. See [Create certificates ]({{}}) for instructions. +1. Create a service provider certificate for Redis Software. See [Create certificates ](/content/operate/rs/8.0/security/certificates/create-certificates.md#create-certificates) for instructions. 1. Upload the service provider certificate and key to the Redis Software cluster: @@ -95,7 +95,7 @@ To set up SAML single sign-on for a Redis Software cluster: -tab-sep- -To upload a certificate using the REST API, use an [update cluster certificates]({{}}) request. +To upload a certificate using the REST API, use an [update cluster certificates](/content/operate/rs/8.0/references/rest-api/requests/cluster/certificates/_index.md#put-cluster-certificates) request. ```sh PUT https://:/v1/cluster/certificates @@ -142,7 +142,7 @@ To download the service provider's metadata using the Cluster Manager UI: -tab-sep- -To download the service provider's metadata using the REST API, use a [get SAML service provider metadata]({{}}) request. +To download the service provider's metadata using the REST API, use a [get SAML service provider metadata](/content/operate/rs/8.0/references/rest-api/requests/cluster/sso.md#get-cluster-sso-saml-metadata) request. ```sh GET https://:/v1/cluster/sso/saml/metadata/sp @@ -176,9 +176,8 @@ See [Metadata for the OASIS Security Assertion Markup Language (SAML) V2.0](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf) for more information about the metadata fields. -{{< note >}} -Redis Software metadata expiration time is equivalent to the SSO service certificate's expiration time. The service provider metadata will only change if the service address used for the Assertion Consumer Service (ACS) and the single logout (SLO) URL is modified. -{{< /note >}} +> [!NOTE] +> Redis Software metadata expiration time is equivalent to the SSO service certificate's expiration time. The service provider metadata will only change if the service address used for the Assertion Consumer Service (ACS) and the single logout (SLO) URL is modified. ### Set up SAML app {#set-up-app} @@ -207,9 +206,9 @@ Set up a SAML app to integrate Redis Software with your identity provider: 1. Optionally, you can enable single log-out (SLO) to allow users to automatically sign out of the the identity provider when they sign out of the Redis Software Cluster Manager UI. Copy the **Single Logout Service** from the **Access Control > Single Sign-On** page in the Cluster Manager UI (`https://:8443/cluster/sso/saml/slo`) and configure it in the SAML app. - {{< note >}} -Redis Software only supports SP-initiated logout, where the user logs out from the Redis Software Cluster Manager UI. IdP-initiated logout requests are not supported. - {{< /note >}} + > [!NOTE] + > Redis Software only supports SP-initiated logout, where the user logs out from the Redis Software Cluster Manager UI. IdP-initiated logout requests are not supported. + > 1. Set up your SAML service provider app so the SAML assertion contains the following attributes: @@ -220,9 +219,9 @@ Redis Software only supports SP-initiated logout, where the user logs out from t | email | User's email address (used as the username in the Redis Software Cluster Manager UI and must contain ASCII characters only.) | | redisRoleMapping | String array that includes the role UID for role-based access control in Redis Software. Only used for just-in-time (JIT) user provisioning. If a user already exists in Redis Software, this attribute is ignored and their existing roles are preserved. | - {{}} -To confirm the identity provider's SAML assertions contain the required attributes, you can use a SAML-tracer web developer tool to inspect them. - {{}} + > [!NOTE] + > To confirm the identity provider's SAML assertions contain the required attributes, you can use a SAML-tracer web developer tool to inspect them. + > 1. Set up any additional configuration required by your identity provider to ensure you can configure the `redisRoleMapping` attribute for SAML users. @@ -263,7 +262,7 @@ tab2="REST API" >}} -tab-sep- -1. Upload your SAML app's assertion signing certificate using an [update cluster certificates]({{}}) REST API request. +1. Upload your SAML app's assertion signing certificate using an [update cluster certificates](/content/operate/rs/8.0/references/rest-api/requests/cluster/certificates/_index.md#put-cluster-certificates) REST API request. ```sh PUT https://:/v1/cluster/certificates @@ -278,7 +277,7 @@ tab2="REST API" >}} } ``` -1. Configure the identity provider metadata using an [update SSO configuration]({{}}) REST API request. +1. Configure the identity provider metadata using an [update SSO configuration](/content/operate/rs/8.0/references/rest-api/requests/cluster/sso.md#put-cluster-sso) REST API request. ```sh PUT https://:/v1/cluster/sso @@ -300,9 +299,9 @@ In the identity provider's admin console: 1. Create user profiles in the identity provider for existing Redis Software users. Make sure each user's email address matches in the identity provider and Redis Software. - {{}} -You do not need to configure the `redisRoleMapping` attribute for existing Redis Software users. Their current roles will be preserved, and the `redisRoleMapping` attribute is ignored if provided. - {{}} + > [!NOTE] + > You do not need to configure the `redisRoleMapping` attribute for existing Redis Software users. Their current roles will be preserved, and the `redisRoleMapping` attribute is ignored if provided. + > 2. Assign the new SAML integration app to each user. @@ -324,7 +323,7 @@ To activate single sign-on using the Cluster Manager UI: -tab-sep- -To activate single sign-on using the REST API, use an [update SSO configuration]({{}}) request. +To activate single sign-on using the REST API, use an [update SSO configuration](/content/operate/rs/8.0/references/rest-api/requests/cluster/sso.md#put-cluster-sso) request. ```sh PUT https://:/v1/cluster/sso @@ -343,13 +342,13 @@ After single sign-on is activated for Redis Software, you can create new Redis S 1. Configure the `redisRoleMapping` and assign a Redis Software role UID to the user. - {{}} -To see a list of available role UIDs in your cluster, use a REST API request to [get all roles]({{}}): - -```sh -GET https://:/v1/roles -``` - {{}} + > [!NOTE] + > To see a list of available role UIDs in your cluster, use a REST API request to [get all roles](/content/operate/rs/8.0/references/rest-api/requests/roles/_index.md#get-all-roles): + > + > ```sh + > GET https://:/v1/roles + > ``` + > 1. Assign the new SAML integration app to the user. @@ -378,7 +377,7 @@ To enforce single sign-on using the Cluster Manager UI: -tab-sep- -To enforce single sign-on using the REST API, use an [update SSO configuration]({{}}) request. +To enforce single sign-on using the REST API, use an [update SSO configuration](/content/operate/rs/8.0/references/rest-api/requests/cluster/sso.md#put-cluster-sso) request. ```sh PUT https://:/v1/cluster/sso @@ -401,11 +400,10 @@ If you change certain metadata or configuration settings after you set up SSO, s If your deployment's default service provider address is not accessible to external identity providers, you can change it to an external hostname. -{{}} -If you change the service address, the existing SSO integration will break because the metadata file, SP login and logout URLs, and entity ID will change to match the new address. You must update the service provider configuration on the identity provider's side after this change. -{{}} +> [!WARNING] +> If you change the service address, the existing SSO integration will break because the metadata file, SP login and logout URLs, and entity ID will change to match the new address. You must update the service provider configuration on the identity provider's side after this change. -To change the service provider address, use an [update SSO configuration]({{}}) REST API request: +To change the service provider address, use an [update SSO configuration](/content/operate/rs/8.0/references/rest-api/requests/cluster/sso.md#put-cluster-sso) REST API request: ```sh PUT https://:/v1/cluster/sso @@ -432,7 +430,7 @@ To deactivate single sign-on using the Cluster Manager UI: -tab-sep- -To deactivate single sign-on using the REST API, use an [update SSO configuration]({{}}) request. +To deactivate single sign-on using the REST API, use an [update SSO configuration](/content/operate/rs/8.0/references/rest-api/requests/cluster/sso.md#put-cluster-sso) request. ```sh PUT https://:/v1/cluster/sso diff --git a/content/operate/rs/8.0/security/audit-events.md b/content/operate/rs/8.0/security/audit-events.md index 537327c0f9..06141c46e4 100644 --- a/content/operate/rs/8.0/security/audit-events.md +++ b/content/operate/rs/8.0/security/audit-events.md @@ -71,7 +71,7 @@ To enable auditing for your cluster, use: The socket file (and path) must be accessible by the user and group running Redis Software. -- the [REST API]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/auditing-db-conns#put-cluster-audit-db-conns" >}}) +- the [REST API](/content/operate/rs/8.0/references/rest-api/requests/cluster/auditing-db-conns.md#put-cluster-audit-db-conns) ``` PUT /v1/cluster/auditing/db_conns @@ -107,7 +107,7 @@ Once auditing is enabled for your cluster, you can audit individual databases. rladmin info cluster ``` -- the [REST API]({{< relref "/operate/rs/8.0/references/rest-api/requests/bdbs#put-bdbs" >}}) +- the [REST API](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) ``` PUT /v1/bdbs/1 @@ -135,7 +135,7 @@ To audit connections for new databases by default, use: To deactivate this policy, set `db_conns_auditing` to `disabled`. -- the [REST API]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) +- the [REST API](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) ``` PUT /v1/cluster/policy diff --git a/content/operate/rs/8.0/security/certificates/_index.md b/content/operate/rs/8.0/security/certificates/_index.md index 2081d67875..70ca089f94 100644 --- a/content/operate/rs/8.0/security/certificates/_index.md +++ b/content/operate/rs/8.0/security/certificates/_index.md @@ -22,19 +22,19 @@ Here's the list of supported certificates that create secure, encrypted connecti | Certificate name | Autogenerated | Description | |------------------|:---------------:|-------------| -| `api` | ✅ | Encrypts [REST API]({{< relref "/operate/rs/8.0/references/rest-api/" >}}) requests and responses. | -| `ccs_internode_encryption` | ✅ | Control plane [internode encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption" >}}). Encrypts internal traffic for cluster management. | +| `api` | ✅ | Encrypts [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) requests and responses. | +| `ccs_internode_encryption` | ✅ | Control plane [internode encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md). Encrypts internal traffic for cluster management. | | `cm` | ✅ | Secures connections to the Redis Software Cluster Manager UI. | -| `data_internode_encryption` | ✅ | Data plane [internode encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption" >}}). Encrypts internal data traffic between shards and the data management controller (DMC). | +| `data_internode_encryption` | ✅ | Data plane [internode encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md). Encrypts internal data traffic between shards and the data management controller (DMC). | | `ldap_client` | :x: | Secures connections between LDAP clients and LDAP servers. | -| `metrics_exporter` | ✅ | Sends Redis Software metrics to external [monitoring tools]({{< relref "/operate/rs/8.0/monitoring/" >}}) over a secure connection. | +| `metrics_exporter` | ✅ | Sends Redis Software metrics to external [monitoring tools](/content/operate/rs/8.0/monitoring/_index.md) over a secure connection. | | `mtls_trusted_ca` | :x: | Required to enable certificate-based authentication for secure, passwordless access to the REST API. | | `proxy` | ✅ | Creates secure, encrypted connections between clients and databases. | -| `sso_issuer` | :x: | Identity provider certificate for [single sign-on (SSO)]({{< relref "/operate/rs/8.0/security/access-control/saml-sso" >}}). | -| `sso_service` | :x: | Service provider certificate for [single sign-on (SSO)]({{< relref "/operate/rs/8.0/security/access-control/saml-sso" >}}). | -| `syncer` | ✅ | For [Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/" >}}) or [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}) databases, encrypts data during the synchronization of participating clusters. | +| `sso_issuer` | :x: | Identity provider certificate for [single sign-on (SSO)](/content/operate/rs/8.0/security/access-control/saml-sso.md). | +| `sso_service` | :x: | Service provider certificate for [single sign-on (SSO)](/content/operate/rs/8.0/security/access-control/saml-sso.md). | +| `syncer` | ✅ | For [Active-Active](/content/operate/rs/8.0/databases/active-active/_index.md) or [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) databases, encrypts data during the synchronization of participating clusters. | -Certificates that are not autogenerated are optional unless you want to use certain features. For example, you must provide your own `ldap_client` certificate to enable [LDAP authentication]({{}}), an `mtls_trusted_ca` certificate to enable certificate-based authentication, or `sso_issuer` and `sso_service` certificates for [single sign-on (SSO)]({{}}). +Certificates that are not autogenerated are optional unless you want to use certain features. For example, you must provide your own `ldap_client` certificate to enable [LDAP authentication](/content/operate/rs/8.0/security/access-control/ldap/_index.md), an `mtls_trusted_ca` certificate to enable certificate-based authentication, or `sso_issuer` and `sso_service` certificates for [single sign-on (SSO)](/content/operate/rs/8.0/security/access-control/saml-sso.md). ## Accept self-signed certificates to access the Cluster Manager UI diff --git a/content/operate/rs/8.0/security/certificates/certificate-based-authentication.md b/content/operate/rs/8.0/security/certificates/certificate-based-authentication.md index 48a6838950..8dd20d14c2 100644 --- a/content/operate/rs/8.0/security/certificates/certificate-based-authentication.md +++ b/content/operate/rs/8.0/security/certificates/certificate-based-authentication.md @@ -11,7 +11,7 @@ weight: 70 url: '/operate/rs/8.0/security/certificates/certificate-based-authentication/' --- -You can set up certificate-based authentication for specific users to enable secure, passwordless access to the Redis Software [REST API]({{}}) and databases. +You can set up certificate-based authentication for specific users to enable secure, passwordless access to the Redis Software [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) and databases. ## Certificate-based authentication for the REST API @@ -19,7 +19,7 @@ You can set up certificate-based authentication for specific users to enable sec To set up certificate-based authentication: -1. Add a trusted CA certificate `mtls_trusted_ca` to the cluster using an [update cluster certificates]({{}}) request: +1. Add a trusted CA certificate `mtls_trusted_ca` to the cluster using an [update cluster certificates](/content/operate/rs/8.0/references/rest-api/requests/cluster/certificates/_index.md) request: {{< multitabs id="add-mtls_trusted_ca-cert" tab1="Redis Software v7.22.2 and later" @@ -53,7 +53,7 @@ PUT /v1/cluster/update_cert {{< /multitabs >}} -1. [Update cluster settings]({{}}) with mutual TLS (mTLS) configuration using one of the following options: +1. [Update cluster settings](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) with mutual TLS (mTLS) configuration using one of the following options: {{< multitabs id="enable-mTLS" tab1="Without subject validation" @@ -157,7 +157,7 @@ PUT /v1/cluster {{< /multitabs >}} -1. When you [create new users]({{}}), include `"auth_method": "certificate"` and `certificate_subject_line` in the request body: +1. When you [create new users](/content/operate/rs/8.0/references/rest-api/requests/users/_index.md#post-user), include `"auth_method": "certificate"` and `certificate_subject_line` in the request body: ```sh POST /v1/users @@ -169,25 +169,25 @@ PUT /v1/cluster Replace the placeholder values `<>` with your client certificate's subject values. - {{}} -The `certificate_subject_line` must: - -- Follow [RFC 2253](https://www.rfc-editor.org/rfc/rfc2253) format. - -- List the attributes in reverse order, starting with the Common Name (`CN`). - -- Not contain spaces after the commas that separate attributes. - -- Exactly match the certificate's RFC 2253 subject. - -- Contain only one Organizational Unit (`OU`) value. - {{}} + > [!NOTE] + > The `certificate_subject_line` must: + > + > - Follow [RFC 2253](https://www.rfc-editor.org/rfc/rfc2253) format. + > + > - List the attributes in reverse order, starting with the Common Name (`CN`). + > + > - Not contain spaces after the commas that separate attributes. + > + > - Exactly match the certificate's RFC 2253 subject. + > + > - Contain only one Organizational Unit (`OU`) value. + > ### Authenticate REST API requests To use the REST API with certificate-based authentication, you must provide a client certificate, signed by the trusted CA `mtls_trusted_ca`, and a private key. -The following example uses [cURL](https://curl.se/) to send a [REST API request]({{}}): +The following example uses [cURL](https://curl.se/) to send a [REST API request](/content/operate/rs/8.0/references/rest-api/requests/_index.md): ```sh curl --request --url https://:9443// --cert client.pem --key client.key @@ -199,9 +199,9 @@ curl --request --url https://:9443/}}) for detailed instructions. +1. Enable mutual TLS for the relevant databases. See [Enable TLS](/content/operate/rs/8.0/security/encryption/tls/enable-tls.md) for detailed instructions. -1. When you [create new users]({{}}), include `"auth_method": "certificate"` and `certificate_subject_line` in the request body: +1. When you [create new users](/content/operate/rs/8.0/references/rest-api/requests/users/_index.md#post-user), include `"auth_method": "certificate"` and `certificate_subject_line` in the request body: ```sh POST /v1/users @@ -213,25 +213,25 @@ To set up certificate-based authentication for databases: Replace the placeholder values `<>` with your client certificate's subject values. - {{}} -The `certificate_subject_line` must: - -- Follow [RFC 2253](https://www.rfc-editor.org/rfc/rfc2253) format. - -- List the attributes in reverse order, starting with the Common Name (`CN`). - -- Not contain spaces after the commas that separate attributes. - -- Exactly match the certificate's RFC 2253 subject. - -- Contain only one Organizational Unit (`OU`) value. - {{}} + > [!NOTE] + > The `certificate_subject_line` must: + > + > - Follow [RFC 2253](https://www.rfc-editor.org/rfc/rfc2253) format. + > + > - List the attributes in reverse order, starting with the Common Name (`CN`). + > + > - Not contain spaces after the commas that separate attributes. + > + > - Exactly match the certificate's RFC 2253 subject. + > + > - Contain only one Organizational Unit (`OU`) value. + > ### Authenticate database connections -To connect to a database with certificate-based authentication, you must provide a client certificate, signed by a trusted CA, and a private key. The client certificate must either be one you previously added to the database to [enable mutual TLS]({{}}) (`authentication_ssl_client_certs` in the REST API), or be signed by one of these certificates. +To connect to a database with certificate-based authentication, you must provide a client certificate, signed by a trusted CA, and a private key. The client certificate must either be one you previously added to the database to [enable mutual TLS](/content/operate/rs/8.0/security/encryption/tls/enable-tls.md#enable-mutual-tls) (`authentication_ssl_client_certs` in the REST API), or be signed by one of these certificates. -The following example shows how to connect to a Redis database with [`redis-cli`]({{}}): +The following example shows how to connect to a Redis database with [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md): ```sh redis-cli -h -p --tls --cacert .pem --cert redis_user.crt --key redis_user_private.key diff --git a/content/operate/rs/8.0/security/certificates/create-certificates.md b/content/operate/rs/8.0/security/certificates/create-certificates.md index 78ca45cbef..89d9d26aa2 100644 --- a/content/operate/rs/8.0/security/certificates/create-certificates.md +++ b/content/operate/rs/8.0/security/certificates/create-certificates.md @@ -17,7 +17,7 @@ You can renew these certificates by replacing them with new self-signed certific ## Renew self-signed certificates -As of [v6.2.18-70]({{< relref "/operate/rs/release-notes/rs-6-2-18-releases/rs-6-2-18-70" >}}), Redis Software includes a script to generate self-signed certificates. +As of [v6.2.18-70](/content/operate/rs/release-notes/rs-6-2-18-releases/rs-6-2-18-70.md), Redis Software includes a script to generate self-signed certificates. By default, the `generate_self_signed_certs.sh` script is located in `/opt/redislabs/utils/`. @@ -105,7 +105,7 @@ The following values are supported for the _\_ parameter: | `proxy` | The database endpoint | | `syncer` | The synchronization process | -You can also use the REST API. To learn more, see [Update certificates]({{< relref "/operate/rs/8.0/security/certificates/updating-certificates#how-to-update-certificates" >}}). +You can also use the REST API. To learn more, see [Update certificates](/content/operate/rs/8.0/security/certificates/updating-certificates.md#how-to-update-certificates). ## Create CA-signed certificates @@ -211,7 +211,7 @@ However you choose to create the certificates, be sure to incorporate the guidel 4. Upload the certificate to your cluster. - You can use [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate" >}}) to replace the existing certificates with new certificates: + You can use [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate.md) to replace the existing certificates with new certificates: ``` console $ rladmin cluster certificate set certificate_file \ @@ -220,5 +220,5 @@ However you choose to create the certificates, be sure to incorporate the guidel For a list of values supported by the `` parameter, see the [earlier table](#replace-self-signed). - You can also use the REST API. To learn more, see [Update certificates]({{< relref "/operate/rs/8.0/security/certificates/updating-certificates#how-to-update-certificates" >}}). + You can also use the REST API. To learn more, see [Update certificates](/content/operate/rs/8.0/security/certificates/updating-certificates.md#how-to-update-certificates). diff --git a/content/operate/rs/8.0/security/certificates/monitor-certificates.md b/content/operate/rs/8.0/security/certificates/monitor-certificates.md index b8fb828f85..11eeefb674 100644 --- a/content/operate/rs/8.0/security/certificates/monitor-certificates.md +++ b/content/operate/rs/8.0/security/certificates/monitor-certificates.md @@ -13,11 +13,11 @@ url: '/operate/rs/8.0/security/certificates/monitor-certificates/' Redis Software exposes the expiration time in seconds of each certificate on each node. You can use Prometheus to monitor these certificates. -To learn how to monitor Redis Software metrics using Prometheus, see [Monitoring with metrics and alerts]({{}}) and the [Prometheus integration quick start]({{< relref "/integrate/prometheus-with-redis-enterprise/" >}}). +To learn how to monitor Redis Software metrics using Prometheus, see [Monitoring with metrics and alerts](/content/operate/rs/8.0/monitoring/_index.md) and the [Prometheus integration quick start](/content/integrate/prometheus-with-redis-enterprise/_index.md). ## V1 metrics -The [v1 metrics]({{}}) endpoint (`https://:8070/`) uses `node_cert_expiration_seconds`. +The [v1 metrics](/content/operate/rs/8.0/monitoring/v1_monitoring.md) endpoint (`https://:8070/`) uses `node_cert_expiration_seconds`. ### Certificate expiration in seconds {#v1-cert-expire-seconds} @@ -29,7 +29,7 @@ node_cert_expiration_seconds{cluster="mycluster.local",logical_name="metrics_exp node_cert_expiration_seconds{cluster="mycluster.local",logical_name="syncer",node="1",path="/etc/opt/redislabs/syncer_cert.pem"} 31104000.0 ``` -The following certificates relate to [internode communication TLS encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption" >}}) and are automatically rotated by Redis Software: +The following certificates relate to [internode communication TLS encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md) and are automatically rotated by Redis Software: ```sh node_cert_expiration_seconds{cluster="mycluster.local",logical_name="ccs_internode_encryption",node="1",path="/etc/opt/redislabs/ccs_internode_encryption_cert.pem"} 2592000.0 @@ -40,7 +40,7 @@ node_cert_expiration_seconds{cluster="mycluster.local",logical_name="gossip_ca_s ## V2 metrics -The [v2 metrics]({{}}) endpoint (`https://:8070/v2`) uses `node_cert_expires_in_seconds`. +The [v2 metrics](/content/operate/rs/8.0/monitoring/metrics_stream_engine/_index.md) endpoint (`https://:8070/v2`) uses `node_cert_expires_in_seconds`. ### Certificate expiration in seconds {#v2-cert-expire-seconds} @@ -52,7 +52,7 @@ node_cert_expires_in_seconds{cluster="mycluster.local",logical_name="metrics_exp node_cert_expires_in_seconds{cluster="mycluster.local",logical_name="syncer",node="1",path="/etc/opt/redislabs/syncer_cert.pem"} 31104000.0 ``` -The following certificates relate to [internode communication TLS encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption" >}}) and are automatically rotated by Redis Software: +The following certificates relate to [internode communication TLS encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md) and are automatically rotated by Redis Software: ```sh node_cert_expires_in_seconds{cluster="mycluster.local",logical_name="ccs_internode_encryption",node="1",path="/etc/opt/redislabs/ccs_internode_encryption_cert.pem"} 2592000.0 @@ -69,7 +69,7 @@ max by(filename) ( ) / 86400 ``` -The following certificates relate to [internode communication TLS encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption" >}}) and are automatically rotated by Redis Software: +The following certificates relate to [internode communication TLS encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md) and are automatically rotated by Redis Software: ```sh max by(filename) ( diff --git a/content/operate/rs/8.0/security/certificates/ocsp-stapling.md b/content/operate/rs/8.0/security/certificates/ocsp-stapling.md index bf281d03e6..229d5075f1 100644 --- a/content/operate/rs/8.0/security/certificates/ocsp-stapling.md +++ b/content/operate/rs/8.0/security/certificates/ocsp-stapling.md @@ -59,11 +59,11 @@ To set up OCSP stapling with the Redis Software Cluster Manager UI: ### REST API method -To set up OCSP stapling with the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}): +To set up OCSP stapling with the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md): -1. Use the REST API to [replace the proxy certificate]({{< relref "/operate/rs/8.0/security/certificates/updating-certificates#use-the-rest-api" >}}) with a certificate signed by your third-party CA. +1. Use the REST API to [replace the proxy certificate](/content/operate/rs/8.0/security/certificates/updating-certificates.md#use-the-rest-api) with a certificate signed by your third-party CA. -1. To configure and enable OCSP, send a [`PUT` request to the `/v1/ocsp`]({{< relref "/operate/rs/8.0/references/rest-api/requests/ocsp#put-ocsp" >}}) endpoint and include an [OCSP JSON object]({{< relref "/operate/rs/8.0/references/rest-api/objects/ocsp" >}}) in the request body: +1. To configure and enable OCSP, send a [`PUT` request to the `/v1/ocsp`](/content/operate/rs/8.0/references/rest-api/requests/ocsp/_index.md#put-ocsp) endpoint and include an [OCSP JSON object](/content/operate/rs/8.0/references/rest-api/objects/ocsp.md) in the request body: ```json { @@ -77,11 +77,11 @@ To set up OCSP stapling with the [REST API]({{< relref "/operate/rs/8.0/referenc ### `rladmin` method -To set up OCSP stapling with the [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) command-line utility: +To set up OCSP stapling with the [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) command-line utility: -1. Use [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate" >}}) to [replace the proxy certificate]({{< relref "/operate/rs/8.0/security/certificates/updating-certificates#use-the-cli" >}}) with a certificate signed by your third-party CA. +1. Use [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate.md) to [replace the proxy certificate](/content/operate/rs/8.0/security/certificates/updating-certificates.md#use-the-cli) with a certificate signed by your third-party CA. -1. Update the cluster's OCSP settings with the [`rladmin cluster ocsp config`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/ocsp#ocsp-config" >}}) command if you don't want to use their default values. +1. Update the cluster's OCSP settings with the [`rladmin cluster ocsp config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/ocsp.md#ocsp-config) command if you don't want to use their default values. For example: diff --git a/content/operate/rs/8.0/security/certificates/updating-certificates.md b/content/operate/rs/8.0/security/certificates/updating-certificates.md index b39fba58c7..fb7b2ef349 100644 --- a/content/operate/rs/8.0/security/certificates/updating-certificates.md +++ b/content/operate/rs/8.0/security/certificates/updating-certificates.md @@ -11,17 +11,16 @@ weight: 20 url: '/operate/rs/8.0/security/certificates/updating-certificates/' --- -{{}} -When you update the certificates, the new certificate replaces the same certificates on all nodes in the cluster. -{{}} +> [!WARNING] +> When you update the certificates, the new certificate replaces the same certificates on all nodes in the cluster. ## Prerequisites -You need to create new certificates before you can update them in the cluster. To create replacement certificates, see [Renew self-signed certificates]({{}}) or [Create CA-signed certificates]({{}}) for detailed instructions. +You need to create new certificates before you can update them in the cluster. To create replacement certificates, see [Renew self-signed certificates](/content/operate/rs/8.0/security/certificates/create-certificates.md#renew-self-signed-certificates) or [Create CA-signed certificates](/content/operate/rs/8.0/security/certificates/create-certificates.md#create-ca-signed-certificates) for detailed instructions. ## How to update certificates -You can use the [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) command-line interface (CLI) or the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) to update certificates. The Cluster Manager UI lets you update proxy, syncer, and internode encryption certificates on the **Cluster > Security > Certificates** screen. +You can use the [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) command-line interface (CLI) or the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) to update certificates. The Cluster Manager UI lets you update proxy, syncer, and internode encryption certificates on the **Cluster > Security > Certificates** screen. {{< multitabs id="update-certs" tab1="Cluster Manager UI" @@ -51,7 +50,7 @@ To replace proxy, syncer, or internode encryption certificates using the Cluster -tab-sep- -To replace certificates with the `rladmin` CLI, run the [`cluster certificate set`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate" >}}) command: +To replace certificates with the `rladmin` CLI, run the [`cluster certificate set`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate.md) command: ```sh rladmin cluster certificate set certificate_file .pem key_file .pem @@ -59,7 +58,7 @@ To replace certificates with the `rladmin` CLI, run the [`cluster certificate se Replace the following variables with your own values: -- `` - The name of the certificate you want to replace. See the [certificates table]({{< relref "/operate/rs/8.0/security/certificates" >}}) for the list of valid certificate names. +- `` - The name of the certificate you want to replace. See the [certificates table](/content/operate/rs/8.0/security/certificates/_index.md) for the list of valid certificate names. - `` - The name of your certificate file - `` - The name of your key file @@ -71,7 +70,7 @@ rladmin cluster certificate set cm certificate_file cluster.pem key_file key.pem -tab-sep- -To replace a certificate using the REST API, use an [update cluster certificates]({{}}) request. +To replace a certificate using the REST API, use an [update cluster certificates](/content/operate/rs/8.0/references/rest-api/requests/cluster/certificates/_index.md) request. For Redis Software versions 7.22.2 and later, use: @@ -97,14 +96,13 @@ PUT https://:/v1/cluster/update_cert Replace the following variables with your own values: -- `` - The name of the certificate to replace. See the [certificates table]({{< relref "/operate/rs/8.0/security/certificates" >}}) for the list of valid certificate names. +- `` - The name of the certificate to replace. See the [certificates table](/content/operate/rs/8.0/security/certificates/_index.md) for the list of valid certificate names. - `` - The contents of the \*\_key.pem file - {{< tip >}} - - The key file contains `\n` end of line characters (EOL) that you cannot paste into the API call. - You can use `sed -z 's/\n/\\\n/g'` to escape the EOL characters. - {{< /tip >}} + > [!TIP] + > The key file contains `\n` end of line characters (EOL) that you cannot paste into the API call. + > You can use `sed -z 's/\n/\\\n/g'` to escape the EOL characters. + > - `` - The contents of the \*\_cert.pem file @@ -114,9 +112,8 @@ New proxy and syncer certificates are used the next time clients connect to the When you add a new node to the cluster, the certificates are automatically copied to the new node. -{{}} -Don't manually overwrite the files located in `/etc/opt/redislabs`. Instead, upload new certificates to a temporary location on one of the cluster nodes, such as the `/tmp` directory. -{{}} +> [!NOTE] +> Don't manually overwrite the files located in `/etc/opt/redislabs`. Instead, upload new certificates to a temporary location on one of the cluster nodes, such as the `/tmp` directory. ## Replica Of database certificates @@ -128,11 +125,10 @@ To update the proxy certificate on clusters running Replica Of databases: 1. Use the Cluster Manager UI, `rladmin`, or the REST API to update the proxy certificate on the source database cluster. -1. From the Cluster Manager UI, update the destination database (_replica_) configuration with the [new certificate]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/create#encrypt-replica-database-traffic" >}}). +1. From the Cluster Manager UI, update the destination database (_replica_) configuration with the [new certificate](/content/operate/rs/8.0/databases/import-export/replica-of/create.md#encrypt-replica-database-traffic). -{{}} -- Perform step 2 as quickly as possible after performing step 1. Connections using the previous certificate are rejected after applying the new certificate. Until both steps are performed, recovery of the database sync cannot be established. -{{}} +> [!NOTE] +> - Perform step 2 as quickly as possible after performing step 1. Connections using the previous certificate are rejected after applying the new certificate. Until both steps are performed, recovery of the database sync cannot be established. ## Active-Active database certificates @@ -142,16 +138,15 @@ To update proxy certificate on clusters running Active-Active databases: 1. Use the Cluster Manager UI, `rladmin`, or the REST API to update proxy certificates on a single cluster, multiple clusters, or all participating clusters. -1. Use the [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}) utility to update Active-Active database configuration from the command line. Run the following command once for each Active-Active database residing on the modified clusters: +1. Use the [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) utility to update Active-Active database configuration from the command line. Run the following command once for each Active-Active database residing on the modified clusters: ```sh crdb-cli crdb update --crdb-guid --force ``` -{{}} -- Perform step 2 as quickly as possible after performing step 1. Connections using the previous certificate are rejected after applying the new certificate. Until both steps are performed, recovery of the database sync cannot be established.
-- Do not run any other `crdb-cli crdb update` operations between the two steps. -{{
}} +> [!NOTE] +> - Perform step 2 as quickly as possible after performing step 1. Connections using the previous certificate are rejected after applying the new certificate. Until both steps are performed, recovery of the database sync cannot be established.
+> - Do not run any other `crdb-cli crdb update` operations between the two steps. ### Update syncer certificates {#update-aa-syncer-certs} @@ -159,16 +154,15 @@ To update your syncer certificate on clusters running Active-Active databases, f 1. Update your syncer certificate on one or more of the participating clusters using the Cluster Manager UI, `rladmin`, or the REST API. You can update a single cluster, multiple clusters, or all participating clusters. -1. Update the Active-Active database configuration from the command line with the [`crdb-cli`]({{< relref "/operate/rs/8.0/references/cli-utilities/crdb-cli" >}}) utility. Run this command once for each Active-Active database that resides on the modified clusters: +1. Update the Active-Active database configuration from the command line with the [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) utility. Run this command once for each Active-Active database that resides on the modified clusters: ```sh crdb-cli crdb update --crdb-guid --force ``` -{{}} -- Run step 2 as quickly as possible after step 1. Between the two steps, new syncer connections that use the ‘old’ certificate will get rejected by the cluster that has been updated with the new certificate (in step 1).
-- Do not run any other `crdb-cli crdb update` operations between the two steps.
-{{
}} +> [!NOTE] +> - Run step 2 as quickly as possible after step 1. Between the two steps, new syncer connections that use the ‘old’ certificate will get rejected by the cluster that has been updated with the new certificate (in step 1).
+> - Do not run any other `crdb-cli crdb update` operations between the two steps.
## Troubleshoot RHEL 8 crypto policy and certificate key size diff --git a/content/operate/rs/8.0/security/encryption/_index.md b/content/operate/rs/8.0/security/encryption/_index.md index 943ab8dcb7..c8e9e61bd4 100644 --- a/content/operate/rs/8.0/security/encryption/_index.md +++ b/content/operate/rs/8.0/security/encryption/_index.md @@ -19,7 +19,7 @@ Redis Software uses encryption to secure communications between clusters, nodes, ### TLS -Redis Software uses [Transport Layer Security (TLS)]({{}}) to encrypt communications for the following: +Redis Software uses [Transport Layer Security (TLS)](/content/operate/rs/8.0/security/encryption/tls/_index.md) to encrypt communications for the following: - Cluster Manager UI @@ -29,23 +29,23 @@ Redis Software uses [Transport Layer Security (TLS)]({{}}) for the following: +You can also [enable TLS authentication](/content/operate/rs/8.0/security/encryption/tls/enable-tls.md) for the following: - Communication from clients or applications to your database -- Communication from your database to other clusters for replication using [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}) +- Communication from your database to other clusters for replication using [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) -- Communication to and from your database to other clusters for [Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/_index.md" >}}) synchronization +- Communication to and from your database to other clusters for [Active-Active](/content/operate/rs/8.0/databases/active-active/_index.md) synchronization ### Internode encryption -[Internode encryption]({{}}) uses TLS to encrypt data in transit between cluster nodes. +[Internode encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md) uses TLS to encrypt data in transit between cluster nodes. -By default, internode encryption is enabled for the control plane, which manages the cluster and databases. If you also want to encrypt replication and proxy communications between database shards on different nodes, [enable data internode encryption]({{< relref "/operate/rs/8.0/security/encryption/internode-encryption#enable-data-internode-encryption" >}}). +By default, internode encryption is enabled for the control plane, which manages the cluster and databases. If you also want to encrypt replication and proxy communications between database shards on different nodes, [enable data internode encryption](/content/operate/rs/8.0/security/encryption/internode-encryption.md#enable-data-internode-encryption). ### Require HTTPS for REST API endpoints -By default, the Redis Software API supports communication over HTTP and HTTPS. However, you can [turn off HTTP support]({{< relref "/operate/rs/8.0/references/rest-api/encryption" >}}) to ensure that API requests are encrypted. +By default, the Redis Software API supports communication over HTTP and HTTPS. However, you can [turn off HTTP support](/content/operate/rs/8.0/references/rest-api/encryption.md) to ensure that API requests are encrypted. ## Encrypt data at rest @@ -55,7 +55,7 @@ To encrypt data stored on disk, use file system-based encryption capabilities av ### Private key encryption -Enable PEM encryption to [encrypt all private keys]({{< relref "/operate/rs/8.0/security/encryption/pem-encryption" >}}) on disk. +Enable PEM encryption to [encrypt all private keys](/content/operate/rs/8.0/security/encryption/pem-encryption.md) on disk. ## Encrypt data in use diff --git a/content/operate/rs/8.0/security/encryption/internode-encryption.md b/content/operate/rs/8.0/security/encryption/internode-encryption.md index 840f8df4ef..9b8c4c512e 100644 --- a/content/operate/rs/8.0/security/encryption/internode-encryption.md +++ b/content/operate/rs/8.0/security/encryption/internode-encryption.md @@ -42,7 +42,7 @@ To enable internode encryption for a database (also called _data internode encry - Use the Cluster Manager UI to enable the **Internode Encryption** setting from the database **Security** screen. -- Use the `rladmin` command-line utility to set the [data_internode_encryption]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-db" >}}) setting for the database: +- Use the `rladmin` command-line utility to set the [data_internode_encryption](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-db) setting for the database: ``` shell rladmin tune db data_internode_encryption enabled @@ -75,13 +75,13 @@ To enable internode encryption for new databases by default, use one of the foll 1. Select **Save**. -- [rladmin tune cluster]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/tune#tune-cluster" >}}): +- [rladmin tune cluster](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-cluster): ```sh rladmin tune cluster data_internode_encryption enabled ``` -- [Update cluster policy]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/policy#put-cluster-policy" >}}) REST API request: +- [Update cluster policy](/content/operate/rs/8.0/references/rest-api/requests/cluster/policy.md#put-cluster-policy) REST API request: ```sh PUT /v1/cluster/policy @@ -173,13 +173,13 @@ tab3="REST API" >}} -tab-sep- -To use the same certificate for data and control plane internode encryption, run the following [`rladmin cluster certificate`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate#cluster-certificate-set-internal" >}}) command: +To use the same certificate for data and control plane internode encryption, run the following [`rladmin cluster certificate`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate.md#cluster-certificate-set-internal) command: ```sh rladmin cluster certificate set internal dpine_certificate_file dpine_key_file cpine_certificate_file cpine_key_file ``` -To use separate certificates for data and control plane internode encryption, run the following [`rladmin cluster certificate`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate#cluster-certificate-set-internal" >}}) command: +To use separate certificates for data and control plane internode encryption, run the following [`rladmin cluster certificate`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/certificate.md#cluster-certificate-set-internal) command: ```sh rladmin cluster certificate set internal dpine_certificate_file dpine_key_file cpine_certificate_file cpine_key_file @@ -187,7 +187,7 @@ rladmin cluster certificate set internal dpine_certificate_file }}) request: +To use the same certificate for data and control plane internode encryption, send a [`PUT /v1/cluster/certificates`](/content/operate/rs/8.0/references/rest-api/requests/cluster/certificates/_index.md#put-cluster-certificates) request: ```sh PUT https://:/v1/cluster/certificates @@ -207,7 +207,7 @@ PUT https://:/v1/cluster/certificates } ``` -To use separate certificates for data and control plane internode encryption, send a [`PUT /v1/cluster/certificates`]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster/certificates#put-cluster-certificates" >}}) request: +To use separate certificates for data and control plane internode encryption, send a [`PUT /v1/cluster/certificates`](/content/operate/rs/8.0/references/rest-api/requests/cluster/certificates/_index.md#put-cluster-certificates) request: ```sh PUT https://:/v1/cluster/certificates @@ -234,7 +234,7 @@ PUT https://:/v1/cluster/certificates Customer-provided internode encryption certificates are not rotated automatically. To prevent possible issues with cluster and database unavailability caused by expired internode encryption certificates: -- You should monitor the certificates' expiration dates and [renew them]({{}}) before they expire. +- You should monitor the certificates' expiration dates and [renew them](/content/operate/rs/8.0/security/certificates/updating-certificates.md#how-to-update-certificates) before they expire. - In case you do not renew the customer-managed certificates before they expire, Redis Software automatically replaces them with self-signed certificates 5 days before expiration. You can upload new customer-provided certificates to replace these certificates anytime. diff --git a/content/operate/rs/8.0/security/encryption/pem-encryption.md b/content/operate/rs/8.0/security/encryption/pem-encryption.md index 4bb7418042..489fc20b53 100644 --- a/content/operate/rs/8.0/security/encryption/pem-encryption.md +++ b/content/operate/rs/8.0/security/encryption/pem-encryption.md @@ -18,16 +18,16 @@ When certificates are rotated, the encrypted private keys are also rotated. ## Enable PEM encryption -To enable PEM encryption and encrypt private keys on the disk, use [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) or the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}). +To enable PEM encryption and encrypt private keys on the disk, use [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) or the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). -- [`rladmin cluster config`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config" >}}): +- [`rladmin cluster config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md): ```sh rladmin cluster config encrypt_pkeys enabled ``` -- [Update cluster settings]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster#put-cluster" >}}) REST API request: +- [Update cluster settings](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request: ```sh PUT /v1/cluster @@ -36,15 +36,15 @@ To enable PEM encryption and encrypt private keys on the disk, use [`rladmin`]({ ## Deactivate PEM encryption -To deactivate PEM encryption and decrypt private keys on the disk, use [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) or the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}). +To deactivate PEM encryption and decrypt private keys on the disk, use [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) or the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). -- [`rladmin cluster config`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config" >}}): +- [`rladmin cluster config`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md): ```sh rladmin cluster config encrypt_pkeys disabled ``` -- [Update cluster settings]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster#put-cluster" >}}) REST API request: +- [Update cluster settings](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster) REST API request: ```sh PUT /v1/cluster diff --git a/content/operate/rs/8.0/security/encryption/tls/_index.md b/content/operate/rs/8.0/security/encryption/tls/_index.md index 22e6bf01cf..9a9fd04ef0 100644 --- a/content/operate/rs/8.0/security/encryption/tls/_index.md +++ b/content/operate/rs/8.0/security/encryption/tls/_index.md @@ -13,17 +13,17 @@ url: '/operate/rs/8.0/security/encryption/tls/' --- [Transport Layer Security (TLS)](https://en.wikipedia.org/wiki/Transport_Layer_Security), a successor to SSL, ensures the privacy of data sent between applications and Redis databases. TLS also secures connections between Redis Software nodes. -You can [use TLS authentication]({{< relref "/operate/rs/8.0/security/encryption/tls/enable-tls" >}}) for the following types of communication: +You can [use TLS authentication](/content/operate/rs/8.0/security/encryption/tls/enable-tls.md) for the following types of communication: - Communication from clients (applications) to your database -- Communication from your database to other clusters for replication using [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of" >}}) -- Communication to and from your database to other clusters for synchronization using [Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/" >}}) +- Communication from your database to other clusters for replication using [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) +- Communication to and from your database to other clusters for synchronization using [Active-Active](/content/operate/rs/8.0/databases/active-active/_index.md) ## Protocols and ciphers TLS protocols and ciphers define the overall suite of algorithms that clients are able to connect to the servers with. -You can change the [TLS protocols]({{< relref "/operate/rs/8.0/security/encryption/tls/tls-protocols" >}}) and [ciphers]({{< relref "/operate/rs/8.0/security/encryption/tls/ciphers" >}}) to improve the security of your Redis Software cluster and databases. The default settings are in line with industry best practices, but you can customize them to match the security policy of your organization. +You can change the [TLS protocols](/content/operate/rs/8.0/security/encryption/tls/tls-protocols.md) and [ciphers](/content/operate/rs/8.0/security/encryption/tls/ciphers.md) to improve the security of your Redis Software cluster and databases. The default settings are in line with industry best practices, but you can customize them to match the security policy of your organization. ## Troubleshooting diff --git a/content/operate/rs/8.0/security/encryption/tls/ciphers.md b/content/operate/rs/8.0/security/encryption/tls/ciphers.md index 61987a674a..11f1e4ca7d 100644 --- a/content/operate/rs/8.0/security/encryption/tls/ciphers.md +++ b/content/operate/rs/8.0/security/encryption/tls/ciphers.md @@ -19,7 +19,7 @@ Ciphers are algorithms that help secure connections between clients and servers. |------------|--------------|-------------| | control_cipher_suites | ✅ Yes | Cipher list for TLS 1.2 communications for cluster administration (control plane) | | data_cipher_list | ✅ Yes | Cipher list for TLS 1.2 communications between applications and databases (data plane) | -| sentinel_cipher_suites | ✅ Yes | Cipher list for [discovery service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service" >}}) (Sentinel) TLS 1.2 communications | +| sentinel_cipher_suites | ✅ Yes | Cipher list for [discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md) (Sentinel) TLS 1.2 communications | ## TLS 1.3 cipher suites @@ -27,26 +27,24 @@ Ciphers are algorithms that help secure connections between clients and servers. |------------|--------------|-------------| | control_cipher_suites_tls_1_3 | ❌ No | Cipher list for TLS 1.3 communications for cluster administration (control plane) | | data_cipher_suites_tls_1_3 | ✅ Yes | Cipher list for TLS 1.3 communications between applications and databases (data plane) | -| sentinel_cipher_suites_tls_1_3 | ❌ No | Cipher list for [discovery service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service" >}}) (Sentinel) TLS 1.3 communications | +| sentinel_cipher_suites_tls_1_3 | ❌ No | Cipher list for [discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md) (Sentinel) TLS 1.3 communications | ## Configure cipher suites -You can configure ciphers with the [Cluster Manager UI](#edit-ciphers-ui), [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config" >}}), or the [REST API]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster#put-cluster" >}}). +You can configure ciphers with the [Cluster Manager UI](#edit-ciphers-ui), [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md), or the [REST API](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster). -{{}} -Configuring cipher suites overwrites existing ciphers rather than appending new ciphers to the list. -{{}} +> [!WARNING] +> Configuring cipher suites overwrites existing ciphers rather than appending new ciphers to the list. When you modify your cipher suites, make sure: - The configured TLS version matches the required cipher suites. - The certificates in use are properly signed to support the required cipher suites. -{{}} -- Redis Software doesn't support static [Diffie–Hellman (`DH`) key exchange](https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange) ciphers. - -- Support for Ephemeral Diffie–Hellman (ECDHE) key exchange ciphers depends on the operating system version and security policy. -{{}} +> [!NOTE] +> - Redis Software doesn't support static [Diffie–Hellman (`DH`) key exchange](https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange) ciphers. +> +> - Support for Ephemeral Diffie–Hellman (ECDHE) key exchange ciphers depends on the operating system version and security policy. ### Edit cipher suites in the UI {#edit-ciphers-ui} @@ -70,7 +68,7 @@ As of Redis Software version 6.0.12, control plane cipher suites can use the Bor #### Configure TLS 1.2 control plane cipher suites -To configure TLS 1.2 cipher suites for cluster communication, use the following [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) command syntax: +To configure TLS 1.2 cipher suites for cluster communication, use the following [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) command syntax: ```sh rladmin cluster config control_cipher_suites @@ -81,9 +79,8 @@ See the example below to configure cipher suites for the control plane: ```sh rladmin cluster config control_cipher_suites ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 ``` -{{}} -- The deprecated 3DES and RC4 cipher suites are no longer supported. -{{}} +> [!NOTE] +> - The deprecated 3DES and RC4 cipher suites are no longer supported. ### Data plane cipher suites {#data-plane-ciphers-tls-1-2} @@ -92,7 +89,7 @@ Data plane cipher suites use the OpenSSL library format in Redis Software versio #### Configure TLS 1.2 data plane cipher suites -To configure TLS 1.2 cipher suites for communications between applications and databases, use the following [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) command syntax: +To configure TLS 1.2 cipher suites for communications between applications and databases, use the following [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) command syntax: ```sh rladmin cluster config data_cipher_list @@ -103,13 +100,12 @@ See the example below to configure cipher suites for the data plane: ```sh rladmin cluster config data_cipher_list AES128-SHA:AES256-SHA ``` -{{}} -- The deprecated 3DES and RC4 cipher suites are no longer supported. -{{}} +> [!NOTE] +> - The deprecated 3DES and RC4 cipher suites are no longer supported. #### Configure TLS 1.3 data plane cipher suites -To configure TLS 1.3 cipher suites for communications between applications and databases, use the following [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) command syntax: +To configure TLS 1.3 cipher suites for communications between applications and databases, use the following [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) command syntax: ```sh rladmin cluster config data_cipher_suites_tls_1_3 @@ -123,11 +119,11 @@ rladmin cluster config data_cipher_suites_tls_1_3 TLS_AES_256_GCM_SHA384:TLS_CHA ### Discovery service cipher suites {#discovery-service-ciphers-tls-1-2} -Sentinel service cipher suites use the golang.org OpenSSL format for [discovery service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service" >}}) TLS connections in Redis Software version 6.0.20 or later. See their documentation for a list of [available configurations](https://golang.org/src/crypto/tls/cipher_suites.go). +Sentinel service cipher suites use the golang.org OpenSSL format for [discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md) TLS connections in Redis Software version 6.0.20 or later. See their documentation for a list of [available configurations](https://golang.org/src/crypto/tls/cipher_suites.go). #### Configure TLS 1.2 discovery service cipher suites -To configure TLS 1.2 cipher suites for the discovery service cipher suites, use the following [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin" >}}) command syntax: +To configure TLS 1.2 cipher suites for the discovery service cipher suites, use the following [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/_index.md) command syntax: ```sh rladmin cluster config sentinel_cipher_suites diff --git a/content/operate/rs/8.0/security/encryption/tls/enable-tls.md b/content/operate/rs/8.0/security/encryption/tls/enable-tls.md index 9ace74fdb7..fbbef6c73c 100644 --- a/content/operate/rs/8.0/security/encryption/tls/enable-tls.md +++ b/content/operate/rs/8.0/security/encryption/tls/enable-tls.md @@ -14,12 +14,11 @@ url: '/operate/rs/8.0/security/encryption/tls/enable-tls/' You can use TLS authentication for one or more of the following types of communication: - Communication from clients (applications) to your database -- Communication from your database to other clusters for replication using [Replica Of]({{< relref "/operate/rs/8.0/databases/import-export/replica-of/" >}}) -- Communication to and from your database to other clusters for synchronization using [Active-Active]({{< relref "/operate/rs/8.0/databases/active-active/_index.md" >}}) +- Communication from your database to other clusters for replication using [Replica Of](/content/operate/rs/8.0/databases/import-export/replica-of/_index.md) +- Communication to and from your database to other clusters for synchronization using [Active-Active](/content/operate/rs/8.0/databases/active-active/_index.md) -{{}} -When you enable or turn off TLS, the change applies to new connections but does not affect existing connections. You must update TLS parameters in the client's connection configuration, then clients must close existing connections and reconnect to apply the change. -{{}} +> [!NOTE] +> When you enable or turn off TLS, the change applies to new connections but does not affect existing connections. You must update TLS parameters in the client's connection configuration, then clients must close existing connections and reconnect to apply the change. ## Enable TLS for client connections {#client} @@ -41,7 +40,7 @@ To enable TLS for client connections using the Cluster Manager UI: You can also enable TLS for client connections using the REST API. -To enable TLS for client connections during database creation, include `"tls_mode": "enabled"` when you [create a database]({{}}): +To enable TLS for client connections during database creation, include `"tls_mode": "enabled"` when you [create a database](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#post-bdbs-v1): ```sh POST https://:/v1/bdbs @@ -51,9 +50,9 @@ POST https://:/v1/bdbs } ``` -For additional database configuration fields, see the [BDB object]({{}}) reference. +For additional database configuration fields, see the [BDB object](/content/operate/rs/8.0/references/rest-api/objects/bdb/_index.md) reference. -To enable TLS for client connections after database creation, you can use an [update database configuration]({{}}) REST API request: +To enable TLS for client connections after database creation, you can use an [update database configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) REST API request: ```sh PUT https://:/v1/bdbs/ @@ -115,7 +114,7 @@ To enable mutual TLS using the Cluster Manager UI: An example that shows adding a certificate validation with multiple organizational units. - **Breaking change:** If you use the [REST API]({{< relref "/operate/rs/8.0/references/rest-api" >}}) instead of the Cluster Manager UI to configure additional certificate validations, note that `authorized_names` is deprecated as of Redis Software v6.4.2. Use `authorized_subjects` instead. See the [BDB object reference]({{< relref "/operate/rs/8.0/references/rest-api/objects/bdb" >}}) for more details. + **Breaking change:** If you use the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md) instead of the Cluster Manager UI to configure additional certificate validations, note that `authorized_names` is deprecated as of Redis Software v6.4.2. Use `authorized_subjects` instead. See the [BDB object reference](/content/operate/rs/8.0/references/rest-api/objects/bdb/_index.md) for more details. 1. Select **Save**. @@ -123,7 +122,7 @@ To enable mutual TLS using the Cluster Manager UI: You can also enable mutual TLS using the REST API. -To enable mutual TLS during database creation, include the following fields when you [create a database]({{}}): +To enable mutual TLS during database creation, include the following fields when you [create a database](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#post-bdbs-v1): ```sh POST https://:/v1/bdbs @@ -146,9 +145,9 @@ POST https://:/v1/bdbs } ``` -For additional database configuration fields, see the [BDB object]({{}}) reference. +For additional database configuration fields, see the [BDB object](/content/operate/rs/8.0/references/rest-api/objects/bdb/_index.md) reference. -To enable mutual TLS after database creation, you can use an [update database configuration]({{}}) REST API request: +To enable mutual TLS after database creation, you can use an [update database configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) REST API request: ```sh PUT https://:/v1/bdbs/ @@ -174,7 +173,7 @@ PUT https://:/v1/bdbs/ ### Validate client certificate expiration -By default, Redis Software validates client certificate expiration dates. You can use [`rladmin tune db`]({{}}) to turn off this behavior. +By default, Redis Software validates client certificate expiration dates. You can use [`rladmin tune db`](/content/operate/rs/8.0/references/cli-utilities/rladmin/tune.md#tune-db) to turn off this behavior. ```sh rladmin tune db < db:id | name > mtls_allow_outdated_certs { enabled | disabled } @@ -182,7 +181,7 @@ rladmin tune db < db:id | name > mtls_allow_outdated_certs { enabled | disabled ### Connect over TLS -To connect to a Redis Software database over TLS using [`redis-cli`]({{}}): +To connect to a Redis Software database over TLS using [`redis-cli`](/content/operate/rs/8.0/references/cli-utilities/redis-cli/_index.md): 1. Download or copy the server (or proxy) certificate from the Cluster Manager UI (**Cluster > Security > Certificates > Server authentication**) or from a cluster node (`/etc/opt/redislabs/proxy_cert.pem`). @@ -203,15 +202,15 @@ To connect to a Redis Software database over TLS using [`redis-cli`]({{}}), or the [REST API]({{}}). +You can enable TLS for Active-Active cluster connections when you create a database using the Cluster Manager UI, [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md), or the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). -If you need to enable or turn off TLS after the Active-Active database is created, you must use [`crdb-cli`]({{}}) or the [REST API]({{}}). +If you need to enable or turn off TLS after the Active-Active database is created, you must use [`crdb-cli`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/_index.md) or the [REST API](/content/operate/rs/8.0/references/rest-api/_index.md). ### Enable TLS during database creation To enable TLS for Active-Active cluster connections using the Cluster Manager UI: -1. During [database creation]({{}}), expand the **TLS** configuration section. +1. During [database creation](/content/operate/rs/8.0/databases/active-active/create.md), expand the **TLS** configuration section. 1. Select **On** to enable TLS. @@ -219,7 +218,7 @@ To enable TLS for Active-Active cluster connections using the Cluster Manager UI 1. Click **Create**. -If you also want to require TLS for client connections during creation, you can use the [create an Active-Active database]({{< relref "/operate/rs/8.0/references/rest-api/requests/crdbs/#post-crdb" >}}) REST API request to create an Active-Active database with TLS enabled for client connections. +If you also want to require TLS for client connections during creation, you can use the [create an Active-Active database](/content/operate/rs/8.0/references/rest-api/requests/crdbs/_index.md#post-crdb) REST API request to create an Active-Active database with TLS enabled for client connections. You should configure the client certificates individually for each instance instead of using the default database configuration, even if the same certificate is used across all instances. This allows you to rotate the certificates independently for each instance and to avoid outages in case of certificate expiration. @@ -285,7 +284,7 @@ You can enable TLS for an existing Active-Active database using either `crdb-cli tab1="CLI" tab2="REST API" >}} -Run the following [`crdb-cli crdb update`]({{}}) command: +Run the following [`crdb-cli crdb update`](/content/operate/rs/8.0/references/cli-utilities/crdb-cli/crdb/update.md) command: ```sh crdb-cli crdb update --crdb-guid --encryption true @@ -295,7 +294,7 @@ Replace `` with your Active-Active database's globally unique identifier. -tab-sep- -You can use an [update database configuration]({{}}) request to enable TLS. +You can use an [update database configuration](/content/operate/rs/8.0/references/rest-api/requests/bdbs/_index.md#put-bdbs) request to enable TLS. To enable TLS for Active-Active database communications only: diff --git a/content/operate/rs/8.0/security/encryption/tls/tls-protocols.md b/content/operate/rs/8.0/security/encryption/tls/tls-protocols.md index 315696ffc1..2dcfdcfdfd 100644 --- a/content/operate/rs/8.0/security/encryption/tls/tls-protocols.md +++ b/content/operate/rs/8.0/security/encryption/tls/tls-protocols.md @@ -19,23 +19,21 @@ The communications for which you can modify TLS protocols are: - Control plane - The TLS configuration for cluster administration. - Data plane - The TLS configuration for the communication between applications and databases. -- Discovery service (Sentinel) - The TLS configuration for the [discovery service]({{< relref "/operate/rs/8.0/databases/durability-ha/discovery-service.md" >}}). +- Discovery service (Sentinel) - The TLS configuration for the [discovery service](/content/operate/rs/8.0/databases/durability-ha/discovery-service.md). -You can configure TLS protocols with the [Cluster Manager UI](#edit-tls-ui), [`rladmin`]({{< relref "/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config" >}}), or the [REST API]({{< relref "/operate/rs/8.0/references/rest-api/requests/cluster#put-cluster" >}}). +You can configure TLS protocols with the [Cluster Manager UI](#edit-tls-ui), [`rladmin`](/content/operate/rs/8.0/references/cli-utilities/rladmin/cluster/config.md), or the [REST API](/content/operate/rs/8.0/references/rest-api/requests/cluster/_index.md#put-cluster). -{{}} -- After you set the minimum TLS version, Redis Software does not accept communications with TLS versions older than the specified version. - -- If you set TLS 1.3 as the minimum TLS version, clients must support TLS 1.3 to connect to Redis Software. -{{}} +> [!WARNING] +> - After you set the minimum TLS version, Redis Software does not accept communications with TLS versions older than the specified version. +> +> - If you set TLS 1.3 as the minimum TLS version, clients must support TLS 1.3 to connect to Redis Software. TLS support depends on the operating system. You cannot enable support for protocols or versions that aren't supported by the operating system running Redis Software. In addition, updates to the operating system or to Redis Software can impact protocol and version support. If you have trouble enabling specific versions of TLS, verify that they're supported by your operating system and that they're configured correctly. -{{}} -TLSv1.2 is generally recommended as the minimum TLS version for encrypted communications. Check with your security team to confirm which TLS protocols meet your organization's policies. -{{}} +> [!NOTE] +> TLSv1.2 is generally recommended as the minimum TLS version for encrypted communications. Check with your security team to confirm which TLS protocols meet your organization's policies. ### Edit TLS settings in the UI {#edit-tls-ui} diff --git a/content/operate/rs/8.0/security/recommended-security-practices.md b/content/operate/rs/8.0/security/recommended-security-practices.md index f3a5bb168f..16b81d14d7 100644 --- a/content/operate/rs/8.0/security/recommended-security-practices.md +++ b/content/operate/rs/8.0/security/recommended-security-practices.md @@ -22,9 +22,9 @@ When deploying Redis Software to production, we recommend the following practice If you are replacing your existing antivirus solution or installing/supporting Redis Software, make sure that the below paths are excluded: - {{< note >}} -For antivirus solutions that intercept processes, binary files may have to be excluded directly depending on the requirements of your anti-virus vendor. - {{< /note >}} + > [!NOTE] + > For antivirus solutions that intercept processes, binary files may have to be excluded directly depending on the requirements of your anti-virus vendor. + > | **Path** | **Description** | |------------|-----------------| @@ -34,7 +34,7 @@ For antivirus solutions that intercept processes, binary files may have to be ex | /opt/redislabs/lib | System library files | | /opt/redislabs/sbin | System binaries for tweaking provisioning | -- **Send logs to a remote logging server**: Redis Software is configured to send logs by default to syslog. To send these logs to a remote logging server, you must [configure syslog]({{}}) based on the requirements of the remote logging server vendor. Remote logging helps ensure that the logs are not deleted so that you can rotate the logs to prevent your server disk from filling up. +- **Send logs to a remote logging server**: Redis Software is configured to send logs by default to syslog. To send these logs to a remote logging server, you must [configure syslog](/content/operate/rs/8.0/clusters/logging/log-security.md) based on the requirements of the remote logging server vendor. Remote logging helps ensure that the logs are not deleted so that you can rotate the logs to prevent your server disk from filling up. - **Deploy clusters with an odd number of 3 or more nodes**: Redis is an available and partition-tolerant database. We recommend that Redis Software be deployed in a cluster of an odd number of 3 or more nodes so that you are able to successfully failover in the event of a failure. @@ -44,11 +44,11 @@ For antivirus solutions that intercept processes, binary files may have to be ex ## Cluster security -- **Control the level of access to your system**: Redis Software lets you decide which users can access the cluster, which users can access databases, and which users can access both. We recommend preventing database users from accessing the cluster. See [Access control]({{}}) for more information. +- **Control the level of access to your system**: Redis Software lets you decide which users can access the cluster, which users can access databases, and which users can access both. We recommend preventing database users from accessing the cluster. See [Access control](/content/operate/rs/8.0/security/access-control/_index.md) for more information. - **Enable LDAP authentication**: If your organization uses the Lightweight Directory Access Protocol (LDAP), we recommend enabling Redis Software support for role-based LDAP authentication. -- **Require HTTPS for API endpoints**: Redis Software comes with a REST API to help automate tasks. This API is available in both an encrypted and unencrypted endpoint for backward compatibility. You can [disable the unencrypted endpoint]({{}}) with no loss in functionality. +- **Require HTTPS for API endpoints**: Redis Software comes with a REST API to help automate tasks. This API is available in both an encrypted and unencrypted endpoint for backward compatibility. You can [disable the unencrypted endpoint](/content/operate/rs/8.0/references/rest-api/encryption.md#require-https-for-api-endpoints) with no loss in functionality. ## Database security @@ -56,12 +56,12 @@ Redis Software offers several database security controls to help protect your da - **Use strong Redis passwords**: A frequent recommendation in the security industry is to use strong passwords to authenticate users. This helps to prevent brute force password guessing attacks against your database. Its important to check that your password aligns with your organizations security policy. -- **Deactivate default user access**: Redis Software comes with a "default" user for backwards compatibility with applications designed with versions of Redis prior to Redis Software 6. The default user is turned on by default. This allows you to access the database without specifying a username and only using a shared secret. For applications designed to use access control lists, we recommend that you [deactivate default user access]({{}}). +- **Deactivate default user access**: Redis Software comes with a "default" user for backwards compatibility with applications designed with versions of Redis prior to Redis Software 6. The default user is turned on by default. This allows you to access the database without specifying a username and only using a shared secret. For applications designed to use access control lists, we recommend that you [deactivate default user access](/content/operate/rs/8.0/security/access-control/manage-users/default-user.md#deactivate-default-user). -- **Configure Transport Layer Security (TLS)**: Similar to the control plane, you can also [configure TLS protocols]({{}}) to help support your security and compliance needs. +- **Configure Transport Layer Security (TLS)**: Similar to the control plane, you can also [configure TLS protocols](/content/operate/rs/8.0/security/encryption/tls/tls-protocols.md) to help support your security and compliance needs. -- **Enable client certificate authentication**: To prevent unauthorized access to your data, Redis Software databases support the [TLS protocol]({{}}), which includes authentication and encryption. Client certificate authentication can be used to ensure only authorized hosts can access the database. +- **Enable client certificate authentication**: To prevent unauthorized access to your data, Redis Software databases support the [TLS protocol](/content/operate/rs/8.0/security/encryption/tls/_index.md#client-certificate-authentication), which includes authentication and encryption. Client certificate authentication can be used to ensure only authorized hosts can access the database. -- **Install trusted certificates**: Redis implements self-signed certificates for the database proxy and replication service, but many organizations prefer to [use their own certificates]({{}}). +- **Install trusted certificates**: Redis implements self-signed certificates for the database proxy and replication service, but many organizations prefer to [use their own certificates](/content/operate/rs/8.0/security/certificates/create-certificates.md). -- **Configure and verify database backups**: Implementing a disaster recovery strategy is an important part of data security. Redis Software supports [database backups to many destinations]({{}}). +- **Configure and verify database backups**: Implementing a disaster recovery strategy is an important part of data security. Redis Software supports [database backups to many destinations](/content/operate/rs/8.0/databases/import-export/schedule-backups.md). diff --git a/content/operate/rs/8.0/troubleshooting.md b/content/operate/rs/8.0/troubleshooting.md index 20f956f60f..3028364422 100644 --- a/content/operate/rs/8.0/troubleshooting.md +++ b/content/operate/rs/8.0/troubleshooting.md @@ -15,27 +15,27 @@ url: '/operate/rs/8.0/troubleshooting/' For general troubleshooting, see: -- [Create a support package]({{}}) to gather information about the cluster, nodes, and databases to help debug issues +- [Create a support package](/content/operate/rs/8.0/installing-upgrading/creating-support-package.md) to gather information about the cluster, nodes, and databases to help debug issues -- [Logging]({{}}) +- [Logging](/content/operate/rs/8.0/clusters/logging/_index.md) -- [`rladmin status`]({{}}) command, which displays the current status of nodes, databases, database endpoints, and shards on the cluster +- [`rladmin status`](/content/operate/rs/8.0/references/cli-utilities/rladmin/status.md) command, which displays the current status of nodes, databases, database endpoints, and shards on the cluster -- [`rlcheck`]({{}}) utility, which runs various tests to check node health and reports any discovered issues +- [`rlcheck`](/content/operate/rs/8.0/references/cli-utilities/rlcheck/_index.md) utility, which runs various tests to check node health and reports any discovered issues -- [Troubleshooting pocket guide]({{}}) +- [Troubleshooting pocket guide](/content/operate/rs/8.0/databases/connect/troubleshooting-guide.md) ## Troubleshooting by topic For troubleshooting specific issues, see: -- [Database connectivity troubleshooting]({{}}) +- [Database connectivity troubleshooting](/content/operate/rs/8.0/databases/connect/troubleshooting-guide.md#troubleshoot-connectivity) -- [Latency troubleshooting]({{}}) +- [Latency troubleshooting](/content/operate/rs/8.0/databases/connect/troubleshooting-guide.md#troubleshoot-latency) -- [Replica Of repeatedly fails]({{}}) +- [Replica Of repeatedly fails](/content/operate/rs/8.0/databases/import-export/replica-of/replicaof-repeatedly-fails.md) -- CRDT [INFO]({{}}) for troubleshooting Active-Active databases +- CRDT [INFO](/content/operate/rs/8.0/databases/active-active/develop/develop-for-aa.md#info) for troubleshooting Active-Active databases ## Knowledge base