From 5a5f91abdc82b06a4ef2649cf7337658f9b476f3 Mon Sep 17 00:00:00 2001 From: adisht <36517802+adisht@users.noreply.github.com> Date: Mon, 19 Jul 2021 00:24:50 +0300 Subject: [PATCH 01/23] Support for SWIFT was removed a while ago (#1455) * Support for SWIFT was removed a while ago Support for SWIFT was removed a while ago * Support for SWIFT was removed a while ago Support for SWIFT was removed a while ago * Support for SWIFT was removed a while ago Support for SWIFT was removed a while ago --- content/embeds/backup-locations.md | 14 -------------- .../administering/import-export/database-backup.md | 1 - .../administering/import-export/exporting-data.md | 1 - 3 files changed, 16 deletions(-) diff --git a/content/embeds/backup-locations.md b/content/embeds/backup-locations.md index a719aaadb1e..f56137c798e 100644 --- a/content/embeds/backup-locations.md +++ b/content/embeds/backup-locations.md @@ -71,20 +71,6 @@ To backup to a local mount point for a node: For example: `/mnt/Public` -### OpenStack Swift - -{{< note >}} -Support for OpenStack Object Storage ("Swift") for backup, import and export location ends on November 30, 2020. -{{< /note >}} - -Before you choose to backup to OpenStack Swift, make sure that you have: - -- Storage URL in the format: `https:///v1` -- Container -- Prefix (Optional) -- User -- Key - ### Azure Blob Storage Before you choose to backup to Azure Blob Storage, make sure that you have: diff --git a/content/rs/administering/import-export/database-backup.md b/content/rs/administering/import-export/database-backup.md index 8d8b2431790..78a9649f427 100644 --- a/content/rs/administering/import-export/database-backup.md +++ b/content/rs/administering/import-export/database-backup.md @@ -17,7 +17,6 @@ You can schedule backups to these locations: - SFTP server - Amazon S3 - Local mount point -- OpenStack Swift (Object Storage) - Azure Blob Storage - Google Cloud Storage diff --git a/content/rs/administering/import-export/exporting-data.md b/content/rs/administering/import-export/exporting-data.md index 767c958ded9..d2ba80e1020 100644 --- a/content/rs/administering/import-export/exporting-data.md +++ b/content/rs/administering/import-export/exporting-data.md @@ -17,7 +17,6 @@ You can export a database to these locations: - SFTP server - Amazon AWS S3 - Local mount point -- OpenStack Swift (Object Storage) - Azure Blob Storage - Google Cloud Storage From 9bf63137ac5cc6fab4555b388261a0d153d8bcdd Mon Sep 17 00:00:00 2001 From: adisht <36517802+adisht@users.noreply.github.com> Date: Mon, 19 Jul 2021 00:26:18 +0300 Subject: [PATCH 02/23] Consolidate 2 consecutive notes (#1456) Consolidate 2 consecutive notes --- .../rs/installing-upgrading/customize-install-directories.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/rs/installing-upgrading/customize-install-directories.md b/content/rs/installing-upgrading/customize-install-directories.md index 897456eb199..adbabc247e5 100644 --- a/content/rs/installing-upgrading/customize-install-directories.md +++ b/content/rs/installing-upgrading/customize-install-directories.md @@ -17,9 +17,6 @@ The files are installed in the `redislabs` directory located in the path that yo - When you install with custom directories, the installation does not run as an RPM file. - If a `redislabs` directory already exists in the path that you specify, the installation fails. - All nodes in a cluster must be installed with the same file locations. -{{< /note >}} - -{{< note >}} - Custom installation directories are not supported for databases using Redis on Flash. {{< /note >}} From 1fca28efa7de55d60cc6d4f34426efc061d22125 Mon Sep 17 00:00:00 2001 From: adisht <36517802+adisht@users.noreply.github.com> Date: Tue, 20 Jul 2021 15:49:30 +0300 Subject: [PATCH 03/23] Correct a typo (#1458) Correct a typo --- content/modules/add-module-to-cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/modules/add-module-to-cluster.md b/content/modules/add-module-to-cluster.md index decc4729102..86b659dfbc7 100644 --- a/content/modules/add-module-to-cluster.md +++ b/content/modules/add-module-to-cluster.md @@ -95,7 +95,7 @@ To add a module package to the cluster using the admin console: ## Upgrading the module for the database -After you add and updated module to the cluster, go to the configuration of the databases that use the module. +After you add an updated module to the cluster, go to the configuration of the databases that use the module. The database configuration shows that a new version of the module is available for the database. ![update_available-1](/images/rs/update_available.png?width=1346&height=1600) From 0b6d5133d025119f0e05086bd7a485f9135e4c9e Mon Sep 17 00:00:00 2001 From: Yoni <57891224+yorozen@users.noreply.github.com> Date: Wed, 21 Jul 2021 15:49:09 +0300 Subject: [PATCH 04/23] Update client_ioredis.md (#1461) The readFileSync syntax is wrong should be without the encoding= --- content/rs/references/client_references/client_ioredis.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/rs/references/client_references/client_ioredis.md b/content/rs/references/client_references/client_ioredis.md index 80cab728939..92256ae2f52 100644 --- a/content/rs/references/client_references/client_ioredis.md +++ b/content/rs/references/client_references/client_ioredis.md @@ -52,9 +52,9 @@ const redis = new Redis({ host: 'hostname', port: , tls: { - key: fs.readFileSync('path_to_keyfile', encoding='ascii'), - cert: fs.readFileSync('path_to_certfile', encoding='ascii'), - ca: [ fs.readFileSync('path_to_ca_certfile', encoding='ascii') ] + key: fs.readFileSync('path_to_keyfile', 'ascii'), + cert: fs.readFileSync('path_to_certfile', 'ascii'), + ca: [ fs.readFileSync('path_to_ca_certfile', 'ascii') ] } }); ``` From e8d71949e916d3962c6aeac75f48d146398f49f5 Mon Sep 17 00:00:00 2001 From: WonkyWumpus Date: Wed, 21 Jul 2021 09:46:26 -0700 Subject: [PATCH 05/23] Update _index.md (#1462) Unless I am mistaken, you cannot add users or manage roles and permissions through the API. At least not in the AWS version of Redis Enterprise Cloud. --- content/rc/api/_index.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/content/rc/api/_index.md b/content/rc/api/_index.md index 1daeb706a97..d899923fbac 100644 --- a/content/rc/api/_index.md +++ b/content/rc/api/_index.md @@ -13,11 +13,9 @@ aliases: /rv/api/ The [Redis Enterprise Cloud REST API](https://api.redislabs.com/v1/swagger-ui.html) helps you manage your Redis Cloud subscription programmatically. You can use the API to: - -- Add or update users + - Create or manage databases -- Define or change hosting credentials -- Define or manage roles and permissions +- Define or change hosting credentials - Audit access via logs - Backup or import databases From 09e581e2e8b7eb5bb4cc4f946782df533d498046 Mon Sep 17 00:00:00 2001 From: Lance Leonard Date: Wed, 21 Jul 2021 11:39:34 -0700 Subject: [PATCH 06/23] Initial draft (#1459) --- content/platforms/faqs/_index.md | 76 +++++++++----------------------- 1 file changed, 22 insertions(+), 54 deletions(-) diff --git a/content/platforms/faqs/_index.md b/content/platforms/faqs/_index.md index b5fb81ffb14..7367ec6c720 100644 --- a/content/platforms/faqs/_index.md +++ b/content/platforms/faqs/_index.md @@ -1,5 +1,6 @@ --- -Title: FAQs +Title: Redis Enterprise on Kubernetes FAQs +linkTitle: FAQs description: weight: 100 alwaysopen: false @@ -7,24 +8,22 @@ categories: ["Platforms"] --- Here are some frequently asked questions about Redis Enterprise on integration platforms. -## RS on Kubernetes +## What is an Operator? -{{< expand-control >}} -{{% expand "What is an Operator?" %}} An Operator is a [Kubernetes custom controller]( https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources#custom-controllers) which extends the native K8s API. Refer to the article [Redis Enterprise K8s Operator-based deployments – Overview]({{< relref "/platforms/kubernetes/concepts/operator.md" >}}). -{{% /expand %}} -{{% expand "Does Redis Enterprise Operator support multiple clusters per namespace?" %}} +## Does Redis Enterprise Operator support multiple clusters per namespace? + The Redis Enterprise Operator may only deploy a single Redis Enterprise Cluster per namespace. Each Redis Enterprise Cluster can run multiple databases while maintaining high capacity and performance. -{{% /expand %}} -{{% expand "Do I need to deploy a Redis Enterprise Operator per namespace?" %}} +## Do I need to deploy a Redis Enterprise Operator per namespace? + Yes, one Operator per namespace, each managing a single Redis Enterprise Cluster. Each Redis Enterprise Cluster can run multiple databases while maintaining high capacity and performance. -{{% /expand %}} -{{% expand "How can I see the CRDs (Custom Resource Definitions) created for my cluster?" %}} +## How can I see the Custom Resource Definitions (CRDs) created for my cluster? + Run the following: ```sh @@ -32,9 +31,8 @@ kubectl get rec kubectl describe rec my-cluster-name ``` -{{% /expand %}} +## How can I change the cluster admin user password? -{{% expand "How can I change the cluster admin user password?" %}} The cluster admin user password is created by the Operator during the deployment of the Redis Enterprise cluster and is stored in a Kubernetes secret. {{< warning >}} @@ -44,9 +42,8 @@ Changing the admin password impacts the proper operation of the K8s deployment. If you must use a different admin password, create an additional user with admin privileges and configure with the new password. -{{% /expand %}} +## How is using Redis Enterprise Operator superior to using Helm Charts? -{{% expand "How is using Redis Enterprise Operator superior to using Helm Charts?" %}} While Helm Charts help automate multi-resource deployments, they do not provide the lifecycle management and lack many of the benefits provided by the Operator: - Operators are a K8s standards while Helm is a proprietary tool @@ -54,25 +51,25 @@ While Helm Charts help automate multi-resource deployments, they do not provide - Operators allow full control over the Redis Enterprise Cluster lifecycle - We’ve experienced difficulties managing state and lifecycle of the application through Helm as it essentially only allows to determine the resources being deployed, which is a problem when upgrading and evolve the Redis Enterprise Cluster settings - Operators support advanced flows which would otherwise require using an additional 3rd party -{{% /expand %}} -{{% expand "How to connect to the Redis Enterprise Cluster UI?" %}} -Create a port forwarding rule to expose the cluster UI port. For example, when the default port 8443 is used, run: +## How to connect to the Redis Enterprise Cluster user interface + +Create a port forwarding rule to expose the cluster user interface (UI) port. For example, when the default port 8443 is used, run: ```sh kubectl port-forward –namespace service/-cluster-ui 8443:8443 ``` Connect to the UI by pointing your browser to `https://localhost:8443` -{{% /expand %}} -{{% expand "How should I size Redis Enterprise Cluster nodes?" %}} +## How should I size Redis Enterprise Cluster nodes? + For nodes hosting the Redis Enterprise Cluster statefulSet pods, please follow the guidelines provided for Redis Enterprise in the [hardware requirements]({{< relref "/rs/administering/designing-production/hardware-requirements.md" >}}). For additional information please also refer to [Kubernetes Operator Deployment – Persistent Volumes]({{< relref "/platforms/kubernetes/concepts/persistent-volumes.md" >}}). -{{% /expand %}} -{{% expand "How to retrieve the username/password for a Redis Enterprise Cluster?" %}} +## How to retrieve the username/password for a Redis Enterprise Cluster? + The Redis Enterprise Cluster stores the username/password of the UI in a K8s secret. To retrieve, first, find the secret by retrieving secrets and locating one of type Opaque with a name identical or containing your Redis Enterprise Cluster name. @@ -99,49 +96,27 @@ A possible response may look like this: ```yaml apiVersion: v1 - data: - password: Q2h5N1BBY28= - username: cmVkaXNsYWJzLnNi - kind: Secret - metadata: - creationTimestamp: 2018-09-03T14:06:39Z - labels: - app: redis-enterprise - redis.io/cluster: test - name: redis-enterprise-cluster - namespace: redis - ownerReferences: - – apiVersion: app.redislabs.com/v1alpha1 - blockOwnerDeletion: true - controller: true - kind: RedisEnterpriseCluster - name: test - uid: 8b247469-c715-11e8-a5d5-0a778671fc2e - resourceVersion: “911969” - selfLink: /api/v1/namespaces/redis/secrets/redis-enterprise-cluster - uid: 8c4ff52e-c715-11e8-80f5-02cc4fca9682 - type: Opaque ``` @@ -156,9 +131,8 @@ Do not change the default admin user password in the Redis Enterprise admin cons Changing the admin password impacts the proper operation of the K8s deployment. {{< /warning >}} -{{% /expand %}} +## How to retrieve the username/password for a Redis Enterprise Cluster through the OpenShift Console? -{{% expand "How to retrieve the username/password for a Redis Enterprise Cluster through the OpenShift Console?" %}} To retrieve your password, navigate to the OpenShift management console, select your project name, go to Resources->Secrets->your_cluster_name Retrieve your password by selecting “Reveal Secret.” @@ -169,11 +143,9 @@ Do not change the default admin user password in the Redis Enterprise admin cons Changing the admin password impacts the proper operation of the K8s deployment. {{< /warning >}} -{{% /expand %}} +## What capabilities, privileges and permissions are defined by the Security Context Constraint (SCC) yaml and the Pod Security Policy (PSP) yaml? -{{% expand "What capabilities, privileges and permissions are defined by the Security Context Constraint (SCC) yaml and the Pod Security Policy (PSP) yaml?" %}} - -The scc.yaml file is defined like this: +The `scc.yaml` file is defined like this: ```yaml kind: SecurityContextConstraints @@ -195,7 +167,7 @@ seLinuxContext: ([latest version on GitHub](https://raw.githubusercontent.com/RedisLabs/redis-enterprise-k8s-docs/master/scc.yaml)) -The psp.yaml file is defined like this: +The `psp.yaml` file is defined like this: ```yaml apiVersion: extensions/v1beta1 @@ -241,7 +213,3 @@ and allows that account to create pods with the PSP shown above. - The NET_RAW capability requirement in PSP was removed. - The allowPrivilegeEscalation is set to 'false' by default. {{< /note >}} - -{{% /expand %}} - -{{< /expand-control >}} From 3adbe92cbd678c60179653abe9447322db0f0f68 Mon Sep 17 00:00:00 2001 From: Lance Leonard Date: Wed, 21 Jul 2021 11:39:59 -0700 Subject: [PATCH 07/23] Initial set of updates. (#1460) --- .../import-export/exporting-data.md | 4 ++-- content/rs/concepts/_index.md | 3 ++- content/rs/installing-upgrading/_index.md | 16 +++++++++------- .../installing-upgrading/configuring/_index.md | 4 ++-- .../configuring/centos-rhel-7-firewall.md | 2 +- ...nfiguring-aws-route53-dns-redis-enterprise.md | 2 +- .../rs/installing-upgrading/file-locations.md | 2 +- .../installing-upgrading/supported-platforms.md | 2 +- content/rs/installing-upgrading/uninstalling.md | 2 +- content/rs/installing-upgrading/upgrading.md | 2 +- content/rs/technology-behind-redis-enterprise.md | 5 +++-- 11 files changed, 24 insertions(+), 20 deletions(-) diff --git a/content/rs/administering/import-export/exporting-data.md b/content/rs/administering/import-export/exporting-data.md index d2ba80e1020..0ba7e04e15c 100644 --- a/content/rs/administering/import-export/exporting-data.md +++ b/content/rs/administering/import-export/exporting-data.md @@ -20,7 +20,7 @@ You can export a database to these locations: - Azure Blob Storage - Google Cloud Storage -{{comment}}The backup process creates compressed (.gz) RDB files that you can [import into a database]({{< relref "/rs/administering/import-export/importing-data.md" >}}). +{{}}The backup process creates compressed (.gz) RDB files that you can [import into a database]({{< relref "/rs/administering/import-export/importing-data.md" >}}). If you backup a database configured for database clustering, RS copies a backup file for each shard to the specified backup location. @@ -28,7 +28,7 @@ RS copies a backup file for each shard to the specified backup location. 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. {{< /note >}} -{{/comment}} +{{}} ## Export data from a database diff --git a/content/rs/concepts/_index.md b/content/rs/concepts/_index.md index d342888bf02..d92fd3860b7 100644 --- a/content/rs/concepts/_index.md +++ b/content/rs/concepts/_index.md @@ -1,5 +1,6 @@ --- -Title: Concepts and Architecture +Title: Concepts and architecture +linkTitle: Concepts and architecture description: weight: 40 alwaysopen: false diff --git a/content/rs/installing-upgrading/_index.md b/content/rs/installing-upgrading/_index.md index ec303fc6040..d84ec229649 100644 --- a/content/rs/installing-upgrading/_index.md +++ b/content/rs/installing-upgrading/_index.md @@ -1,5 +1,6 @@ --- -Title: Install and Setup +Title: Install and setup +linkTitle: Install and setup description: weight: 35 alwaysopen: false @@ -180,6 +181,12 @@ To install without answering the installation questions, either: For geo-distributed Active-Active replication, create an [Active-Active]({{< relref "/rs/administering/creating-databases/create-active-active.md" >}}) database. +## Notes + +- Redis Enterprise Software installation creates the `redislabs:redislabs` user and group. Assigning other users to the `redislabs` group is optional. Users belonging to the `redislabs` group will have permission to read and execute (e.g. use the `rladmin` status command) but not to write or delete files and directories. + +- Redis Enterprise Software serves a large variety of industries. The common industry standard for permissions is `750` permissions. Reducing the permissions to `700` has not been tested and isn't supported. + ## More info and options If you've already installed Redis Enterprise Software, you can also: @@ -191,7 +198,7 @@ If you've already installed Redis Enterprise Software, you can also: More info is available to help with customization and related questions: - [AWS EC2 configuration]({{}}) -- [CentOS/RHEL Firewall conifugration]({{< relref "rs/installing-upgrading/configuring/centos-rhel-7-firewall.md" >}}) +- [CentOS/RHEL Firewall configuration]({{< relref "rs/installing-upgrading/configuring/centos-rhel-7-firewall.md" >}}) - [Change socket file location]({{< relref "rs/installing-upgrading/configuring/change-location-socket-files.md" >}}) - [Cluster DNS configuration]({{< relref "rs/installing-upgrading/configuring/cluster-dns.md" >}}) - [Cluster load balancer setup]({{< relref "rs/installing-upgrading/configuring/cluster-lba-setup.md" >}}) @@ -210,8 +217,3 @@ Now that your cluster is set up with nodes, you can: - [Add users]({{< relref "/rs/security/passwords-users-roles.md" >}}) to the cluster with specific permissions. To begin, start with [Authentication and authorization]({{< relref "/rs/security/admin-console-security/user-security" >}}). - [Create databases]({{< relref "/rs/administering/creating-databases/_index.md" >}}) to use with your applications. -## Additional notes - -Redis Enterprise installation creates the redislabs:redislabs user and group. Assigning other users to the redislabs group is optional. Users belonging to the redislabs group will have permission to read and execute (e.g. use the rladmin status command) but not to write or delete files and directories. - -Redis Enterprise serves a large variety of industries. The common industry standard for permissions is 750 permissions. Reducing the permissions to 700 has not been tested and isn't supported. diff --git a/content/rs/installing-upgrading/configuring/_index.md b/content/rs/installing-upgrading/configuring/_index.md index bd52f51355b..403957c7616 100644 --- a/content/rs/installing-upgrading/configuring/_index.md +++ b/content/rs/installing-upgrading/configuring/_index.md @@ -1,11 +1,11 @@ --- -Title: Additional Configuration +Title: Additional configuration description: weight: 80 alwaysopen: false categories: ["RS"] aliases: /rs/administering/installing-upgrading/configuring/ --- -This section contains instructions for additional configuration of your OS and Redis Enterprise Software installation. +This section describes additional configuration options for Redis Enterprise Software installation. {{< allchildren style="h2" description="true" />}} diff --git a/content/rs/installing-upgrading/configuring/centos-rhel-7-firewall.md b/content/rs/installing-upgrading/configuring/centos-rhel-7-firewall.md index aa343e3ec01..3c03bbf846d 100644 --- a/content/rs/installing-upgrading/configuring/centos-rhel-7-firewall.md +++ b/content/rs/installing-upgrading/configuring/centos-rhel-7-firewall.md @@ -1,6 +1,6 @@ --- title: Configure CentOS/RHEL 7 Firewall -linkTitle: CentOS/RHEL 7 Firewall +linkTitle: CentOS/RHEL 7 firewall description: weight: $weight alwaysopen: false diff --git a/content/rs/installing-upgrading/configuring/configuring-aws-route53-dns-redis-enterprise.md b/content/rs/installing-upgrading/configuring/configuring-aws-route53-dns-redis-enterprise.md index 47df7d09944..736516c7d37 100644 --- a/content/rs/installing-upgrading/configuring/configuring-aws-route53-dns-redis-enterprise.md +++ b/content/rs/installing-upgrading/configuring/configuring-aws-route53-dns-redis-enterprise.md @@ -1,5 +1,5 @@ --- -Title: Configuring AWS Route53 DNS Management +Title: AWS Route53 DNS management linkTitle: AWS Route 53 DNS description: weight: $weight diff --git a/content/rs/installing-upgrading/file-locations.md b/content/rs/installing-upgrading/file-locations.md index 83eb1b0db06..99bc883097e 100644 --- a/content/rs/installing-upgrading/file-locations.md +++ b/content/rs/installing-upgrading/file-locations.md @@ -1,5 +1,5 @@ --- -Title: File Locations +Title: File locations description: weight: 20 alwaysopen: false diff --git a/content/rs/installing-upgrading/supported-platforms.md b/content/rs/installing-upgrading/supported-platforms.md index 9c2a9bebb33..bba57d1c709 100644 --- a/content/rs/installing-upgrading/supported-platforms.md +++ b/content/rs/installing-upgrading/supported-platforms.md @@ -1,5 +1,5 @@ --- -Title: Supported Platforms +Title: Supported platforms description: weight: 10 alwaysopen: false diff --git a/content/rs/installing-upgrading/uninstalling.md b/content/rs/installing-upgrading/uninstalling.md index 63499d3e29b..03fd3d25b2e 100644 --- a/content/rs/installing-upgrading/uninstalling.md +++ b/content/rs/installing-upgrading/uninstalling.md @@ -1,6 +1,6 @@ --- Title: Uninstall Redis Enterprise Software -LinkTitle: Uninstall Redis Enterprise Software +LinkTitle: Uninstall existing deployment description: weight: 70 alwaysopen: false diff --git a/content/rs/installing-upgrading/upgrading.md b/content/rs/installing-upgrading/upgrading.md index afbd6914bc2..860f9e8ec5d 100644 --- a/content/rs/installing-upgrading/upgrading.md +++ b/content/rs/installing-upgrading/upgrading.md @@ -1,6 +1,6 @@ --- Title: Upgrade Redis Enterprise Software -linkTitle: Upgrade Redis Enterprise Software +linkTitle: Upgrade existing deployment description: weight: 60 alwaysopen: false diff --git a/content/rs/technology-behind-redis-enterprise.md b/content/rs/technology-behind-redis-enterprise.md index 2812f82d878..05b8e3a3d5f 100644 --- a/content/rs/technology-behind-redis-enterprise.md +++ b/content/rs/technology-behind-redis-enterprise.md @@ -1,12 +1,13 @@ --- -Title: Redis Enterprise Technical Overview +Title: Redis Enterprise Software technical overview +linkTitle: Technical overview description: weight: 10 alwaysopen: false categories: ["RS"] --- -Redis Enterprise is designed to simplify operations while providing seamless scalability, top performance, and high availability. +Redis Enterprise Software is designed to simplify operations while providing seamless scalability, top performance, and high availability. Here are some of the features and design decisions that make this possible. From 4397e2477815d813f9719bba62a86be1ff4e2880 Mon Sep 17 00:00:00 2001 From: Amiram Mizne Date: Thu, 22 Jul 2021 07:43:40 -0700 Subject: [PATCH 08/23] Fixed an error in EKS supported version (#1463) We've certified on 1.18; 1.19 was written in error. --- content/platforms/release-notes/k8s-6-0-20-12-2021-07.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/platforms/release-notes/k8s-6-0-20-12-2021-07.md b/content/platforms/release-notes/k8s-6-0-20-12-2021-07.md index 87461335008..69f02898b59 100644 --- a/content/platforms/release-notes/k8s-6-0-20-12-2021-07.md +++ b/content/platforms/release-notes/k8s-6-0-20-12-2021-07.md @@ -120,7 +120,7 @@ is required, the only fix is to upgrade the K8s cluster to a newer version. ## Compatibility Notes -* EKS is now supported (K8s 1.19) +* EKS is now supported (K8s 1.18) * OpenShift 4.4 (previously deprecated) is no longer supported * GKE K8s versions 1.15, 1.16 (previously deprecated) is no longer supported * VMWare TKGIE 1.10 (K8s 1.19) is now supported @@ -129,4 +129,4 @@ is required, the only fix is to upgrade the K8s cluster to a newer version. * GKE K8s version 1.17 (no longer supported by Google) is deprecated * kOps 1.15 is deprecated -* VMWare TKGIE 1.7 (K8s 1.16), VMWare TKGIE 1.8 (K8s 1.17) are deprecated (no longer supported by VMWare) \ No newline at end of file +* VMWare TKGIE 1.7 (K8s 1.16), VMWare TKGIE 1.8 (K8s 1.17) are deprecated (no longer supported by VMWare) From 266765c0c196b607e4f8fc0c2c61950a7b44c149 Mon Sep 17 00:00:00 2001 From: Lance Leonard Date: Fri, 23 Jul 2021 12:00:57 -0700 Subject: [PATCH 09/23] Initial draft (#1465) --- content/rs/administering/database-operations/_index.md | 6 +++--- content/rs/security/_index.md | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/content/rs/administering/database-operations/_index.md b/content/rs/administering/database-operations/_index.md index 8a4d995a404..2edb8ec3dca 100644 --- a/content/rs/administering/database-operations/_index.md +++ b/content/rs/administering/database-operations/_index.md @@ -5,11 +5,11 @@ weight: 60 alwaysopen: false categories: ["RS"] --- -This section contains all you need to know to maintain Redis Enterprise Software (RS) databases. +This section helps you maintain your Redis Enterprise Software databases.
    -

    Database Security

    -

    Your data is critical to your business and securing is one of your top priorities. This section shows how you can secure access to your data and secure your data in transit.

    +

    Database Security

    +

    Your data is critical to your business and securing it is one of your top priorities. Here's where to learn how to secure access to your data and secure your data in transit.

{{< allchildren style="h2" description="true" />}} diff --git a/content/rs/security/_index.md b/content/rs/security/_index.md index 6cbc21d04ee..33703d3c55b 100644 --- a/content/rs/security/_index.md +++ b/content/rs/security/_index.md @@ -4,7 +4,9 @@ description: weight: 60 alwaysopen: false categories: ["RS"] -aliases: ["/rs/administering/designing-production/security/"] +aliases: /rs/administering/designing-production/security/ + /rs/security/database-security/ + /rs/security/database-security.md --- Security is an important part of any production system. This section describes the security features and settings available in Redis Enterprise. From 897672c4c661be3c1a559f5641ea64b9557f0b89 Mon Sep 17 00:00:00 2001 From: Jamie Scott Date: Thu, 29 Jul 2021 05:20:25 -0700 Subject: [PATCH 10/23] Small fix (#1468) back from the dead - also this is ugly. Miss you guys. --- content/rs/references/crdb-cli-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/rs/references/crdb-cli-reference.md b/content/rs/references/crdb-cli-reference.md index 21cc3fdd759..56a27506eae 100644 --- a/content/rs/references/crdb-cli-reference.md +++ b/content/rs/references/crdb-cli-reference.md @@ -89,7 +89,7 @@ Task 2b3d62c6-395b-4679-87b1-eef006ad4a38 created ---> Status changed: started -> finished ``` -If you only specify the required fields, the properties of the database are:: +If you only specify the required fields, the properties of the database are: - Compression level 3 - Causal consistency is off From 05493adb65ab6c18941dd3e2d3be6a486a03a15a Mon Sep 17 00:00:00 2001 From: Alon Magrafta <50071256+AlonMagrafta@users.noreply.github.com> Date: Thu, 29 Jul 2021 15:22:42 +0300 Subject: [PATCH 11/23] can add module only on creation (#1469) * can add module only on creation * Update add-module-to-database.md --- content/modules/add-module-to-database.md | 4 +++- content/rs/administering/creating-databases/_index.md | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/content/modules/add-module-to-database.md b/content/modules/add-module-to-database.md index 9ca68198dd3..a11694420ad 100644 --- a/content/modules/add-module-to-database.md +++ b/content/modules/add-module-to-database.md @@ -14,11 +14,13 @@ aliases: Modules add additional functionality to your databases for specific use cases. You can add modules to the database when you create the database. -## Add modules to a database +## Create a database with a module {{< note >}} - Before you add a module to a database, we recommend that you [upgrade the module]({{< relref "/modules/add-module-to-cluster.md" >}}) to the latest version. +- Modules can be add to database only when creating a new database. + You can't add a module to an existing database. - After you add a module to the database, certain database fields for the database are disabled according to the supported capabilities of the module. {{< /note >}} diff --git a/content/rs/administering/creating-databases/_index.md b/content/rs/administering/creating-databases/_index.md index e058069ad9e..2869254324d 100644 --- a/content/rs/administering/creating-databases/_index.md +++ b/content/rs/administering/creating-databases/_index.md @@ -78,7 +78,12 @@ for this database. Minimum RAM portion is 10%, and maximum RAM portion is 50%. - [**Redis Modules**]({{< relref "/rs/developing/modules/_index.md" >}}) - When you create a new in-memory database, you can enable multiple Redis modules to the database. For RoF databases, you can add modules that support RoF. - + + {{< note >}} + Modules can be add to database only when creating a new database. + You can't add a module to an existing database. + {{< /note >}} + To add a module to the database: 1. In the Redis Modules field, click ![Add](/images/rs/icon_add.png#no-click "Add"). From 8e27e28e15e4372a401faea9b472e0f648385360 Mon Sep 17 00:00:00 2001 From: Rachel Elledge <86307637+rrelledge@users.noreply.github.com> Date: Thu, 29 Jul 2021 09:14:03 -0500 Subject: [PATCH 12/23] Cleaned up RS clients index page and added an auto-generating table shortcode (#1467) --- .../rs/references/client_references/_index.md | 12 ++++-- .../references/client_references/client_c.md | 3 +- .../client_references/client_csharp.md | 3 +- .../client_references/client_drupal.md | 3 +- .../client_references/client_ioredis.md | 3 +- .../client_references/client_java.md | 3 +- .../client_references/client_nodejs.md | 3 +- .../client_references/client_php.md | 3 +- .../client_references/client_python.md | 3 +- .../client_references/client_ruby.md | 3 +- layouts/shortcodes/table-children.html | 40 +++++++++++++++++++ 11 files changed, 67 insertions(+), 12 deletions(-) create mode 100644 layouts/shortcodes/table-children.html diff --git a/content/rs/references/client_references/_index.md b/content/rs/references/client_references/_index.md index 77886e37268..11bb716dc8b 100644 --- a/content/rs/references/client_references/_index.md +++ b/content/rs/references/client_references/_index.md @@ -1,9 +1,15 @@ --- -Title: Developing with Redis Clients -description: +Title: Develop with Redis clients +linkTitle: Redis clients +description: Redis client libraries allow you to connect to Redis instances from within your application. This section provides an overview of several recommended Redis clients for popular programming and scripting languages. weight: 80 alwaysopen: false categories: ["RS"] --- +To connect to Redis instances from within your application, use a Redis client library that matches your application's language. -{{< allchildren style="h2" description="true" />}} +The [Redis Clients page](https://redis.io/clients) contains a list of available Redis client libraries for a variety of popular programming and scripting languages. + +The following links discuss a few recommended clients in more detail, including installation instructions and usage examples. + +{{< table-children columnNames="Language,Client reference" columnSources="LinkTitle,Title" enableLinks="Title" >}} \ No newline at end of file diff --git a/content/rs/references/client_references/client_c.md b/content/rs/references/client_references/client_c.md index 81e1344983e..0e8993852ff 100644 --- a/content/rs/references/client_references/client_c.md +++ b/content/rs/references/client_references/client_c.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with C +Title: Redis with C +linkTitle: C description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_csharp.md b/content/rs/references/client_references/client_csharp.md index 836aa78aa79..1a64baaf959 100644 --- a/content/rs/references/client_references/client_csharp.md +++ b/content/rs/references/client_references/client_csharp.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with .NET +Title: Redis with .NET +linkTitle: .NET description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_drupal.md b/content/rs/references/client_references/client_drupal.md index 0bc958dd9e0..45eff8ef571 100644 --- a/content/rs/references/client_references/client_drupal.md +++ b/content/rs/references/client_references/client_drupal.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with Drupal 7 +Title: Redis with Drupal 7 +linkTitle: Drupal description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_ioredis.md b/content/rs/references/client_references/client_ioredis.md index 92256ae2f52..ade54c9f777 100644 --- a/content/rs/references/client_references/client_ioredis.md +++ b/content/rs/references/client_references/client_ioredis.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with Node.js (ioredis) +Title: Redis with Node.js (ioredis) +linkTitle: Node.js (ioredis) description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_java.md b/content/rs/references/client_references/client_java.md index 148b4776431..2f1dee4f451 100644 --- a/content/rs/references/client_references/client_java.md +++ b/content/rs/references/client_references/client_java.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with Java +Title: Redis with Java +linkTitle: Java description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_nodejs.md b/content/rs/references/client_references/client_nodejs.md index 268f9d5f0d7..ab3c57162e2 100644 --- a/content/rs/references/client_references/client_nodejs.md +++ b/content/rs/references/client_references/client_nodejs.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with Node.js (node_redis) +Title: Redis with Node.js (node_redis) +linkTitle: Node.js (node_redis) description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_php.md b/content/rs/references/client_references/client_php.md index 7358409f3e2..ae4b5abf3b6 100644 --- a/content/rs/references/client_references/client_php.md +++ b/content/rs/references/client_references/client_php.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with PHP +Title: Redis with PHP +linkTitle: PHP description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_python.md b/content/rs/references/client_references/client_python.md index 822c57e8a7a..e3af6b59bad 100644 --- a/content/rs/references/client_references/client_python.md +++ b/content/rs/references/client_references/client_python.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with Python +Title: Redis with Python +linkTitle: Python description: weight: alwaysopen: false diff --git a/content/rs/references/client_references/client_ruby.md b/content/rs/references/client_references/client_ruby.md index 17666eaf7c9..417ab1e0f5b 100644 --- a/content/rs/references/client_references/client_ruby.md +++ b/content/rs/references/client_references/client_ruby.md @@ -1,5 +1,6 @@ --- -Title: Using Redis with Ruby +Title: Redis with Ruby +linkTitle: Ruby description: weight: $weight alwaysopen: false diff --git a/layouts/shortcodes/table-children.html b/layouts/shortcodes/table-children.html new file mode 100644 index 00000000000..c173ac5ede0 --- /dev/null +++ b/layouts/shortcodes/table-children.html @@ -0,0 +1,40 @@ +{{ $columnNamesStr := .Get "columnNames" }} +{{ $columnNames := split $columnNamesStr "," }} +{{ $columnSourcesStr := .Get "columnSources" }} +{{ $columnSources := split $columnSourcesStr "," }} +{{ $enableLinksStr := .Get "enableLinks" }} +{{ $enableLinks := split $enableLinksStr "," }} +{{ $children := .Page.Pages }} + + + + + {{ range $i, $column := $columnNames }} + + {{ end }} + + + + + {{ range $i, $child := $children }} + + {{ range $j, $cSource := $columnSources }} + {{ if eq $cSource "LinkTitle" }} + {{ if in $enableLinks $cSource }} + + {{ else }} + + {{ end }} + {{ end }} + {{ if eq $cSource "Title" }} + {{ if in $enableLinks $cSource }} + + {{ else }} + + {{ end }} + {{ end }} + {{ end }} + + {{ end }} + +
{{ $column }}
{{ $child.LinkTitle }}{{ $child.LinkTitle }}{{ $child.Title }}{{ $child.Title }}
\ No newline at end of file From 0f3d77d221326c2ddfa9d475bd6a41b0bb36ba6b Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Thu, 29 Jul 2021 15:19:05 -0500 Subject: [PATCH 13/23] Doc 781 Manage REC credentials procedure (#1466) --- .../concepts/manage_REC_credentials.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 content/platforms/kubernetes/concepts/manage_REC_credentials.md diff --git a/content/platforms/kubernetes/concepts/manage_REC_credentials.md b/content/platforms/kubernetes/concepts/manage_REC_credentials.md new file mode 100644 index 00000000000..13a5bdeb17a --- /dev/null +++ b/content/platforms/kubernetes/concepts/manage_REC_credentials.md @@ -0,0 +1,134 @@ +--- +Title: Manage Redis Enterprise cluster (REC) credentials +linkTitle: Manage REC credentials +weight: 93 +alwaysopen: false +categories: ["Platforms"] +aliases: /platforms/kubernetes/manage_REC_credentials/ +--- +The Redis Enterprise Software on Kubernetes uses a custom resource called RedisEnterpriseCluster to create a Redis Enterprise cluster (REC). At the time of creation, it generates random credentials the operator will use to perform operations on the Redis Enterprise cluster via the APIs. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. + +{{}} +This procedure is only supported for operator versions 6.0.20-12 and above. +{{}} + +## Retrieve the current username and password + +The credentials can be used to access the Redis Enterprise cluster UI or the API. Connectivity must be configured to the REC [pods](https://kubernetes.io/docs/concepts/workloads/pods/) using an appropriate service (or port forwarding). + +1. To inspect the random username and password created by the operator during creation, use the `kubectl get secret` command. + + ```bash + $ kubectl get secret rec -o jsonpath='{.data}' + map[password:MVUyTjd1Mm0= username:ZGVtb0ByZWRpc2xhYnMuY29t] + ``` + + The output will be the encoded password and username (the values above are examples). + +1. To decode the encoded password and username, use `echo` command and the password from the previous step. + + ```bash + echo MVUyTjd1Mm0= | base64 --decodexc + ``` + + This outputs the password and username in plain text. In this example, the plain text password is `12345678` and the username is `demo@redislabs.com`. + +Note there are other methods to decode secrets. + +## Change the Redis Enterprise cluster credentials + +### Replace the REC password + +1. Retrieve and take note of the current password (see above) +1. Access the console of a [pod](https://kubernetes.io/docs/concepts/workloads/pods/) running a Redis Enterprise cluster. + + ```bash + kubectl exec -it -0 bash + ``` + +1. From the pod console, add the new password for the existing user. + ```bash + REC_USER="`cat /opt/redislabs/credentials/username`" \ + REC_PASSWORD="`cat /opt/redislabs/credentials/password`" \ + curl -k --request POST \ + --url https://localhost:9443/v1/users/password \ + -u "$REC_USER:$REC_PASSWORD" \ + --header 'Content-Type: application/json' \ + --data "{\"username\":\"$REC_USER\", \ + \"old_password\":\"$REC_PASSWORD\", \ + \"new_password\":\"\"}" + ``` + +1. From outside the node pod, update the REC credential secret: + + 1. Save the existing username to a text file . + ```bash + echo -n "" > username + ``` + + 1. Save the new password to a text file. + ```bash + echo -n "" > password + ``` + + 1. Update the REC credential secret. + ```bash + kubectl create secret generic \ + --from-file=./username \ + --from-file=./password --dry-run \ + -o yaml + kubectl apply -f + ``` + +1. Wait five minutes for all the components to read the new password from the updated secret. If you proceed to the next step too soon, the account could get locked. + +1. Access the console of a pod running a Redis Enterprise cluster again. + + ```bash + kubectl exec -it -0 bash + ``` + + 1. From within the pod, remove the previous password to ensure only the new one applies. + ```bash + REC_USER="`cat /opt/redislabs/credentials/username`"; \ REC_PASSWORD="`cat /opt/redislabs/credentials/password`"; \ + curl -k --request POST \ + --url https://localhost:9443/v1/users/password \ + -u "$REC_USER:$REC_PASSWORD" \ + --header 'Content-Type: application/json' \ + --data "{\"username\":\"$REC_USER\", \ + \"old_password\":\"$REC_PASSWORD\", \ + \"new_password\":\"\"}" + ``` + +### Replace the REC username and password + +1. Sign in to the Redis Enterprise cluster console. +1. [Add another admin user]({{< relref "rs/security/admin-console-security/user-security#configuring-users-with-roles" >}}) and choose a password. +1. Set the new username in the REC spec username field. +1. Update the REC credential secret: + 1. Save the existing username to a text file. + ```bash + echo -n "" > username + ``` + + 1. Save the new password to a text file. + ```bash + echo -n "" > password + ``` + + 1. Update the REC credential secret. + ```bash + kubectl create secret generic \ + --from-file=./username \ + --from-file=./password --dry-run \ + -o yaml + kubectl apply -f + ``` + +1. Wait five minutes for all the components to read the new password from the updated secret. If you proceed to the next step too soon, the account could get locked. + +1. Delete the previous admin user from the Redis Enterprise cluster console. + +{{}} +The operator may log errors in the time between updating the username in the REC spec and the secret update. +{{}} From d6c2fe337fb30bfa8e280490cccfc4ed316c6b8f Mon Sep 17 00:00:00 2001 From: Lance Leonard Date: Fri, 30 Jul 2021 05:16:59 -0700 Subject: [PATCH 14/23] Jira DOC-760: RC - Finish reorganizing Concepts content. (#1454) * Initial draft/implementation * Updating glossary link * Adding new section to entry page. * Initial pass to reorg/clean-up Cloud account docs. * Typos and other editorial fixes * Updating flush-all article/mini-toc min word count. * Edits to cloud account entry page * Moving remaining how-to articles to admin sections --- content/glossary/_index.md | 6 +- .../aws-zone-mapping.md | 11 ++- .../rc/administration/configuration/_index.md | 12 --- .../rc/administration/multiple-accounts.md | 27 ++++++ .../rc/administration/setup/change-plan.md | 2 +- content/rc/cloud-accounts/_index.md | 63 ++++++++++++++ .../rc/cloud-accounts/iam-resources/_index.md | 43 ++++++++++ .../iam-resources/aws-console.md} | 32 ++++--- .../iam-resources}/cloudformation.md | 42 ++++++---- .../cloud-accounts/iam-resources/terraform.md | 45 ++++++++++ content/rc/concepts/_index.md | 12 --- content/rc/concepts/data-persistence.md | 73 ---------------- content/rc/databases/_index.md | 23 ++++- content/rc/databases/configuration/_index.md | 20 +++++ .../configuration}/clustering.md | 47 ++++++----- .../configuration}/data-eviction-policies.md | 20 +++-- .../configuration/data-persistence.md | 61 ++++++++++++++ .../{ => configuration}/high-availability.md | 4 +- content/rc/databases/create-database.md | 4 +- content/rc/databases/flush-data.md | 79 ++++++++++++++++-- content/rc/how-to/all-memcached-cloud.md | 56 ------------- .../how-to/creating-iam-resources/_index.md | 36 -------- .../creating-iam-resources/terraform.md | 34 -------- content/rc/how-to/multiple-accounts.md | 16 ---- content/rc/how-to/view-edit-cloud-account.md | 42 ---------- content/rc/rc-quickstart.md | 10 +-- .../database-security/encryption-at-rest.md | 2 +- .../create-flexible-subscription.md | 2 +- .../view-flexible-subscription.md | 2 +- .../networking/using-oss-cluster-api.md | 2 +- layouts/partials/home/options.html | 14 ++-- layouts/partials/mini-toc.html | 3 +- .../rc/redisinsight-cli-flushall-example.png | Bin 0 -> 90085 bytes 33 files changed, 475 insertions(+), 370 deletions(-) rename content/rc/{how-to => administration}/aws-zone-mapping.md (89%) delete mode 100644 content/rc/administration/configuration/_index.md create mode 100644 content/rc/administration/multiple-accounts.md create mode 100644 content/rc/cloud-accounts/_index.md create mode 100644 content/rc/cloud-accounts/iam-resources/_index.md rename content/rc/{how-to/creating-iam-resources/creating-aws-user-redis-enterprise-vpc.md => cloud-accounts/iam-resources/aws-console.md} (68%) rename content/rc/{how-to/creating-iam-resources => cloud-accounts/iam-resources}/cloudformation.md (58%) create mode 100644 content/rc/cloud-accounts/iam-resources/terraform.md delete mode 100644 content/rc/concepts/_index.md delete mode 100644 content/rc/concepts/data-persistence.md create mode 100644 content/rc/databases/configuration/_index.md rename content/rc/{concepts => databases/configuration}/clustering.md (78%) rename content/rc/{concepts => databases/configuration}/data-eviction-policies.md (54%) create mode 100644 content/rc/databases/configuration/data-persistence.md rename content/rc/databases/{ => configuration}/high-availability.md (95%) delete mode 100644 content/rc/how-to/all-memcached-cloud.md delete mode 100644 content/rc/how-to/creating-iam-resources/_index.md delete mode 100644 content/rc/how-to/creating-iam-resources/terraform.md delete mode 100644 content/rc/how-to/multiple-accounts.md delete mode 100644 content/rc/how-to/view-edit-cloud-account.md create mode 100755 static/images/rc/redisinsight-cli-flushall-example.png diff --git a/content/glossary/_index.md b/content/glossary/_index.md index b1047db5946..ec9705ae7ac 100644 --- a/content/glossary/_index.md +++ b/content/glossary/_index.md @@ -42,7 +42,7 @@ Provides applications read-only access to replicas of the data set from differen Log files that keep a record of data changes by writing to the end of a file. This happens with every write, or every second to allow data recovering the entire dataset by replaying the append-only log from the beginning to the end. -More info: [Data Persistence]({{}}), [Data Persistence with Redis Enterprise Software]({{}}) +More info: [Data Persistence]({{}}), [Data Persistence with Redis Enterprise Software]({{}}) {{%/definition%}} {{%definition "CIDR allowlist"%}} @@ -54,7 +54,7 @@ More info: [CIDR wikipedia](https://en.wikipedia.org/wiki/Classless_Inter-Domain {{%definition "cluster"%}} A Redis Enterprise cluster is composed of identical nodes that are deployed within a data center or stretched across local availability zones. -More info: [Database Clustering]({{}}) +More info: [Database Clustering]({{}}) {{%/definition%}} {{%definition "Cluster Configuration Store (CSS)"%}} @@ -80,7 +80,7 @@ More info: [CustomResourceDefinition](https://kubernetes.io/docs/reference/gloss {{%definition "data eviction policy"%}} Defines how excess data is handled when the database exceeds the memory limit. -More info: [Data Eviction Policy]({{}}) +More info: [Data Eviction Policy]({{}}) {{%/definition%}} {{%definition "Domain Name Service (DNS)"%}} diff --git a/content/rc/how-to/aws-zone-mapping.md b/content/rc/administration/aws-zone-mapping.md similarity index 89% rename from content/rc/how-to/aws-zone-mapping.md rename to content/rc/administration/aws-zone-mapping.md index e1244621009..b44676098e8 100644 --- a/content/rc/how-to/aws-zone-mapping.md +++ b/content/rc/administration/aws-zone-mapping.md @@ -1,10 +1,15 @@ --- Title: AWS zone mapping for Fixed plans linkTitle: AWS zone mapping -description: -weight: $weight +description: Reduce latency by mapping your AWS availability zones to the zones used by your Fixed subscription. +weight: 90 alwaysopen: false categories: ["RC"] +aliases: /rc/how-to/aws-zone-mapping/ + /rc/how-to/aws-zone-mapping.md + /rc/administration/aws-zone-mapping/ + /rc/administration/aws-zone-mapping.md + --- To achieve the best performance with a Redis Enterprise Cloud Fixed subscription deployed to Amazon Web Services (AWS), map your AWS availability zones to your database. @@ -88,4 +93,4 @@ We recommend creating a new, restricted account: 1. After the zone mapping is completed, delete the new user created for zone mapping. -To learn more about, see [Creating an IAM user in your AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) (AWS documentation). +To learn more, see [Creating an IAM user in your AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) (AWS documentation). diff --git a/content/rc/administration/configuration/_index.md b/content/rc/administration/configuration/_index.md deleted file mode 100644 index 090e8b8f494..00000000000 --- a/content/rc/administration/configuration/_index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Configuring Redis Cloud Resources -description: -weight: 30 -alwaysopen: false -categories: ["RC"] -aliases: /rc/administration/configure/ - /rv/administration/configuration/ ---- -Although Redis Cloud requires very little configuration, there are some things that you can and may want to do to tailor your database to your use case. - -{{< allchildren style="h2" description="true" />}} diff --git a/content/rc/administration/multiple-accounts.md b/content/rc/administration/multiple-accounts.md new file mode 100644 index 00000000000..26f74c5dbba --- /dev/null +++ b/content/rc/administration/multiple-accounts.md @@ -0,0 +1,27 @@ +--- +Title: Manage multiple Redis Cloud account memberships +linkTitle: Manage account memberships +description: +weight: 95 +alwaysopen: false +categories: ["RC"] +aliases: /rc/how-to/multiple-accounts/ + /rc/how-to/multiple-accounts.md + /rc/administration/multiple-accounts/ + /rc/administration/multiple-accounts.md + +--- +You can be a member of multiple accounts in Redis Cloud. +For example, if you created your own account and your company has arranged its subscriptions into multiple accounts (Dev, +Test, and Prod) that you are a member of. + +The console admin menu includes a drop-down menu that lists your current Redis Enterprise Cloud account memberships. + +When you first sign into the admin console, you're connected to the first account registered with your email address. + +![account_multiple_teams](/images/rc/account_multiple_teams.png) + +Use the drop-down arrow to display additional Redis Enterprise accounts. To switch to a different account, select it from this list. When you do this, the admin console shows the resources associated with the selected subscription. + +The permissions for each account are defined by the role you are assigned by the account owner. + diff --git a/content/rc/administration/setup/change-plan.md b/content/rc/administration/setup/change-plan.md index cf5e19b36dd..8a2e56dbe76 100644 --- a/content/rc/administration/setup/change-plan.md +++ b/content/rc/administration/setup/change-plan.md @@ -1,7 +1,7 @@ --- Title: Changing Redis Cloud Plans description: -weight: $weight +weight: 85 alwaysopen: false categories: ["RC"] aliases: /rc/administration/setup-and-editing/changing-subscription-plan/ diff --git a/content/rc/cloud-accounts/_index.md b/content/rc/cloud-accounts/_index.md new file mode 100644 index 00000000000..14a8844c871 --- /dev/null +++ b/content/rc/cloud-accounts/_index.md @@ -0,0 +1,63 @@ +--- +Title: Manage cloud accounts +LinkTitle: Cloud accounts +description: Describes how to provision your Redis Enterprise Cloud subscription to use existing cloud provider accounts. +weight: 40 +alwaysopen: false +categories: ["RC"] +aliases: /rv/how-to/view-edit-cloud-account/ + /rv/how-to/creating-cloud-account/ + /rc/how-to/creating-cloud-account/ + /rc/how-to/view-edit-cloud-account/ + /rc/how-to/view-edit-cloud-account.md + /rc/cloud-accounts/ + /rc/cloud-accounts.md +--- + +Many customers use cloud provider accounts provisioned and maintained by Redis Labs. + +Customers with existing Amazon Web Services (AWS) accounts can provision their Flexible or Annual subscriptions to use their existing AWS accounts. + +To do so, you associate your existing AWS account as a _cloud account_ for your subscription. This requires setting up and entering credentials that enable monitoring, maintenance, and technical support of your subscription. + +You need to create: + +1. A programmatic user and provide us with the access key and secret access key for that user. +1. A console role and provide us with that role name. + +These resources need to exist before adding the cloud account to your subscription. To learn more, see [Create IAM resources]({{}}). + +{{}} +Once an AWS account has been configured as a cloud account, you must _not_: +- Manually change the configuration of required resources, such as security groups
+- Manually suspend or stop (terminate) provisioned resources

+{{
}} + +## Add or edit a cloud account + +To create or edit a cloud account in Redis Enterprise Cloud: + +1. Sign into the [admin console](https://app.redislabs.com/) and then select the target subscription. + +1. From the console menu, select **Cloud Accounts** and then either: + + - Select the ![Add](/images/rs/icon_add.png#no-click "Add") to add a new account. + + - Select the account that you want to edit and then select **Edit**. + +1. Enter the cloud account details, which include: + + - **Account Name** - A meaningful name for the account + - **AWS_ACCESS_KEY_ID** - The AWS access key for the programmatic user + - **AWS_SECRET_ACCESS_KEY** - The AWS secret access key for the programmatic user + - **IAM Role Name** - The name of the console role with access to the console + +1. Select **Save**. + +Use the **Delete** button to remove a cloud account from your subscription. + +## Dedicated IAM resources + +We recommend creating dedicated identity and access management (IAM) resources to manage the infrastructure of your subscriptions. + +To learn more, see [Create IAM resources for AWS cloud accounts]({{}}). diff --git a/content/rc/cloud-accounts/iam-resources/_index.md b/content/rc/cloud-accounts/iam-resources/_index.md new file mode 100644 index 00000000000..c9840cf72e9 --- /dev/null +++ b/content/rc/cloud-accounts/iam-resources/_index.md @@ -0,0 +1,43 @@ +--- +Title: Create IAM resources for AWS cloud accounts +linkTitle: Create IAM resources +description: +weight: $weight +categories: ["RC"] +aliases: /rc/how-to/creating-iam-resources + /rc/cloud-accounts/iam-entities/ + /rc/cloud-accounts/iam-entities.md + + +--- +For most Redis Enterprise Cloud Flexible or Annual subscriptions deployed to Amazon Web Services (AWS), we manage the supporting infrastructure for you in dedicated AWS accounts. + +You can manage this infrastructure with your own AWS accounts. + +You'll want these accounts to be separate from any AWS application accounts +and you'll need to create dedicated [identity and access management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) (IAM) resources to allow us to manage the infrastructure. + +In the new AWS account, you need to create: + +- An **instance role** +- A user with an **access key** +- A role that grants **AWS console access** + +Save the access key in a secure location so that you can enter it when you [register the cloud account]({{}}) with your the Redis Enterprise Cloud subscription. + +{{< warning >}} +We use the provided credentials to configure your AWS environment and provision required resources. + +To make sure that we can manage your AWS resources, you must not: + +- Manually change the configurations of provisioned resources, such as security groups +- Manually stop or terminate provisioned instances +{{< /warning >}} + +For help creating an AWS user, see the [AWS IAM documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html). + +You can use one of the following tools to create IAM resources: + +- [CloudFormation]({{}}) - The AWS automation tool +- [Terraform]({{}}) - Widely supported in the Redis community for additional automation +- The [AWS Console]({{}}) diff --git a/content/rc/how-to/creating-iam-resources/creating-aws-user-redis-enterprise-vpc.md b/content/rc/cloud-accounts/iam-resources/aws-console.md similarity index 68% rename from content/rc/how-to/creating-iam-resources/creating-aws-user-redis-enterprise-vpc.md rename to content/rc/cloud-accounts/iam-resources/aws-console.md index 11b0a44457c..bad982255bb 100644 --- a/content/rc/how-to/creating-iam-resources/creating-aws-user-redis-enterprise-vpc.md +++ b/content/rc/cloud-accounts/iam-resources/aws-console.md @@ -1,33 +1,41 @@ --- -Title: Create IAM resources (AWS) -weight: 30 +Title: Create IAM resources using AWS console +LinkTitle: AWS console +weight: $weight alwaysopen: false categories: ["RC"] aliases: /rv/how-to/creating-aws-user-redis-enterprise-vpc/ + /rc/how-to/creating-aws-user-redis-enterprise-vpc/ + /rc/how-to/creating-aws-user-redis-enterprise-vpc.md + /rc/how-to/creating-iam-resources/creating-aws-user-redis-enterprise-vpc/ + /rc/how-to/creating-iam-resources/creating-aws-user-redis-enterprise-vpc.md + /rc/cloud-accounts/iam-resources/aws-console/ + /rc/cloud-accounts/iam-resources/aws-console.md + --- -To manually create IAM resources using the AWS Console, follow these steps. +To manually create IAM resources using the [AWS console](https://console.aws.amazon.com/), follow these steps. ## Step 1: Create the IAM instance policy First, create a policy to use for the new instance role: -{{< video "/images/rc/create-instance-role-policy.mp4" "Create an instance role policy" >}} + 1. In the AWS IAM console, go to **Policies** > **Create policy**. -1. In the **JSON** tab, paste the contents of the RedisLabsInstanceRolePolicy.json policy file. +1. In the **JSON** tab, paste the contents of the RedisLabsInstanceRolePolicy.json policy file, shown here: {{%expand "View RedisLabsInstanceRolePolicy.json" %}} {{% code-include file="rv/RedisLabsInstanceRolePolicy.json" language="js" %}} {{% /expand%}} -1. Validate it and press **Review Policy**. -1. Enter **RedisLabsInstanceRolePolicy** as the policy name and click **Create Policy**. +1. Validate it and then select **Review Policy**. +1. Enter **RedisLabsInstanceRolePolicy** as the policy name and then select **Create Policy**. ## Step 2: Create the service role -Now create the role that uses the policy: +To create the role that uses the policy: -{{< video "/images/rc/create-cluster-node-role.mp4" "Create a cluster node role" >}} + 1. In the AWS IAM console, go to **Roles** and click **Create Role**. 1. Select **AWS Service** as the trusted entity, **EC2** as the service @@ -40,7 +48,7 @@ Now create the role that uses the policy: Now create a policy to assign to the user: -{{< video "/images/rc/create-instance-user-policy.mp4" "Create an instance user policy" >}} + 1. In the AWS IAM console, go to **Policies** > **Create policy**. 1. In the **JSON** tab, paste the contents of the RedisLabsIAMUserRestrictedPolicy.json policy file. @@ -56,7 +64,7 @@ Now create a policy to assign to the user: Create a user and attach the policy you created: -{{< video "/images/rc/create-programmatic-user.mp4" "Create programmatic user" >}} + 1. In the AWS IAM console, go to **Users** > select **Add user**. 1. Name it `redislabs-user` and check only the **Programmatic access** checkbox. @@ -71,7 +79,7 @@ Create a user and attach the policy you created: Last, create a role and attach the policy you created: -{{< video "/images/rc/create-console-access-role.mp4" "Create console access user" >}} + 1. In the AWS IAM console, go to **Roles** > select **Create role**. 1. Select **Another AWS account**. diff --git a/content/rc/how-to/creating-iam-resources/cloudformation.md b/content/rc/cloud-accounts/iam-resources/cloudformation.md similarity index 58% rename from content/rc/how-to/creating-iam-resources/cloudformation.md rename to content/rc/cloud-accounts/iam-resources/cloudformation.md index cc0aa21a668..aa54a4e9f44 100644 --- a/content/rc/how-to/creating-iam-resources/cloudformation.md +++ b/content/rc/cloud-accounts/iam-resources/cloudformation.md @@ -1,12 +1,15 @@ --- -Title: Create resources (CloudFormation) +Title: Create IAM resources using CloudFormation linkTitle: CloudFormation -Weight: 10 +Weight: $weight categories: ["RC"] alwaysopen: false +aliases: /rc/how-to/creating-iam-resources/cloudformation/ + /rc/how-to/creating-iam-resources/cloudformation.md + /rc/cloud-accounts/iam-resources/cloudformation/ + /rc/cloud-accounts/iam-resources/cloudformation.md --- -The following link uses CloudFormation to create a stack using the AWS console: - +The following link uses [AWS CloudFormation](https://aws.amazon.com/cloudformation/) to create a stack using the AWS console: Launch RedisCloud template @@ -14,46 +17,53 @@ The following link uses CloudFormation to create a stack using the AWS console: You can then use the `Outputs` tab to find the data needed to complete the creation of a Cloud Account. For the `accessSecretKey` (i.e. user's access key) and `consolePassword` (user's console password) you'll have to follow the links to the AWS Secrets Manager service, and use that to find the secret values. These values, being secrets, aren't displayed directly by CloudFormation. -If you prefer to use the AWS CLI then the command you need is shown below, substituting your profile where it says `YOUR_PROFILE_HERE` (or using one of the other methods as per the [AWS CLI docs](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)) +You can use the AWS command-line interface (CLI) if you prefer: -``` +``` shell export AWS_PROFILE=YOUR_PROFILE_HERE aws cloudformation create-stack --stack-name RedisCloud --template-url \ https://s3.amazonaws.com/iam-resource-automation-do-not-delete/RedisCloud.yaml \ --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM ``` +Update the values of `AWS_PROFILE` with your profile credentials. + +Additional options are described in the [AWS CLI docs](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). + You can track the status of the cloud formation with the following command: -``` + +``` console aws cloudformation describe-stacks --stack-name RedisCloud ``` The data needed to complete the creation of a Cloud Account is shown as `Output Key` and `Output Value` pairs. For the two secrets (`accessSecretKey` and `consolePassword`) you'll need to use the AWS secretmanager CLI - the value you'll need has a key of `SecretString`: -``` +``` console aws secretsmanager get-secret-value --secret-id=/redislabsuser/secret_access_key ``` We recommend using yaml output for the `consolePassword`, as it makes decoding the required value easier. -``` +``` console aws secretsmanager get-secret-value --secret-id=/redislabsuser/password --output yaml ``` -The `consolePassword` is a json object containing a single member whose key is `password` and whose value is the password. This can be a bit complex to parse out. Here's an example output: +The `consolePassword` is a JSON object containing a single member whose key is `password` and whose value is the password. This can be a bit complex to parse out. Here's an example output: ``` -tobyferguson@Tobys-work-computer ~ % aws secretsmanager get-secret-value --secret-id=/redislabsuser/password --output yaml -ARN: arn:aws:secretsmanager:us-east-1:913769183952:secret:/redislabsuser/password-qaEMYs +user@example-computer ~ % aws secretsmanager get-secret-value + --secret-id=/redislabsuser/password + --output yaml +ARN: arn:aws:secretsmanager:middle-earth-1:913769183952:secret:/redislabsuser/password-qaEMYs CreatedDate: '2021-06-16T06:27:53.402000-06:00' Name: /redislabsuser/password -SecretString: '{"password":"Pvt1)LFaU3S]*Ee('')oS1ibm3l^Av4"}' -VersionId: 7d10ccdb-d610-4085-9686-15a8df52586f +SecretString: '{"password":"S3cr3tP@$$w0rd"}' +VersionId: 00000000-0000-0000-0000-000000000000 VersionStages: - AWSCURRENT ``` -The json object is the value (less the single quotes) of the `SecretString` key. i.e. it is `{"password":"Pvt1)LFaU3S]*Ee('')oS1ibm3l^Av4"}`. +The JSON object is the value (less the single quotes) of the `SecretString` key. i.e. it is `{"password":"S3cr3tP@$$w0rd"}`. -The password value is the member of that object, less the double quotes: `Pvt1)LFaU3S]*Ee('')oS1ibm3l^Av4` +The password is the value associated with that key (less the double quotes): `S3cr3tP@$$w0rd`. diff --git a/content/rc/cloud-accounts/iam-resources/terraform.md b/content/rc/cloud-accounts/iam-resources/terraform.md new file mode 100644 index 00000000000..cd7619fb97e --- /dev/null +++ b/content/rc/cloud-accounts/iam-resources/terraform.md @@ -0,0 +1,45 @@ +--- +Title: Create IAM resources using Terraform +linkTitle: Terraform +Weight: $weight +categories: ["RC"] +alwaysopen: false +aliases: /rc/how-to/creating-iam-resources/terraform/ + /rc/how-to/creating-iam-resources/terraform.md + /rc/cloud-accounts/iam-resources/terraform/ + /rc/cloud-accounts/iam-resources/terraform.md + +--- +You can use [HashiCorp Terraform](https://www.terraform.io/intro/index.html) to create identity and access management (IAM) resources to support AWS cloud account access to Redis Enterprise Cloud subscriptions. + +The following example uses the `terraform-aws-Redislabs-Cloud-Account-IAM-Resources` module, located in Amazon S3: + + +1. Create a `main.tf` as shown below (update the `profile`, `region`, and `pgp_key` values as appropriate). + + Note that a `pgp_key` is required. For details, see the [Terraform docs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_user_login_profile#pgp_key). + + {{%expand "View terraformIAMTemplate.json" %}} + {{% code-include file="rv/terraformIAMTemplate.json" language="js" %}} + {{% /expand%}} + +2. Initialize Terraform with the module: + + Note: Terraform requires [AWS credentials be supplied](https://www.terraform.io/docs/language/modules/sources.html#s3-bucket), but the source of the module is a public S3 bucket, so any valid credentials should work. Replace the `XXXX` fields below with your relevant values + + ``` + AWS_ACCESS_KEY_ID=XXXX AWS_SECRET_KEY=XXXX terraform init + ``` + +3. Build the resources: + + ``` + terraform apply + ``` + + This displays the required values. To access the sensitive data: + + * accessSecretKey: `echo $(terraform output -raw accessSecretKey)` + * consolePassword: + + `echo $(terraform output -raw consolePassword | base64 --decode | keybase pgp decrypt)` diff --git a/content/rc/concepts/_index.md b/content/rc/concepts/_index.md deleted file mode 100644 index 797450e6168..00000000000 --- a/content/rc/concepts/_index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -Title: Concepts -description: -weight: 40 -alwaysopen: false -categories: ["RC"] -aliases: /rv/concepts/ ---- -This section of pages contains content that describes the main concepts -that Redis Cloud is built around. - -{{< allchildren style="h2" description="true" />}} diff --git a/content/rc/concepts/data-persistence.md b/content/rc/concepts/data-persistence.md deleted file mode 100644 index 4b52919ad93..00000000000 --- a/content/rc/concepts/data-persistence.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -Title: Data Persistence -description: -weight: $weight -alwaysopen: false -categories: ["RC"] -aliases: /rv/concepts/data-persistence/ - /rc/concepts/data-persistence-redis-cloud/ ---- -Redis Cloud supports persisting your data to disk on a per-database basis and in multiple ways. -Unlike a few cloud provider's Redis offerings, -Redis Cloud has two options for persistence, Append Only File (AOF) and Snapshot (RDB). -Data-persistence is always performed over a persistent storage that is attached to the cloud instance (e.g. AWS EBS). -This makes sure that there is no data lost in case of a node failure event -because the new cloud instance will be attached to the existing persistent storage volume. - -Data persistence, via AOF or snapshots, is used solely to restore the -database if it fails. This is necessary as Redis is an in-memory -database and when the process stops, everything in RAM is lost. Data -persistence is optional and can be disabled. - -AOF writes the latest 'write' commands into a file every second. This -file can be "replayed" in order to recover from a crash (not unlike a -traditional RDBMS's redo log). - -A snapshot (RDB) on the other hand, is performed every one, six, or -twelve hours. The snapshot is a dump of the data and, though there is a -possibility of losing up to one hour of data, is dramatically faster to -recover from when compared to AOF recovery time. - -Persistence can be configured either at the time of the database -creation or by editing an existing database's configuration. While the -persistence model can be changed dynamically, just know that it can take -time for your database to switch from one persistence model to the -other. It depends on what you are switching from and to, as well as -the size of your database. - -{{< note >}} -For performance reasons, if you are going to be using AOF, it is -highly recommended you make sure replication is enabled for that -database as well. When these two features are enabled, persistence is done -on the slave instance and does not reduce the performance of the -master. -{{< /note >}} - -## Options for configuring data persistence - -The options for persistence in Redis Cloud are: - -| **Options** | **Description** | -|------------|-----------------| -| None | Data is not persisted to disk at all. | -| Append Only File (AoF) every write | (RC Pro only) Data is fsynced to disk every write. | -| Append Only File (AoF) every 1 second | Data is fsynced to disk every second. | -| Snapshot every 1 hour | A snapshot of the database is created every hour. | -| Snapshot every 6 hours | A snapshot of the database is created every 6 hours. | -| Snapshot every 12 hours | A snapshot of the database is created every 12 hours. | - -First, you should determine if you even need persistence at all. -Persistence is used to recover from a catastrophic failure, so if the -database is only being used as a cache, you may not want to incur the -overhead that comes with using persistence. If you do need persistence, -then you need to identify the best type for your use case. - -## Append Only File (AOF) vs snapshot (RDB) - -Use these details to determine which options best meet your needs: - -| **AOF (Append Only File)** | **RDB (Snapshot)** | -|------------|-----------------| -| More resource intensive | Less resource intensive | -| Provides better durability (recover latest point in time) | Less durable | -| Slower time to recover (Larger files) | Faster recovery time | diff --git a/content/rc/databases/_index.md b/content/rc/databases/_index.md index ac75231247f..763c3404de0 100644 --- a/content/rc/databases/_index.md +++ b/content/rc/databases/_index.md @@ -8,7 +8,7 @@ linktitle: "Databases" aliases: --- -Databases are the heart of any Redis Enterprise Cloud subscription. Here's how to perform a variety of tasks: +Databases are the heart of any Redis Enterprise Cloud subscription. ## Common database tasks @@ -18,6 +18,8 @@ Databases are the heart of any Redis Enterprise Cloud subscription. Here's how - [Delete a database]({{}}) +If you're new to Redis Enterprise Cloud, consider the [Quick Start]({{}}) + ## Additional tasks - [Monitor database performance]({{}}) @@ -30,3 +32,22 @@ Databases are the heart of any Redis Enterprise Cloud subscription. Here's how - [Flush database data]({{}}) +## Configuration details + +These topics provide background details that can help you tailor your databases to better fit your needs. + +- [Clustering Redis databases]({{}}): Redis Enterprise Cloud uses clustering to manage very large databases (25 GB and larger). Learn how to manage clustering and how to use hashing policies to manage the process. + +- [Data eviction policies]({{}}): Data eviction policies control what happens when new data exceeds the memory limits of a database. Learn the available policies and how to control them. + +- [Data persistence]({{}}): Data persistence enables recovery in the event of memory loss or other catastrophic failure. Learn which options are available and how to apply specific settings to individual databases. + +- [High availability and replication]({{}}): Replication allows for automatic failover and greater fault tolerance. It can prevent data loss in the event of a hardware or zone failure. Learn which options are available for Redis Enterprise Cloud subscriptions. + + + + + + + + diff --git a/content/rc/databases/configuration/_index.md b/content/rc/databases/configuration/_index.md new file mode 100644 index 00000000000..2c46ffcf195 --- /dev/null +++ b/content/rc/databases/configuration/_index.md @@ -0,0 +1,20 @@ +--- +Title: Configuration +linkTitle: Configuration +description: Provides background information to help you configure Redis Enterprise Cloud databases to best fit your needs. +weight: 85 +alwaysopen: false +categories: ["RC"] +aliases: /rv/concepts/ + /rc/concepts/ + /rc/administration/configure/ + /rv/administration/configuration/ + /rc/databases/configuration/ + /rc/databases/configuration.md + /rc/databases/configuration/index.html + /rc/databases/configuration/index.md +--- + +Here, you'll find background info and conceptual details to help you customize your Redis Enterprise Cloud databases to meet your needs. + +{{< allchildren style="h2" description="true" />}} diff --git a/content/rc/concepts/clustering.md b/content/rc/databases/configuration/clustering.md similarity index 78% rename from content/rc/concepts/clustering.md rename to content/rc/databases/configuration/clustering.md index e56afe24102..da9616b401f 100644 --- a/content/rc/concepts/clustering.md +++ b/content/rc/databases/configuration/clustering.md @@ -1,22 +1,30 @@ --- Title: Clustering Redis Databases -description: +linkTitle: Clustering +description: Redis Enterprise Cloud uses clustering to manage very large databases (25 GB and larger). Here, you'll learn how to manage clustering and how to use hashing policies to control how data is managed. weight: $weight alwaysopen: false categories: ["RC"] aliases: /rc/concepts/clustering-redis-cloud/ - /rv/concepts/clustering/ + /rv/concepts/clustering/ + /rc/concepts/clustering/ + /rc/concepts/clustering.md + /rc/databases/configuration/clustering/ + /rc/databases/configuration/clustering.md --- -Redis is mostly a single-threaded process. This enables Redis to be high performance and simple (no need for threads synchronization). -To let you take advantage of Redis clustering, -Redis Cloud uses our Redis Enterprise technology to scale Redis databases for you. +For very large databases, Redis Enterprise Cloud distributes database data to different cloud instances. For example: -For example: +- When data grows beyond the the RAM resources of a single server. + + Multiple shards should be used when data grows to 25 GB (50 GB for Redis on Flash) to create multiple shards. -- The dataset is big enough that it would benefit from using the RAM resources of more than one server. - We recommend enabling clustering for the database when the data reaches the size of 25 GB (50 GB for RoF) to create multiple shards. - The operations performed against the database are CPU intensive enough to degrade performance. - With clustering, you can distribute operational load across the same server or multiple servers. + + Clustering distributes operational load, whether to instances on the same server or across multiple servers. + +This distribution is called _clustering_ because it manages the way data is distributed throughout the cluster of nodes that support the database. + +## How data is distributed A Redis Cloud cluster is a set of managed Redis processes and cloud instances, with each process managing a subset of the database keyspace. @@ -24,20 +32,22 @@ Clustering uses multiple cores and resources of multiple instance to overcome sc In a Redis Cloud cluster, the keyspace is partitioned into hash slots. At any given time a slot resides on and is managed by a single -Redis server. An instance that belongs to a cluster can manage multiple -slots. This division of the key space, shown as sharding, is achieved by -hashing the keys' names, or parts of these (key hash tags), in order to +Redis server. + +An instance that belongs to a cluster can manage multiple +slots. This division of the key space, known as _sharding_, is achieved by +hashing the key names, or parts of these (key hash tags), in order to obtain the slot in which a key should reside. -Even while employing multiple Redis processes, the use of a Redis -Cloud cluster is nearly transparent to the application that +Even when using multiple Redis processes, the use of a Redis +Enterprise Cloud cluster is nearly transparent to the application that uses it. The cluster is accessible via a single endpoint that automatically routes all operations to the relevant shards, without the complexity of a cluster-aware Redis client. This allows applications to benefit from using the cluster without performing any code changes, even if they were not designed to use it beforehand. -When creating or editing a Redis database on Redis Cloud, the +When creating or editing a Redis database on Redis Enterprise Cloud, the system automatically calculates the number of shards needed based on the database memory limit and required throughput. @@ -78,11 +88,10 @@ are supported with the following limitations: ## Changing the hashing policy The clustering configuration of a Redis Cloud instance can be -changed. However, hashing policy changes trigger the deletion -(i.e. FLUSHDB) of the data before they can be applied. These changes -are: +changed. However, hashing policy changes delete existing data +(FLUSHDB) before they're applied. These changes include: -1. Changing the hashing policy from standard to custom or vice versa. +1. Changing the hashing policy, either from standard to custom or vice versa. 1. Changing the order of custom hashing policy rules. 1. Adding rules before existing ones in the custom hashing policy. 1. Deleting rules from the custom hashing policy. diff --git a/content/rc/concepts/data-eviction-policies.md b/content/rc/databases/configuration/data-eviction-policies.md similarity index 54% rename from content/rc/concepts/data-eviction-policies.md rename to content/rc/databases/configuration/data-eviction-policies.md index 1adc191a16f..816746a0214 100644 --- a/content/rc/concepts/data-eviction-policies.md +++ b/content/rc/databases/configuration/data-eviction-policies.md @@ -1,11 +1,21 @@ --- -Title: Data Eviction Policies -description: +Title: Data eviction policies +linkTitle: Data eviction +description: Data eviction policies control what happens when new data exceeds the memory limits of a database. Here, you'll learn the available policies and how to change which one is used for a database. weight: $weight alwaysopen: false categories: ["RC"] aliases: /rv/concepts/data-eviction-policies/ + /rc/concepts/data-eviction-policies/ + /rc/concepts/data-eviction-policies.md --- + +The data eviction policy of a database controls what happens when new data exceeds the memory size of a database. Typically, such situations require _evicting_ (or deleting) data previously added to the database. + +To control this behavior, [change the]({{< relref "/rc/databases/view-edit-database.md" >}}) **Data eviction policy** setting for a database. + +## Available policies + For each database, you can choose from these data eviction policies: | **Options** | **Description** | @@ -19,10 +29,10 @@ For each database, you can choose from these data eviction policies: | volatile-ttl | Evicts the shortest time-to-live and least recently used keys out of keys with an "expire" field set | | no eviction | Returns error if memory limit has been reached when trying to insert more data | -Redis Cloud supports [Redis on Flash (RoF)]({{< relref "/rs/concepts/memory-architecture/redis-flash.md" >}}) +Redis Cloud supports [Redis on Flash]({{< relref "/rs/concepts/memory-architecture/redis-flash.md" >}}) (RoF) to prevent data eviction but maintain high performance. -RoF can span your database across RAM and Flash Memory -and intelligently manage hot data in RAM and cold data in Flash memory (SSD). + +RoF can extend your database across RAM and Flash Memory and intelligently manage "hot" (active) data in RAM and "cold" (less active) data in Flash memory (SSD). {{< note >}} [Active-Active Geo-Distributed CRDBs]({{< relref "/rs/administering/designing-production/active-active.md" >}}) always operates in noeviction mode. diff --git a/content/rc/databases/configuration/data-persistence.md b/content/rc/databases/configuration/data-persistence.md new file mode 100644 index 00000000000..c498ed70631 --- /dev/null +++ b/content/rc/databases/configuration/data-persistence.md @@ -0,0 +1,61 @@ +--- +Title: Data persistence +linkTitle: Data persistence +description: Data persistence enables recovery in the event of memory loss or other catastrophic failure. Here, you learn data persistence options, when they're available, and how to apply specific settings to individual databases. +weight: $weight +alwaysopen: false +categories: ["RC"] +aliases: /rv/concepts/data-persistence/ + /rc/concepts/data-persistence-redis-cloud/ + /rc/concepts/data-persistence/ + /rc/concepts/data-persistence.md +--- +Redis Enterprise Cloud can persist data to enable recovery in the event of memory loss or other catastrophic failure. When you enable data persistence, in-memory data is copied to persistent storage attached to the underlying cloud instance. + +## Persistence options + +Data can be persisted in one of two ways: + +- An _Append-Only File_ (AOF) maintains a record (sometimes called a _redo log_ or _journal_) of write operations. This allows the data to be restored by using the record to reconstruct the database up to the point of failure. + + The AOF file records write operations made to the database; it can be updated every second or on every write (_Flexible or Annual plans only_). + + AOF files allow recovery nearly to the point of failure; however, recovery takes longer as the database is reconstructed from the record. + +- Snapshots are copies of the in-memory database, taken at periodic intervals (one, six, or twelve hours). + + Snapshot recovery is faster, however, there's a greater risk of data loss depending on the time between failure and the most recent snapshot. + +AOF files require more resources than snapshots; they provide greater protection (durability) at the cost of resources and recovery time. Snapshots provide faster recovery while risking greater data loss. + +Data persistance can be also disabled. In such cases, data is lost when the database goes down. + +## Configure data persistence + +In Redis Enterprise Cloud, data persistence is a database configuration setting that can be changed by editing your database settings. + +The availability of the setting depends on your [subscription]({{}}): + +- Free subscriptions do not support data persistence; the setting is disabled entirely. + +- For Fixed plans, persistence requires a standard plan and is not available for cache subscriptions. + + Use the **Plan description** setting to determine your subscription type. You might need to change your subscription type to enable data persistence. + +- Flexible and Annual plans enable data persistence settings for every database. + +When enabled, you can change the **Data persistence** setting to one of the following values: + +| **Options** | **Description** | +|------------|-----------------| +| None | Data is not persisted to disk at all. | +| Append Only File (AoF) every write | _(Flexible and Annual subscriptions only)_ Every write is recorded (synchronized to disk using `fsync`) | +| Append Only File (AoF) every 1 second | Record is updated every second (synchronized to disk using `fsync`)| +| Snapshot every 1 hour | A snapshot of the database is created every hour | +| Snapshot every 6 hours | A snapshot of the database is created every 6 hours | +| Snapshot every 12 hours | A snapshot of the database is created every 12 hours | + +When you save changes to data persistence settings, the updates are applied in the background. This means there is a brief delay while the new settings are applied. + +When replication is enabled for a database, persistence is performed against replicas (copies) to reduce performance impact on the primary (_master_) database. + diff --git a/content/rc/databases/high-availability.md b/content/rc/databases/configuration/high-availability.md similarity index 95% rename from content/rc/databases/high-availability.md rename to content/rc/databases/configuration/high-availability.md index 7afbbadc02d..2bafb99a7fd 100644 --- a/content/rc/databases/high-availability.md +++ b/content/rc/databases/configuration/high-availability.md @@ -2,11 +2,13 @@ Title: High availability and replication linkTitle: High availability description: Describes database replication and high availability as it affects Redis Enterprise Cloud. -weight: 90 +weight: $weight alwaysopen: false categories: ["RC"] aliases: /rc/databases/high-availability/ /rc/databases/high-availability.md + /rc/databases/configuration/high-availability/ + /rc/databases/configuration/high-availability.md --- Database replication helps ensure high availability. diff --git a/content/rc/databases/create-database.md b/content/rc/databases/create-database.md index 96306483081..ab488a19ab9 100644 --- a/content/rc/databases/create-database.md +++ b/content/rc/databases/create-database.md @@ -24,7 +24,7 @@ Once you have a subscription, you can easily create a database in Redis Cloud by - Shards - Enter the number of **Shards** you require for the database. - **Replication** - By default, each shard has a slave shard. If you do not require slave shards, disable replication. - - **Data Persistence** - Select when and how the data is saved to [persistent storage]({{< relref "rc/concepts/data-persistence.md" >}}) : + - **Data Persistence** - Select when and how the data is saved to [persistent storage]({{< relref "rc/databases/configuration/data-persistence.md" >}}) : - None - Data is not persisted to disk at all. - Append Only File (AoF) one second - Data is fsynced to disk every second. - Snapshot every 1 hour - A snapshot of the database is created every hour. @@ -55,7 +55,7 @@ between the VPC that this database is on and the VPC that the destination databa - **Periodic Backups** - Enable backups and specify the [database backup]({{< relref "/rc/databases/back-up-data.md" >}}) location. - **Modules** - Enable modules and select the module to use with the database.  - - For applications that require high-throughput, use a Redis Cloud Pro subscription. + - For applications that require high-throughput, use a Redis Cloud Flexible subscription. - For RedisGraph, use the [sizing calculator](https://redislabs.com/redis-enterprise/redis-graph/redisgraph-calculator/) to calculate the required resources. - For RediSearch on a Redis Cloud Flexible (or Annual) subscription, enter the estimated number of documents you want to index. diff --git a/content/rc/databases/flush-data.md b/content/rc/databases/flush-data.md index 6714bb3ae1d..99c2d94eb34 100644 --- a/content/rc/databases/flush-data.md +++ b/content/rc/databases/flush-data.md @@ -4,21 +4,28 @@ description: weight: 80 alwaysopen: false categories: ["RC"] +aliases: /rc/how-to/all-memcached-cloud/ + /rc/how-to/all-memcached-cloud.md + --- -When you _flush_ a database, you remove all data. This is a prerequisite to deleting a database. +The [FLUSHALL](https://redis.io/commands/flushall) command provides a fast way to remove all data from a database. -As you might expect, flushing a database _permanently_ removes all data. The data cannot be recovered, except from backups made before flushing. +To use it, connect your database and then issue the command. -Consequently, we _strongly_ recommend backing up databases before flushing them. +There are several ways to do this, depending on your circumstances and environment. -## Use Redis-CLI to flush data +{{< note >}} +When you _flush_ a database, you remove all data. This is a prerequisite to deleting a database.

-To flush data from a database: +This _permanently_ removes all data from the database. The data cannot be recovered, except by restoring from earlier backups.

-1. Connect to the database with Redis CLI. +We _strongly_ recommend backing up databases before flushing them. +{{}} -2. Use the [FLUSHALL](https://redis.io/commands/flushall) command: +## The Redis-CLI utility + +To use the `redis-cli` utility: ```sh redis-cli -h -p -a flushall @@ -27,5 +34,61 @@ redis-cli -h -p -a flushall Example: ```sh -redis-cli -h redis-12345.c24.us-east-mz-1.ec2.cloud.redislabs.com -p 12345 -a xyz flushall +redis-cli -h redis-12345.server.cloud.redislabs.example.com -p 12345 -a xyz flushall +``` + +## The netcat utility + +If you have shell access to the server hosting your database, you can use the [netcat](https://en.wikipedia.org/wiki/Netcat) (`nc`) to send the `flush_all` command to your database: + +```sh +echo "flush_all" | nc redis-12345.server.cloud.redislabs.example.com 12345 +``` + +## RedisInsight CLI + +If you've installed [RedisInsight]({{}}) and added your database, you can use the RedisInsight command-line interface (CLI) to issue commands: + +1. Start RedisInsight and connect to your database. + +2. From the RedisInsight menu, select **CLI** and wait for the client to connect to your database. + +3. In the command area, enter `flushall` and then press _Enter_. + + {{You can use RedisInsight to issue commands to a database.}}{{< /image >}} + + The 'OK' response indicates that the command executed properly. + +## SASL connection + +If you do not have permission to access the command shell of the server hosting your database or are unable to use RedisInsight, but you have connection credentials and your database supports [Simple Authentication and Security Layer](https://en.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer) connections, you can use an SASL-enabled command-line client. + +For example, suppose you're using Memcached Enterprise Cloud and that your database has SASL enabled. In this case, you can can use the [bmemcached-CLI](https://github.com/RedisLabs/bmemcached-cli) client to connect and issue commands to your database. + +Setup instructions vary according to the environment. Many Linux systems, such as Ubuntu, follow this process: + +```sh +$ wget https://github.com/RedisLabs/bmemcached-cli/archive/master.zip +$ sudo apt-get install unzip python-pip +$ unzip master.zip -d bmemcached-cli +$ cd bmemcached-cli/bmemcached-cli-master/ +$ sudo pip install --upgrade pip +$ sudo pip install . -r requirements.pip +``` + +Adjust as needed for your operating system and configuration. + +When the client is properly installed, you can use it to run the `flush_all` command: + +```sh +bmemcached-cli [user]:[password]@[host]:[port] ``` + +Here's an example: + +```sh +$ bmemcached-cli username:password@redis-12345.server.cloud.redislabs.example.com:12345 +([B]memcached) flush_all +True +exit +``` \ No newline at end of file diff --git a/content/rc/how-to/all-memcached-cloud.md b/content/rc/how-to/all-memcached-cloud.md deleted file mode 100644 index 1acd5d383f5..00000000000 --- a/content/rc/how-to/all-memcached-cloud.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -Title: Using flush_all for Memcached Cloud -description: -weight: $weight -alwaysopen: false -categories: ["RC"] ---- -Follow the instructions below to use flush_all. - -## flush_all for SASL protected Memcached Enterprise cloud databases - -If your resource has SASL authentication enabled, you can't use nc -command or telnet to run flush_all on your Memcached Enterprise Cloud -resource. You have to download a Memcached CLI client that supports -SASL. We recommend to use the bmemcached-CLI client, and the -instructions here is for this client. This instruction refers to Ubuntu -OS. Make the necessary changes if you are using other Linux -flavor. - -```sh -$ wget https://github.com/RedisLabs/bmemcached-cli/archive/master.zip -$ sudo apt-get install unzip python-pip -$ unzip master.zip -d bmemcached-cli -$ cd bmemcached-cli/bmemcached-cli-master/ -$ sudo pip install --upgrade pip -$ sudo pip install . -r requirements.pip -``` - -Now you can run the flush_all command using the bmemcached-cli. The -usage is simple: - -```sh -bmemcached-cli [user]:[password]@[host]:[port] -``` - -usage example: - -```sh -$ bmemcached-cli memcached-app123:x298k37@pub-memcache-1010.us-east-1-3.4.ec2.garantiadata.com:1010 -([B]memcached) flush_all -True -exit -``` - -## flush_all for Memcached Enterprise cloud databases - -```sh -$ telnet memcached-12345.c69.us-east-1-2.ec2.cloud.redislabs.com 12345 -Trying 54.165.69.88... -Connected to memcached-12345.c69.us-east-1-2.ec2.cloud.redislabs.com. -Escape character is '^]'. -flush_all -OK -quit -Connection closed by foreign host. -``` diff --git a/content/rc/how-to/creating-iam-resources/_index.md b/content/rc/how-to/creating-iam-resources/_index.md deleted file mode 100644 index 1648155c235..00000000000 --- a/content/rc/how-to/creating-iam-resources/_index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -Title: Create IAM entities for AWS cloud accounts -linkTitle: Create IAM entities -description: -weight: 30 -categories: ["RC"] ---- -For most Redis Enterprise Cloud Flexible or Annual subscriptions deployed to Amazon Web Services (AWS), we manage the supporting infrastructure for you in dedicated AWS accounts. -Redis Enterprise Cloud Annual subscriptions let you manage this infrastructure with your own AWS accounts. -You'll want these accounts to be separate from any AWS application accounts, -and you'll need to create some dedicated [identity and access management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) (IAM) entities to allow us to manage the infrastructure for you. - -In the new AWS account, you need to create: - -- An **instance role** -- A user with an **access key** -- A role that grants **AWS console access** - -Make sure that you save the access key in a secure location so that you can enter the key when you create the Redis Cloud account. - -{{< warning >}} -We use the provided credentials to configure your AWS environment and provision required resources. - -To make sure that we can manage your AWS resources, you must not: - -- Manually change the configurations of provisioned resources, such as security groups -- Manually stop or terminate provisioned instances -{{< /warning >}} - -For more about creating an AWS user, see the [AWS IAM documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html). - -We offer three methods for creating these IAM resources: - -- Via [CloudFormation]({{}}) - the 'AWS native' automation tool -- Via [Terraform]({{}}) - this has the most extensive support for further automation within the Redis world -- Via the [AWS Console]({{}}) diff --git a/content/rc/how-to/creating-iam-resources/terraform.md b/content/rc/how-to/creating-iam-resources/terraform.md deleted file mode 100644 index 1129a70c1f6..00000000000 --- a/content/rc/how-to/creating-iam-resources/terraform.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -Title: Create IAM resources using Terraform -linkTitle: Terraform -Weight: 20 -categories: ["RC"] -alwaysopen: false ---- -To automate the creation of the IAM resources needed, simply create a template that references the `terraform-aws-Redislabs-Cloud-Account-IAM-Resources` module, located in S3, as instructed below: - - -1. create a `main.tf` as shown below (replacing the `profile`, `region`, and `pgp_key` values for your own: -{{% code-include file="rv/terraformIAMTemplate.json" language="js" %}} - -Notes: -- a `pgp_key` is required. See the [Terraform docs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_user_login_profile#pgp_key) for more details. - -2. Initialize Terraform with the module: - -Note: Terraform requires [AWS credentials be supplied](https://www.terraform.io/docs/language/modules/sources.html#s3-bucket), but the source of the module is a public S3 bucket, so any valid credentials will do! Replace the `XXXX` fields below with your relevant values - -``` -AWS_ACCESS_KEY_ID=XXXX AWS_SECRET_KEY=XXXX terraform init -``` - -3. Build the resources: - -``` -terraform apply -``` -This will output the various data you need; although, you'll have to access the sensitive data thus: - -* accessSecretKey: `echo $(terraform output -raw accessSecretKey)` -* consolePassword: ` -echo $(terraform output -raw consolePassword | base64 --decode | keybase pgp decrypt)` diff --git a/content/rc/how-to/multiple-accounts.md b/content/rc/how-to/multiple-accounts.md deleted file mode 100644 index dd5551f8dd8..00000000000 --- a/content/rc/how-to/multiple-accounts.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -Title: Member of multiple accounts -description: -weight: $weight -alwaysopen: false -categories: ["RC"] ---- -You can be a member of multiple accounts in Redis Cloud. -For example, if you created your own account and your company has arranged its subscriptions into multiple accounts (Dev, -Test, and Prod) that you are a member of. - -When you open the Redis Cloud menu, you see a menu like the screenshot below. -When you click on the arrow, you see all of the accounts you are a member of, and you can switch between the accounts. -The permissions for each account are defined by the role you are assigned by the account owner. - -![account_multiple_teams](/images/rc/account_multiple_teams.png) diff --git a/content/rc/how-to/view-edit-cloud-account.md b/content/rc/how-to/view-edit-cloud-account.md deleted file mode 100644 index 18094e7774c..00000000000 --- a/content/rc/how-to/view-edit-cloud-account.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -Title: Create and edit a Cloud Account -description: -weight: 20 -alwaysopen: false -categories: ["RC"] -aliases: /rv/how-to/view-edit-cloud-account/ - /rv/how-to/creating-cloud-account/ - /rc/how-to/creating-cloud-account/ ---- - -Many customers use cloud provider accounts provisioned and maintained by Redis Labs. - -Customers with existing Amazon Web Services accounts can provision their Flexible or Annual subscriptions to use their existing AWS accounts. - -To do so, you associate your existing AWS account as a _cloud account_ for your subscription, which requires entering credentials to enable monitoring, maintenance, and technical support. - -You need to create: - -1. A programmatic user and provide us with the access key and secret access key for that user. -1. A console role and provide us with that role name. - -To create or edit a cloud account in Redis Cloud: - -1. Sign into the admin console and then select the target subscription. - -1. From the console menu, select **Cloud Accounts** and then either: - - - Select the ![Add](/images/rs/icon_add.png#no-click "Add") to add a new account. - - - Select the account that you want to edit and then select **Edit**. - -1. Enter the cloud account details, which include: - - - **Account Name** - A meaningful name for the account - - **AWS_ACCESS_KEY_ID** - The AWS access key for the programmatic user - - **AWS_SECRET_ACCESS_KEY** - The AWS secret access key for the programmatic user - - **IAM Role Name** - The name of the console role with access to the console - -1. Select **Save**. - -Use the **Delete** button to remove a cloud account from your subscription. diff --git a/content/rc/rc-quickstart.md b/content/rc/rc-quickstart.md index fc2f72940f1..9a47cdc3d01 100644 --- a/content/rc/rc-quickstart.md +++ b/content/rc/rc-quickstart.md @@ -170,12 +170,10 @@ Here's how to connect to your database using the `redis-py` library for Python. bar ``` - - ## More info -- [Manage Databases]({{< relref "/rc/databases/_index.md" >}}) -- [Data Persistence with Redis Cloud]({{< relref "rc/concepts/data-persistence.md" >}}) -- [Secure Your Redis Cloud Database]({{< relref "/rc/administration/security/_index.md" >}}) +- [Manage databases]({{< relref "/rc/databases/_index.md" >}}) +- [Data persistence]({{< relref "/rc/databases/configuration/data-persistence.md" >}}) +- [Secure your Redis Enterprise Cloud database]({{< relref "/rc/administration/security/_index.md" >}}) - [Back-up Flexible databases]({{< relref "/rc/databases/back-up-data.md" >}}) -- [Monitor Redis Cloud Performance]({{< relref "/rc/databases/monitor-performance.md" >}}). +- [Monitor Redis Enterprise Cloud performance]({{< relref "/rc/databases/monitor-performance.md" >}}). diff --git a/content/rc/security/database-security/encryption-at-rest.md b/content/rc/security/database-security/encryption-at-rest.md index cec8747b07c..60103778bd1 100644 --- a/content/rc/security/database-security/encryption-at-rest.md +++ b/content/rc/security/database-security/encryption-at-rest.md @@ -5,7 +5,7 @@ weight: 40 alwaysopen: false categories: ["RC"] --- -Redis Cloud databases write their data to disk whenever [persistence]({{}}) is enabled. +Redis Cloud databases write their data to disk whenever [persistence]({{}}) is enabled. On [Google Cloud Platform](#gcp) (GCP) and [Microsoft Azure](#azure), Redis Cloud deployments are always encrypted at rest. diff --git a/content/rc/subscriptions/create-flexible-subscription.md b/content/rc/subscriptions/create-flexible-subscription.md index d8bb53efb9b..64c6f2efbdb 100644 --- a/content/rc/subscriptions/create-flexible-subscription.md +++ b/content/rc/subscriptions/create-flexible-subscription.md @@ -49,7 +49,7 @@ There are three sections on this tab: | **Cloud Vendor** | The public cloud provider | | **Region(s)** | The cloud region for your subscription | | **Multi-AZ** | Whether in-memory data is replicated to another zone within the deployment region. For best results, choose a region with at least three availability zones.| -| **Cloud Account** | (_AWS_) Credentials allowing Redis Cloud to be deployed to an existing AWS account. See [Create and Edit a Cloud Account]({{< relref "/rc/how-to/view-edit-cloud-account.md" >}})| +| **Cloud Account** | (_AWS_) Credentials allowing Redis Cloud to be deployed to an existing AWS account. See [Manage cloud accounts]({{< relref "/rc/cloud-accounts/" >}})| ### Advanced options {#advanced-options} diff --git a/content/rc/subscriptions/view-flexible-subscription.md b/content/rc/subscriptions/view-flexible-subscription.md index 3679fb5375d..6388cf04f10 100644 --- a/content/rc/subscriptions/view-flexible-subscription.md +++ b/content/rc/subscriptions/view-flexible-subscription.md @@ -25,7 +25,7 @@ Two tabs are available: |:---------|:--------------| | **Subscription name** | A descriptive name for the plan; can be changed at any time.| | **Runs on** | Either _RAM_ or _RAM+Flash_ | - | **Cloud account** | (_AWS only_) Descriptive name of the associated cloud account (Useful for organizations that manage [multiple accounts]({{}})) | + | **Cloud account** | (_AWS only_) Descriptive name of the associated cloud account (Useful for organizations that manage [multiple accounts]({{}})) | | **Cloud** | Describes the subscription cloud provider | | **Region** | Deployment region details | | **Multi-AZ** | Indicates whether replication is deployed across multiple availability zones within the region | diff --git a/content/rs/administering/designing-production/networking/using-oss-cluster-api.md b/content/rs/administering/designing-production/networking/using-oss-cluster-api.md index 3965b205f77..ef599fceaae 100644 --- a/content/rs/administering/designing-production/networking/using-oss-cluster-api.md +++ b/content/rs/administering/designing-production/networking/using-oss-cluster-api.md @@ -16,7 +16,7 @@ Before you enable Redis OSS Cluster API for a database, make sure that: - The database proxy policy does not use node `include` or `exclude`. When you enable the Redis OSS Cluster API from the command line or RS admin console, -[multi-key commands]({{< relref "/rc/concepts/clustering#multikey-operations" >}}) are only allowed when all keys are mapped to the same slot. +[multi-key commands]({{< relref "/rc/databases/configuration/clustering#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 in the [multi-key command]({{< relref "/rs/concepts/high-availability/clustering#multikey-operations" >}}). ## Enabling OSS Cluster API support from the admin console diff --git a/layouts/partials/home/options.html b/layouts/partials/home/options.html index b896d17dec5..171e6b1ab65 100644 --- a/layouts/partials/home/options.html +++ b/layouts/partials/home/options.html @@ -10,12 +10,12 @@
Cloud
@@ -34,8 +34,8 @@
Software
  • Architecture
  • -
  • Getting - Started
  • +
  • Get + started
  • Administration
  • @@ -53,12 +53,12 @@
    RedisInsight
    diff --git a/layouts/partials/mini-toc.html b/layouts/partials/mini-toc.html index 549fc576d38..988e5602047 100644 --- a/layouts/partials/mini-toc.html +++ b/layouts/partials/mini-toc.html @@ -2,9 +2,10 @@ {{ $headers := findRE "(.|\n])+?" .Content }} {{ $has_headers := ge (len $headers) 1 }} +{{ $min_word_count := 250 }} -{{ if and (gt .WordCount 400 ) (ne .Params.toc "false") $has_headers }} +{{ if and (gt .WordCount $min_word_count ) (ne .Params.toc "false") $has_headers }}