{
  "schema_version": 2,
  "id": "operate/kubernetes/flex/plan",
  "title": "Plan a Redis Flex deployment on Kubernetes",
  "url": "https://redis.io/docs/latest/operate/kubernetes/flex/plan/",
  "summary": "Hardware requirements, sizing guidelines, and limitations for Redis Flex on Kubernetes.",
  "tags": [
    "docs",
    "operate",
    "kubernetes"
  ],
  "last_updated": "2026-09-28T16:14:52+01:00",
  "page_type": "content",
  "content_hash": "5066abb0b5b83c646cd70d4db191c7e0b2556f2c0ca53024e7bc2fdf294a46be",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Review the hardware requirements, sizing guidelines, and known limitations before you deploy Redis Flex."
    },
    {
      "id": "version-requirements",
      "title": "Version requirements",
      "role": "compatibility",
      "text": "Redis Flex requires:\n\n- Redis Enterprise for Kubernetes version 8.0.2-2 or later\n- Redis database version 8.2 or later"
    },
    {
      "id": "hardware-requirements",
      "title": "Hardware requirements",
      "role": "content",
      "text": ""
    },
    {
      "id": "flash-storage-requirements",
      "title": "Flash storage requirements",
      "role": "content",
      "text": "Your SSDs must meet these requirements:\n\n- **Locally attached** to worker nodes in your Kubernetes cluster. Network-attached storage (NAS), storage area networks (SAN), and cloud block storage (like AWS EBS) are not supported.\n- **Dedicated** to Redis Flex. Don't share Flash storage with other database components like durability, binaries, or persistence.\n- **Formatted and mounted** on the nodes that run Redis Enterprise pods.\n- **Provisioned as local persistent volumes**. You can use a [local volume provisioner](https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner) for dynamic provisioning.\n- **Configured with a StorageClass** resource with a unique name.\n\nFor more information about storage configuration, see [Kubernetes local volumes](https://kubernetes.io/docs/concepts/storage/volumes/#local)."
    },
    {
      "id": "flash-capacity-sizing",
      "title": "Flash capacity sizing",
      "role": "content",
      "text": "Provision Flash capacity that exceeds your total database size. The extra space accounts for:\n\n- Write buffers\n- Space amplification\n- Operational overhead"
    },
    {
      "id": "recommended-ssd-types",
      "title": "Recommended SSD types",
      "role": "content",
      "text": "For best performance, use NVMe SSDs:\n\n| SSD type              | Recommendation                 |\n|-----------------------|--------------------------------|\n| NVMe Gen 5 or Gen 4   | Recommended                    |\n| NVMe Gen 3            | Supported (lower performance)  |"
    },
    {
      "id": "sizing-guidelines",
      "title": "Sizing guidelines",
      "role": "content",
      "text": ""
    },
    {
      "id": "shard-fundamentals",
      "title": "Shard fundamentals",
      "role": "content",
      "text": "Redis Flex databases consist of shards—independent data partitions that handle a portion of the dataset and request load. Each shard runs as a self-contained Redis process with dedicated memory, CPU, and Flash resources."
    },
    {
      "id": "recommended-shard-size",
      "title": "Recommended shard size",
      "role": "content",
      "text": "Use these standard building blocks for capacity planning:\n\n- **50 GB per shard**: Standard capacity unit\n- **1 vCPU per shard**: Baseline compute allocation\n\nFor example, a 1 TB dataset requires 20 shards (20 × 50 GB)."
    },
    {
      "id": "ram-to-flash-ratio",
      "title": "RAM-to-flash ratio",
      "role": "content",
      "text": "The RAM-to-flash ratio directly affects throughput and latency:\n\n- More RAM: Higher throughput and lower latency\n- Less RAM: Lower throughput, higher latency, and lower cost"
    },
    {
      "id": "module-compatibility",
      "title": "Module compatibility",
      "role": "content",
      "text": ""
    },
    {
      "id": "supported",
      "title": "Supported",
      "role": "compatibility",
      "text": "Redis Flex supports:\n\n- All standard Redis data types\n- Redis JSON\n- Redis probabilistic data structures (Bloom filters, Count-Min Sketch, Top-K)"
    },
    {
      "id": "not-supported",
      "title": "Not supported",
      "role": "content",
      "text": "Redis Flex doesn't support:\n\n- Redis Query Engine (RQE)\n- RedisTimeSeries\n- Active-Active databases"
    },
    {
      "id": "best-practices",
      "title": "Best practices",
      "role": "content",
      "text": "- Store small keys and values (under 10 KB) when possible. Large objects reduce performance, and objects larger than 4 GB can't be stored in Flash.\n- Enable replication before populating the database with data. If you enable replication after the database is created, recovery can fail because required persistence files might be missing.\n- Increase RAM percentage if 99th-percentile latency exceeds your target or cache hit rates drop.\n- Decrease RAM percentage if memory utilization is high but latency remains stable to lower cost and improve efficiency.\n- Re-evaluate the ratio of RAM to Flash periodically as dataset size and access patterns evolve."
    },
    {
      "id": "known-limitations",
      "title": "Known limitations",
      "role": "content",
      "text": "- **Flash storage**: Must be locally attached. Network storage isn't supported.\n- **Active-Active**: Not supported with Flex.\n- **PVC expansion**: Not supported with `redisOnFlashSpec`. Don't enable `enablePersistentVolumeResize` in the REC `persistentSpec`.\n- **Maximum object size**: Keys or values larger than 4 GB remain in RAM only.\n\nAvoid Flex in the following situations:\n\n- Your working set is significantly smaller than the total dataset and access is biased toward recent data (high RAM hit rate).\n- Your workload uses very long key names, broad or random access patterns, or a very large working set. These patterns reduce Flex benefits and increase flash I/O."
    },
    {
      "id": "deprecated-fields",
      "title": "Deprecated fields",
      "role": "content",
      "text": "The `flashStorageEngine` field is deprecated. Use `bigStoreDriver` instead."
    },
    {
      "id": "next-steps",
      "title": "Next steps",
      "role": "content",
      "text": "- [Get started](https://redis.io/docs/latest/operate/kubernetes/flex/get-started): Configure Redis Flex on your cluster.\n- [Scale your deployment](https://redis.io/docs/latest/operate/kubernetes/flex/scale): Learn scaling strategies."
    }
  ],
  "examples": []
}
