Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RC Packaging: Split create databases into 3 and implement Essentials flow #3203

Merged
merged 11 commits into from
Mar 21, 2024
22 changes: 22 additions & 0 deletions content/embeds/rc-create-db-first-steps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Before creating a Redis Cloud database, you need to [create an account]({{< relref "rc/rc-quickstart.md" >}}).

To create a database in your Redis Cloud account:

1. Sign in to the [Redis Cloud console](https://app.redislabs.com).

2. Select the **New database** button.

{{<image filename="images/rc/button-database-new.png" alt="The New Database button creates a new database." width="120px">}}{{< /image >}}

This displays the **Create database** screen.

3. Select your Redis use case. There are four pre-defined use cases:

{{<image filename="images/rc/create-database-redis-use-cases.png" alt="The Redis Use case panel" width="120px">}}{{< /image >}}

- **Cache**: Stores short-term or volatile data. Can be used for session management, semantic cache, session store, and other uses where data is short-lived.
- **Database**: Stores durable and consistent data. Can be used for document databases, feature storage, gaming leaderboards, durable caches, and other uses where your data needs to be highly available and persistent.
- **Vector search**: Manages and manipulates vector data. Can be used for Generative AI, recommendation systems, visual search, and other uses where you can search and query your data.
- **Custom**: If your Redis use case doesn't match any of the other use cases, you can choose this option to customize all of your settings.

Select the use case that best matches your Redis use case. You can always change the settings later. See [Use case settings](#use-case-settings) to view the settings for each use case.
29 changes: 29 additions & 0 deletions content/embeds/rc-pro-use-cases-billing-units.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Use case settings

The following table shows the default use case settings for a Pro database.

| **Type** | High Availability | Data Persistence | Capabilities | Eviction Policy |
|---|---|---|---|---|
| **Cache** | Single-zone | None | None | `volatile-lru` |
| **Database** | Multi-zone | Append-only file every 1 sec | Search & query, JSON, Probabilistic, Time Series | None |
| **Vector Search** | Multi-zone | Append-only file every 1 sec | Search & query, JSON | None |
| **Custom** | Single-zone | Append-only file every 1 sec | None | None |

## Billing Unit types

The Redis Billing Unit types associated with your Pro subscription depend on your database memory size and throughput requirements.

| Shard type | Capacity (Memory/Throughput) |
|:------------|:----------|
| Micro | 1GB / 1K ops/sec |
| High-throughput | 2.5GB / 25K ops/sec |
| Small | 12.5GB / 12.5K ops/sec |
| Large | 25GB / 25K ops/sec |
| Very large<sup>[1](#table-note-1)</sup> | 50GB / 5K ops/sec |
| XLarge<sup>[2](#table-note-2)</sup> | 50GB / 10K ops/sec |

1. <a name="table-note-1" style="display: block; height: 80px; margin-top: -80px;"></a>Used for databases with Auto Tiering before Redis 7.2.

2. <a name="table-note-2" style="display: block; height: 80px; margin-top: -80px;"></a>Used for hosted databases with Auto Tiering for Redis 7.2 and later.

Prices vary according to the cloud provider and region. Minimum prices apply. To learn more, see [Cloud pricing](https://redis.com/redis-enterprise-cloud/pricing/).
2 changes: 1 addition & 1 deletion content/rc/api/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ You can use the API to:

1. [Manage subscriptions]({{< relref "/rc/api/examples/manage-subscriptions.md" >}})
1. Database examples
1. [Create database]({{< relref "/rc/api/examples/create-database.md" >}})
1. [Create database]({{< relref "/rc/api/examples/create-database" >}})
1. [Update database]({{< relref "/rc/api/examples/update-database.md" >}})
1. [Back up and import data]({{< relref "/rc/api/examples/back-up-and-import-data.md" >}})
1. [Manage cloud accounts]({{< relref "/rc/api/examples/manage-cloud-accounts.md" >}})
Expand Down
2 changes: 1 addition & 1 deletion content/rc/api/examples/update-database.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ aliases: /rv/api/how-to/update-databases/

The API operation that updates an existing database is: `PUT /subscriptions/{subscription-id}/databases/{database-id}`

This API operation uses the same [provisioning lifecycle]({{< relref "/rc/api/get-started/process-lifecycle.md" >}}) as the [create database]({{< relref "/rc/api/examples/create-database.md" >}}) operation. The examples in this article refer to Redis Cloud Pro databases.
This API operation uses the same [provisioning lifecycle]({{< relref "/rc/api/get-started/process-lifecycle.md" >}}) as the [create database]({{< relref "/rc/api/examples/create-database" >}}) operation. The examples in this article refer to Redis Cloud Pro databases.

## Database update request JSON body

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ To set up a Redis Cloud instance for Bedrock, you need to:

{{<image filename="images/rc/subscription-new-flexible-version-section.png" alt="Version selection between Redis 6.2 and 7.2" >}}{{< /image >}}

1. In the **Advanced options** section, select Multi-AZ to ensure [high-availability]({{<relref "rc/databases/configuration/high-availability.md">}}).
1. In the **Advanced options** section, select Multi-AZ to ensure [high-availability]({{<relref "rc/databases/configuration/high-availability">}}).

{{<image filename="images/rc/subscription-new-flexible-advanced-multi-az.png" width="75%" alt="The Multi-AZ toggle set to on." >}}{{< /image >}}

Expand Down
2 changes: 1 addition & 1 deletion content/rc/cloud-integrations/confluent-cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ You can send data from [Confluent Cloud](https://confluent.cloud/) to your Redis

Before you add the Redis Sink Confluent connector to your Confluent Cloud cluster:

1. [Create a database]({{<relref "rc/databases/create-database.md">}}) in the same region as your Confluent Cloud cluster.
1. [Create a database]({{<relref "rc/databases/create-database">}}) in the same region as your Confluent Cloud cluster.

1. If you decide to [enable Transport Layer Security (TLS)]({{<relref "/rc/security/database-security/tls-ssl">}}) for your Redis database, [download the server certificate]({{<relref "/rc/security/database-security/tls-ssl#download-certificates">}}) from the Redis Cloud console and [encode it](#encode-server-certificate) to be used with Confluent Cloud.

Expand Down
38 changes: 22 additions & 16 deletions content/rc/databases/_index.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,64 @@
---
Title: Manage databases
description:
weight: 35
weight: 20
alwaysopen: false
categories: ["RC"]
linktitle: "Databases"
aliases:
---

Databases are the heart of any Redis Cloud subscription.
Databases are the heart of any Redis Cloud deployment.

Here's how to perform a variety of tasks:

## Common database tasks

- [Create a database]({{<relref "rc/databases/create-database.md">}})
- [Create a database]({{<relref "rc/databases/create-database">}})

- [View and edit databases]({{<relref "rc/databases/view-edit-database.md">}})
- [Create an Essentials database]({{<relref "/rc/databases/create-database/create-essentials-database">}})
- [Create a Pro database with a new subscription]({{<relref "/rc/databases/create-database/create-pro-database-new">}})
- [Create a Pro database in an existing subscription]({{<relref "/rc/databases/create-database/create-pro-database-existing">}})

- [Delete database]({{<relref "rc/databases/delete-database.md">}})
- [View and edit databases]({{<relref "rc/databases/view-edit-database">}})

- [Delete database]({{<relref "rc/databases/delete-database">}})

If you're new to Redis Cloud, see the [Quick Start]({{<relref "rc/rc-quickstart">}}).

## Additional tasks

- [Monitor database performance]({{<relref "rc/databases/monitor-performance.md">}})
- [Monitor database performance]({{<relref "rc/databases/monitor-performance">}})

- [Import data into databases]({{<relref "rc/databases/import-data.md">}})
- [Import data into databases]({{<relref "rc/databases/import-data">}})

- [Back up databases]({{<relref "rc/databases/back-up-data.md">}})
- [Back up databases]({{<relref "rc/databases/back-up-data">}})

- [Secure database access]({{<relref "rc/security/database-security/_index.md">}})
- [Secure database access]({{<relref "rc/security/database-security/">}})

- [Flush database data]({{<relref "rc/databases/flush-data.md">}})
- [Flush database data]({{<relref "rc/databases/flush-data">}})

## Configuration details

These topics provide background details that can help you tailor your databases to better fit your needs.

- [Clustering Redis databases]({{<relref "rc/databases/configuration/clustering.md">}}): Redis 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.
- [Clustering Redis databases]({{<relref "rc/databases/configuration/clustering">}}): Redis 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]({{<relref "rc/databases/configuration/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 eviction policies]({{<relref "rc/databases/configuration/data-eviction-policies.md">}}): 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]({{<relref "rc/databases/configuration/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.

- [Data persistence]({{<relref "rc/databases/configuration/data-persistence.md">}}): 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]({{<relref "rc/databases/configuration/high-availability">}}): 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 Cloud subscriptions.

- [High availability and replication]({{<relref "rc/databases/configuration/high-availability.md">}}): 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 Cloud subscriptions.
- [Advanced Capabilities]({{<relref "rc/databases/configuration/advanced-capabilities">}}): Advanced capabilities extend Redis database functionality by adding new data types and options. Learn about the advanced capability options that are available for your database.

## Compatibility

Although Redis Cloud follows open source Redis specifications, it does not support certain commands. Instead of using these commands, Redis Cloud automatically handles features like replication and lets you [manage your database]({{<relref "/rc/databases">}}) from the [Redis Cloud console](https://app.redislabs.com/) or [Redis Cloud REST API]({{<relref "/rc/api">}}).
Redis Cloud does not support certain commands. Instead of using these commands, Redis Cloud automatically handles features like replication and lets you [manage your database]({{<relref "/rc/databases">}}) from the [Redis Cloud console](https://app.redislabs.com/) or [Redis Cloud REST API]({{<relref "/rc/api">}}).

For more details, see:

- [Redis Enterprise compatibility with open source Redis]({{<relref "/rs/references/compatibility">}})
- [Redis Cloud compatibility]({{<relref "/rc/compatibility">}})

- [Command compatibility]({{<relref "/rs/references/compatibility/commands">}})

Expand Down
50 changes: 50 additions & 0 deletions content/rc/databases/configuration/advanced-capabilities.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
Title: Advanced capabilities
description: Describes Redis Cloud Advanced capability options
weight: $weight
alwaysopen: false
toc: "true"
headerRange: "[1-3]"
categories: []
aliases:
---

Advanced capabilities extend Redis database functionality by adding new data types and options.

Available options depend on your database plan and **Type**.

## Redis Cloud Essentials {#essentials}

All Redis Cloud Essentials databases support [Redis Stack](https://redis.io/docs/stack/), which enables the most frequently used capabilities.

{{<image filename="images/rc/new-database-general-type-free-stack.png" alt="For Essentials, the Type setting in the General section includes an option for Redis Stack." width="75%">}}{{< /image >}}

When the database **Type** is set to _Redis Stack_, the Advanced capabilities section of the database details page displays the advanced capabilities included with the database and their versions.

{{<image filename="images/rc/database-details-modules-stack-free.png" alt="For Essentials, the Database details page lists the capabilities and versions added by Redis Stack." width="75%">}}{{< /image >}}

Redis Cloud is updated on a regular basis, which includes the advanced capabilities supported by the service. Versions displayed by the admin console may vary from those shown above. For the latest details of any capability, see [Redis Stack and Redis Enterprise]({{<relref "/stack">}}).

## Redis Cloud Pro advanced capability options {#pro}

Redis Cloud Pro lets you choose advanced capabilities for each database.

{{<image filename="images/rc/database-details-redis-module-select-flexible.png" alt="For Pro databases, you can select the capabilites included in your database." width="75%">}}{{< /image >}}

You can select more than one advanced capability for a database, though there are limits:

- The following advanced capabilities can be combined in Pro databases:

- Search and query
- JSON
- Time series
- Probabilistic

- Graph cannot be combined with other capabilities.
- JSON is the only capability supported for [Active-Active databases]({{<relref "rc/subscriptions/create-active-active-subscription">}}).

You don't have to combine capabilities. To remove a selected capability, either clear the checkbox in the menu or select its **Delete** icon.

<nobr>{{<image filename="images/rc/icon-checkbox-clear.png" alt="To remove a selected capability, clear the checkbox in the menu." width="30px">}}{{< /image >}}&nbsp;{{<image filename="images/rc/icon-module-delete.png" alt="You can also use the delete icon to remove a capability." width="30px">}}{{< /image >}}</nobr>

To learn more, see [Redis Stack](https://redis.io/docs/stack/) and [Redis Stack and Redis Enterprise]({{<relref "/stack">}}).
37 changes: 37 additions & 0 deletions content/rc/databases/configuration/clustering.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,3 +163,40 @@ their order to suit your application's requirements.
1. The following flag is enabled in our regular expression parser:
- **PCRE_ANCHORED:** the pattern is constrained to match only at
the start of the string which is being searched.

## Dataset size

The dataset size represents the maximum amount of memory for the database, which includes data values, keys, module data, and overhead for specific features. High availability features, such as replication and Active-Active, increase memory consumption.

Here are some general guidelines:

- Memory limit represents an upper limit. You cannot store more data than the memory limit. Depending on your other selections, available memory for data may be less than expected.

- [Replication](HA LINK) doubles memory consumption; that is, 512MB of data requires at least 1GB of memory limit when replication is enabled. This affects both Redis Cloud Pro and Redis Cloud Essentials. For example, if you subscribe to a 1 GB Essentials plan, Redis will allocate 512 MB for your dataset and the other 512 MB for replication.

- Active-Active also doubles memory consumption and the effect is cumulative with replication's impact. Since Active-Active requires replication to be turned on, the memory limit impact can be as large as four times (4x) the original data size.

- Advanced capabilities also consume memory.

Memory limits in Redis Cloud are subject to the same considerations as Redis Enterprise Software; to learn more, see [Database memory limits]({{< relref "/rs/databases/memory-performance/memory-limit.md" >}}).

## Throughput

Throughput is the amount of operations a database can handle over a certain period of time. For most Redis Cloud databases, throughput is defined in operations per second (ops/sec).

For a Redis Cloud Pro subscription, you define throughput for a database when you create it. For a Redis Cloud Essentials subscription, your maximum throughput depends on your plan.

We assume a typical workload that includes a different mix of commands and an average key and value size of 1KB. Therefore, your actual throughput may be higher or lower than the throughput you set when you create your database. The following properties can affect your database's throughput:
- **Command complexity**: O(N) and O(log(N)) commands will take more time than O(1) commands, and will affect throughput accordingly.
- **Key and value sizing**: If your database's keys and values are very large, your actual throughput may be lower than expected. If the keys and values are smaller than the typical workload, the actual throughput might be higher than expected.
- **Replication**: Using [multi-zone replication]({{<relref "rc/databases/configuration/high-availability">}}) affects throughput as each write operation is executed asynchronously in each zone.
- **Security**: Some security options, such as [transport layer security]({{< relref "/rc/security/database-security/tls-ssl" >}}), may affect throughput.
- **Number of client connections**: The number of client connections affects throughput. Increasing or decreasing the number of client connections can result in higher or lower throughput.

## OSS Cluster API

{{< embed-md "oss-cluster-api-intro.md" >}}

The OSS Cluster API is only supported on Redis Cloud Pro databases. You can enable it in the Scalability section of the configuration screen.

Review [Redis OSS Cluster API architecture]({{< relref "/rs/clusters/optimize/oss-cluster-api" >}}) to determine if you should enable this feature for your database.
20 changes: 20 additions & 0 deletions content/rc/databases/configuration/high-availability.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,26 @@ This means you can't convert a multi-zone subscription to a single zone (or vice

To use different zone settings, create a new subscription with the preferred settings and then [migrate data]({{<relref "/rc/databases/migrate-databases.md">}}) from the original subscription.

## Availability zones

You can reduce network transfer costs and network latency by ensuring your Redis Cloud cluster and your application are located in the same availability zone.

To specify the availability zone for your cluster, select *Manual Selection* under **Allowed Availability Zones**.

For Google Cloud clusters and [self-managed AWS cloud accounts]({{< relref "/rc/cloud-integrations/aws-cloud-accounts/" >}}), select an availability zone from the **Zone name** list.

{{<image filename="images/rc/availability-zones-no-multi-az.png" width="95%" alt="Select one availability zone when Multi-AZ is turned off." >}}{{< /image >}}

For all other AWS clusters, select an availability zone ID from the **Zone IDs** list. For more information on how to find an availability zone ID, see the [AWS docs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones).

{{<image filename="images/rc/availability-zones-aws-hosted-no-multi-az.png" width="80%" alt="For hosted AWS clusters, select availability zone IDs from the Zone IDs list." >}}{{< /image >}}

If **Multi-AZ** is enabled, you must select three availability zones from the list.

{{<image filename="images/rc/availability-zones-multi-az.png" width="80%" alt="Select Manual selection to select three availability zones when Multi-AZ is enabled." >}}{{< /image >}}

For more information on availability zones, see the [Google Cloud docs](https://cloud.google.com/compute/docs/regions-zones/#available) or the [AWS docs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones).

## More info

To learn more about high availability and replication, see:
Expand Down
Loading
Loading