Skip to content

K8s: Flex v2 docs#2855

Open
kaitlynmichael wants to merge 11 commits intomainfrom
DOC-6285-k8s-flexv2
Open

K8s: Flex v2 docs#2855
kaitlynmichael wants to merge 11 commits intomainfrom
DOC-6285-k8s-flexv2

Conversation

@kaitlynmichael
Copy link
Copy Markdown
Contributor

@kaitlynmichael kaitlynmichael commented Mar 5, 2026

Note

Low Risk
Low risk documentation-only change, but it introduces a new Redis Flex doc section that may overlap with existing re-clusters/redis-flex content and could affect navigation/discoverability.

Overview
Adds a new operate/kubernetes/flex documentation section for Redis Flex, including an overview page plus dedicated Plan, Get started, and Scale guides.

The new docs cover version/feature behavior (including Redis 8.2 key+value offloading and the Redis Flex vs Auto Tiering cutoff), required local NVMe/StorageClass setup via redisOnFlashSpec, database creation via isRof/rofRamSize, sizing guidance, and scaling recommendations/limitations.

Written by Cursor Bugbot for commit c681765. This will update automatically on new commits. Configure here.

@kaitlynmichael kaitlynmichael self-assigned this Mar 5, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

DOC-6285

@jit-ci
Copy link
Copy Markdown

jit-ci bot commented Mar 5, 2026

🛡️ Jit Security Scan Results

CRITICAL HIGH MEDIUM

✅ No security findings were detected in this PR


Security scan by Jit

@kaitlynmichael kaitlynmichael marked this pull request as ready for review March 6, 2026 16:44
@kaitlynmichael kaitlynmichael marked this pull request as draft March 6, 2026 16:45
@kaitlynmichael kaitlynmichael marked this pull request as ready for review March 12, 2026 19:48
Copy link
Copy Markdown
Contributor

@andy-stark-redis andy-stark-redis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One minor suggestion but otherwise language LGTM.


| Goal | Recommended action |
|------|--------------------|
| Increase data capacity only without adding CPU | Increase `memorySize` and decrease RAM percentage |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe these could link to the appropriate sections below?

@mich-elle-luna
Copy link
Copy Markdown
Collaborator

Thank you this is looking great

- Operate large distributed caches with elastic scaling and consistent performance under heavy load
- Reduce infrastructure costs by combining high-speed RAM with cost-efficient flash storage

{{<note>}}Flex does not replace long-term data persistence. For workloads that require durability and recovery across restarts or failures, use Redis persistence features like [AOF (Append-Only File)]({{< relref "/operate/oss_and_stack/management/persistence#append-only-file" >}}), [RDB snapshots]({{< relref "/operate/oss_and_stack/management/persistence#snapshotting" >}}), or both. For more information, see [Database persistence]({{< relref "/operate/rs/databases/configure/database-persistence" >}}).{{</note>}}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest promoting this paragraph into a dedicated section, something like:

## What Flex Isn't
Flex is not a durable data store.
It is designed for performance, elasticity, and scalability, not for long-term data persistence.
While Flex can temporarily retain data in memory or flash, it should not be used as a primary system of record.
For workloads that require durability and recovery across restarts or failures, use Redis persistence features like AOF or RDB snapshots.

Redis uses an [LRU (least recently used)]({{< relref "/develop/reference/eviction#apx-lru" >}}) eviction policy to manage data placement. When memory pressure increases, Flex identifies cold objects, transfers them to flash, and frees RAM for new or frequently accessed keys.

This process requires no application changes. Your existing Redis commands work across both storage tiers.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest adding an explicit V1 vs V2 comparisson:

Starting with Redis database version 8.2, Flex can offload both keys and values to flash.
This increases dataset density per node and frees more RAM for truly hot data, improving RAM hit-rate and enabling larger datasets at predictable latency.

---

{{<note>}}
This page applies to Redis database version 7.4 and earlier. If you use version 8.0 or later, see [Redis Flex](https://redis.io/docs/latest/operate/kubernetes/re-clusters/redis-flex).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this page describes the V2 Flex we should revisit this sentence:
his page applies to Redis database version 8.2 or later and Redis Enterprise for Kubernetes operator 8.0.2-2 or later

- **Active-Active**: Not supported with Flex.
- **PVC expansion**: Not supported with `redisOnFlashSpec`. Don't enable `enablePersistentVolumeResize` in the REC `persistentSpec`.
- **Maximum object size**: Keys or values larger than 4 GB remain in RAM only.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add:

  • Prefer workloads where the working set is significantly smaller than the total dataset and access is biased toward recent data (high RAM hit-rate).
  • Avoid workloads with very long key names, broad/random access patterns, or very large working sets, which can reduce Flex benefits and increase flash I/O.


You can add more shards or nodes to distribute traffic and increase throughput without changing the RAM-to-flash ratio. Dataset size capacity also typically increases as a result of additional shards and infrastructure. This strategy is recommended when the dataset size and traffic are expected to grow together.

Before you add shards or nodes, you need to add more RAM and vCPUs to handle the increased number of shards or nodes.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's explicitly this a bit and highlight the tradeoff: This increases capacity and potential throughput but requires more RAM, vCPUs, and a rebalance operation.


To improve throughput and lower latency, you can expand the in-memory tier to serve a higher proportion of requests directly from RAM. This strategy is recommended when low latency is your primary goal and you don't need to increase the dataset size.

Before increasing the RAM-to-flash ratio, you might need to add more nodes to accommodate additional RAM.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here: This improves throughput and lowers latency by serving more requests from RAM, at the cost of higher RAM usage.

### Decrease RAM-to-flash ratio

You can allocate more data to the flash tier to increase the database capacity while keeping the same amount of RAM, shards, and vCPU. This strategy is recommended when scaling for volume only and SSD resources are underutilized.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This increases capacity without adding CPU or RAM but can lower RAM hit-rate and increase p99 latency; monitor metrics before and after the change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants