From afa7561cc2026fbca8d26d9846cc0ca8c7b7a52d Mon Sep 17 00:00:00 2001 From: "David W. Dougherty" Date: Wed, 3 Apr 2024 14:09:20 -0700 Subject: [PATCH 1/2] LRC-299: link fixes throughout RO&S > RE&RS pages --- .../stack-with-enterprise/json/_index.md | 2 +- .../stack-with-enterprise/search/_index.md | 16 ++++++++-------- .../search/redisearch-2-upgrade.md | 2 +- .../stack-with-enterprise/timeseries/_index.md | 10 +++++----- .../stack-with-enterprise/timeseries/commands.md | 14 +++++++------- .../triggers-functions/_index.md | 2 +- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md b/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md index 42a227934..50fa9a1b7 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md @@ -69,7 +69,7 @@ You can only use the [legacy path syntax](#legacy-path-syntax) to access JSON ke You can index, search, and query stored JSON documents. -For more information about how to search and query JSON documents, see the [quick start]({{< relref "/develop/interact/search-and-query/indexing/" >}}). +For more information about how to search and query JSON documents, see the [quick start]({{< relref "/develop/get-started/document-database/" >}}). ## JSON in Active-Active databases diff --git a/content/operate/oss_and_stack/stack-with-enterprise/search/_index.md b/content/operate/oss_and_stack/stack-with-enterprise/search/_index.md index a5ff946e3..ca12dcf7d 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/search/_index.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/search/_index.md @@ -21,19 +21,19 @@ The search and query engine indexes documents, which are objects that represent As the documents in your database change, the index automatically processes these changes to keep the search results up to date. With indexes, you can do: -- Language-aware [fuzzy matching]({{< relref "/develop/interact/search-and-query/advanced-concepts/query_syntax" >}}) -- Fast [auto-complete]({{< relref "/develop/interact/search-and-query/administration/overview" >}}) -- [Exact phrase matching]({{< relref "/develop/interact/search-and-query/advanced-concepts/query_syntax" >}}) -- [Numeric filtering]({{< relref "/develop/interact/search-and-query/advanced-concepts/query_syntax" >}}#numeric-filters-in-query) -- [Geo-radius queries]({{< relref "/develop/interact/search-and-query/advanced-concepts/query_syntax" >}}#geo-filters-in-query) +- Language-aware [fuzzy matching]({{< baseurl >}}/develop/interact/search-and-query/advanced-concepts/query_syntax#fuzzy-matching) +- Fast [auto-complete]({{< baseurl >}}/develop/interact/search-and-query/administration/overview#auto-complete) +- [Exact phrase matching]({{< baseurl >}}/develop/interact/search-and-query/advanced-concepts/query_syntax) +- [Numeric filtering]({{< baseurl >}}/develop/interact/search-and-query/advanced-concepts/query_syntax#numeric-filters-in-query) +- [Geo-radius queries]({{< baseurl >}}/develop/interact/search-and-query/advanced-concepts/query_syntax#geo-filters) ## Supported document types -You can store documents as Redis [hashes]({{< relref "/develop/data-types/" >}}) or [JSON](http://www.json.org/). To search and query JSON documents, you also need to enable [JSON]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json" >}}) in your database. +You can store documents as Redis [hashes]({{< relref "/develop/data-types/hashes" >}}) or [JSON]({{< relref "/develop/data-types/json" >}}). To search and query JSON documents, you also need to enable [JSON]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json" >}}) in your database. ### Hash documents -With Redis [hashes]({{< relref "/develop/data-types/" >}}), each document is assigned to a single key and uses field-value pairs to represent the document's contents. +With Redis [hashes]({{< relref "/develop/data-types/hashes" >}}), each document is assigned to a single key and uses field-value pairs to represent the document's contents. You can run [`HGETALL`]({{< relref "/commands" >}}/hgetall/) to retrieve the entire hash document. @@ -41,7 +41,7 @@ You can run [`HGETALL`]({{< relref "/commands" >}}/hgetall/) to retrieve the ent You can index, search, and query JSON documents stored in your database. -For more information about how to search and query JSON documents, see the [quick start]({{< relref "/develop/interact/search-and-query/indexing/" >}}). +For more information about how to search and query JSON documents, see the [quick start]({{< relref "/develop/get-started/document-database" >}}). ## Search features diff --git a/content/operate/oss_and_stack/stack-with-enterprise/search/redisearch-2-upgrade.md b/content/operate/oss_and_stack/stack-with-enterprise/search/redisearch-2-upgrade.md index c88ac861c..678140b76 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/search/redisearch-2-upgrade.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/search/redisearch-2-upgrade.md @@ -59,7 +59,7 @@ To replicate a RediSearch 1.x database to a RediSearch 2.x database: ### Add RediSearch 2.x to the cluster {#add-new-module} -1. Download the RediSearch 2.x module package from the [Redis Download Center](https://redis.com/redis-enterprise-software/download-center/modules/). +1. Download the RediSearch 2.x module package from the [Redis Download Center](https://redis.io/downloads). 1. In the Redis Enterprise admin console, select **settings**. diff --git a/content/operate/oss_and_stack/stack-with-enterprise/timeseries/_index.md b/content/operate/oss_and_stack/stack-with-enterprise/timeseries/_index.md index 116b2db72..a96ac5a0f 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/timeseries/_index.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/timeseries/_index.md @@ -30,7 +30,7 @@ Each sample is a tuple of the time and the value of 128 bits, ## Time series capabilities -Redis Stack provides a new data type that uses chunks of memory of fixed size for time series samples, indexed by the same Radix Tree implementation as Redis streams. With streams, you can create [a capped stream]({{< relref "/commands" >}}/xadd), effectively limiting the number of messages by count. For time series, you can apply a retention policy in milliseconds. This is better for time series use cases, because they are typically interested in the data during a given time window, rather than a fixed number of samples. +Redis Stack provides a new data type that uses chunks of memory of fixed size for time series samples, indexed by the same Radix Tree implementation as Redis streams. With streams, you can create [a capped stream]({{< baseurl >}}/develop/data-types/streams/#capped-streams), effectively limiting the number of messages by count. For time series, you can apply a retention policy in milliseconds. This is better for time series use cases, because they are typically interested in the data during a given time window, rather than a fixed number of samples. ### Downsampling/compaction @@ -38,13 +38,13 @@ Redis Stack provides a new data type that uses chunks of memory of fixed size fo | --- | --- | | {{< image filename="/images/rs/TimeSeries-downsampling1.png" >}} | {{< image filename="/images/rs/TimeSeries-downsampling2.png" >}} | -If you want to keep all of your raw data points indefinitely, your data set grows linearly over time. However, if your use case allows you to have less fine-grained data further back in time, downsampling can be applied. This allows you to keep fewer historical data points by aggregating raw data for a given time window using a given aggregation function. Time series support [downsampling]({{< relref "/develop/data-types/timeseries/quickstart" >}}) with the following aggregations: avg, sum, min, max, range, count, first, and last. +If you want to keep all of your raw data points indefinitely, your data set grows linearly over time. However, if your use case allows you to have less fine-grained data further back in time, downsampling can be applied. This allows you to keep fewer historical data points by aggregating raw data for a given time window using a given aggregation function. Time series support [downsampling]({{< baseurl >}}/develop/data-types/timeseries/quickstart#aggregation) with the following aggregations: avg, sum, min, max, range, count, first, and last. ### Secondary indexing When using Redis’ core data structures, you can only retrieve a time series by knowing the exact key holding the time series. Unfortunately, for many time series use cases (such as root cause analysis or monitoring), your application won’t know the exact key it’s looking for. These use cases typically want to query a set of time series that relate to each other in a couple of dimensions to extract the insight you need. You could create your own secondary index with core Redis data structures to help with this, but it would come with a high development cost and require you to manage edge cases to make sure the index is correct. -Redis does this indexing for you based on `field value` pairs called [labels]({{< relref "/develop/data-types/timeseries/quickstart" >}}). You can add labels to each time series and use them to [filter]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) at query time. +Redis does this indexing for you based on `field value` pairs called [labels]({{< baseurl >}}/develop/data-types/timeseries/quickstart#labels). You can add labels to each time series and use them to [filter]({{< baseurl >}}/develop/data-types/timeseries/quickstart#filtering) at query time. Here’s an example of creating a time series with two labels (sensor_id and area_id are the fields with values 2 and 32 respectively) and a retention window of 60,000 milliseconds: @@ -56,7 +56,7 @@ Here’s an example of creating a time series with two labels (sensor_id and are When you need to query a time series, it’s cumbersome to stream all raw data points if you’re only interested in, say, an average over a given time interval. Time series only transfer the minimum required data to ensure lowest latency. -Here's an example of [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}) over time buckets of 5,000 milliseconds: +Here's an example of [aggregation]({{< baseurl >}}/develop/data-types/timeseries/quickstart#aggregation) over time buckets of 5,000 milliseconds: ```sh 127.0.0.1:12543> TS.RANGE temperature:3:32 1548149180000 1548149210000 AGGREGATION avg 5000 @@ -82,7 +82,7 @@ Redis Stack comes with several integrations into existing time series tools. One {{< image filename="/images/rs/TimeSeries-integrations.png" >}} -Furthermore, we also created direct integrations for [Grafana](https://github.com/RedisTimeSeries/grafana-redistimeseries) and [Telegraf](https://github.com/RedisTimeSeries/telegraf). [This repository](https://github.com/RedisTimeSeries/prometheus-demos) contains a docker-compose setup of RedisTimeSeries, its remote write adaptor, Prometheus and [Grafana](https://grafana.com/). It also comes with a set of data generators and pre-built Grafana dashboards. +Furthermore, we also created direct integrations for [Grafana](https://github.com/RedisTimeSeries/grafana-redistimeseries). [This repository](https://github.com/RedisTimeSeries/prometheus-demos) contains a docker-compose setup of RedisTimeSeries, its remote write adaptor, Prometheus and [Grafana](https://grafana.com/). It also comes with a set of data generators and pre-built Grafana dashboards. ## Time series modeling approaches with Redis diff --git a/content/operate/oss_and_stack/stack-with-enterprise/timeseries/commands.md b/content/operate/oss_and_stack/stack-with-enterprise/timeseries/commands.md index 9c38d3392..8d608affa 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/timeseries/commands.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/timeseries/commands.md @@ -19,7 +19,7 @@ The following table lists time series commands. See the command links for more i | [TS.ADD]({{< relref "/commands" >}}/ts.add) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Appends a sample to a time series. | | [TS.ALTER]({{< relref "/commands" >}}/ts.alter) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Updates the retention, chunk size, duplicate policy, or labels for an existing time series. | | [TS.CREATE]({{< relref "/commands" >}}/ts.create) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Creates a new time series. | -| [TS.CREATERULE]({{< relref "/commands" >}}/ts.createrule) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Creates a compaction rule for [downsampling]({{< relref "/develop/data-types/timeseries/quickstart" >}}). | +| [TS.CREATERULE]({{< relref "/commands" >}}/ts.createrule) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Creates a compaction rule for [downsampling]({{< baseurl >}}/develop/data-types/timeseries/quickstart#aggregation). | | [TS.DECRBY]({{< relref "/commands" >}}/ts.decrby) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Decreases the value of the latest sample in a time series by the specified number. Either modifies the existing sample or adds the decreased value as a new sample, depending on the timestamp option. | | [TS.DEL]({{< relref "/commands" >}}/ts.del) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Removes all samples between two timestamps for a given time series. | | [TS.DELETERULE]({{< relref "/commands" >}}/ts.deleterule) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Removes a compaction rule. | @@ -27,9 +27,9 @@ The following table lists time series commands. See the command links for more i | [TS.INCRBY]({{< relref "/commands" >}}/ts.incrby) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Increases the value of the latest sample in a time series by the specified number. Either modifies the existing sample or adds the increased value as a new sample, depending on the timestamp option. | | [TS.INFO]({{< relref "/commands" >}}/ts.info) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Returns time series information and statistics. | | [TS.MADD]({{< relref "/commands" >}}/ts.madd) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Appends multiple samples to one or more time series. | -| [TS.MGET]({{< relref "/commands" >}}/ts.mget) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Returns multiple samples with [labels]({{< relref "/develop/data-types/timeseries/quickstart" >}}) that match the filter. | -| [TS.MRANGE]({{< relref "/commands" >}}/ts.mrange) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | For multiple time series, runs a query against samples within a range of timestamps, from earliest to latest. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}). | -| [TS.MREVRANGE]({{< relref "/commands" >}}/ts.mrevrange) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | For multiple time series, runs a query against samples within a range of timestamps in reverse order, from latest to earliest. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}). | -| [TS.QUERYINDEX]({{< relref "/commands" >}}/ts.queryindex) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Returns the keys of all time series with [labels]({{< relref "/develop/data-types/timeseries/quickstart" >}}) that match the given filters. | -| [TS.RANGE]({{< relref "/commands" >}}/ts.range) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | From the start of a single time series, runs a query against samples within a range of timestamps. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}). | -| [TS.REVRANGE]({{< relref "/commands" >}}/ts.revrange) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | From the end of a single time series, runs a query against samples within a range of timestamps in reverse order. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}). | +| [TS.MGET]({{< relref "/commands" >}}/ts.mget) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Returns multiple samples with [labels]({{< baseurl >}}/develop/data-types/timeseries/quickstart#labels) that match the filter. | +| [TS.MRANGE]({{< relref "/commands" >}}/ts.mrange) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | For multiple time series, runs a query against samples within a range of timestamps, from earliest to latest. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}#aggregation). | +| [TS.MREVRANGE]({{< relref "/commands" >}}/ts.mrevrange) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | For multiple time series, runs a query against samples within a range of timestamps in reverse order, from latest to earliest. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}#aggregation). | +| [TS.QUERYINDEX]({{< relref "/commands" >}}/ts.queryindex) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | Returns the keys of all time series with [labels]({{< relref "/develop/data-types/timeseries/quickstart" >}}#labels) that match the given filters. | +| [TS.RANGE]({{< relref "/commands" >}}/ts.range) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | From the start of a single time series, runs a query against samples within a range of timestamps. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}#aggregation). | +| [TS.REVRANGE]({{< relref "/commands" >}}/ts.revrange) | ✅ Supported

| ✅ Flexible & Annual
✅ Free & Fixed | From the end of a single time series, runs a query against samples within a range of timestamps in reverse order. Supports [filtering]({{< relref "/develop/data-types/timeseries/quickstart" >}}#filtering) and [aggregation]({{< relref "/develop/data-types/timeseries/quickstart" >}}#aggregation). | diff --git a/content/operate/oss_and_stack/stack-with-enterprise/triggers-functions/_index.md b/content/operate/oss_and_stack/stack-with-enterprise/triggers-functions/_index.md index 55cb3d4cc..fa7ba96d9 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/triggers-functions/_index.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/triggers-functions/_index.md @@ -63,6 +63,6 @@ After you load a function into your database, you can run them manually or use t ## More info -- [Triggers and functions quick start]({{< relref "/develop/interact/programmability/triggers-and-functions/" >}}quick_start/) +- [Triggers and functions quick start]({{< relref "/develop/interact/programmability/triggers-and-functions/quick_start_cli" >}}) - [Triggers and functions documentation]({{< relref "/develop/interact/programmability/triggers-and-functions/" >}}) From 0426b43e1d9ddef3adf460432f53c9a9c2820c2a Mon Sep 17 00:00:00 2001 From: "David W. Dougherty" Date: Thu, 4 Apr 2024 06:42:51 -0700 Subject: [PATCH 2/2] LRC-299: update per PR review comment --- .../operate/oss_and_stack/stack-with-enterprise/json/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md b/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md index 50fa9a1b7..92a48f859 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/json/_index.md @@ -69,7 +69,7 @@ You can only use the [legacy path syntax](#legacy-path-syntax) to access JSON ke You can index, search, and query stored JSON documents. -For more information about how to search and query JSON documents, see the [quick start]({{< relref "/develop/get-started/document-database/" >}}). +For more information about how to search and query JSON documents, see the [quick start]({{< relref "/develop/get-started/document-database" >}}). ## JSON in Active-Active databases