Conversation
🛡️ Jit Security Scan Results✅ No security findings were detected in this PR
Security scan by Jit
|
andy-stark-redis
left a comment
There was a problem hiding this comment.
One minor suggestion but otherwise language LGTM.
|
|
||
| | Goal | Recommended action | | ||
| |------|--------------------| | ||
| | Increase data capacity only without adding CPU | Increase `memorySize` and decrease RAM percentage | |
There was a problem hiding this comment.
Maybe these could link to the appropriate sections below?
|
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>}} |
There was a problem hiding this comment.
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. | ||
|
|
There was a problem hiding this comment.
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). |
There was a problem hiding this comment.
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. | ||
|
|
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. | ||
|
|
There was a problem hiding this comment.
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.
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-flexcontent and could affect navigation/discoverability.Overview
Adds a new
operate/kubernetes/flexdocumentation 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 viaisRof/rofRamSize, sizing guidance, and scaling recommendations/limitations.Written by Cursor Bugbot for commit c681765. This will update automatically on new commits. Configure here.