{
  "id": "scale",
  "title": "Scale Flex databases for Redis Software",
  "url": "https://redis.io/docs/latest/operate/rs/flex/scale/",
  "summary": "Scaling strategies for Flex deployments for Redis Software.",
  "tags": [
    "docs",
    "operate",
    "rs"
  ],
  "last_updated": "2026-04-15T13:31:09-05:00",
  "page_type": "content",
  "content_hash": "7962b2c26f2c34009f603e658eeb9ea2987177c83b3266a83e86c79766661f29",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "This guide shows you how to scale Flex databases for Redis Software to meet changing workload demands."
    },
    {
      "id": "choose-a-scaling-strategy",
      "title": "Choose a scaling strategy",
      "role": "content",
      "text": "Use the following table to determine the best scaling strategy for your Flex deployment:\n\n| Goal | Recommended action |\n|------|--------------------|\n| Increase data capacity only without adding CPU | Increase database limit and decrease RAM percentage |\n| Increase throughput only | Add shards and vCPU |\n| Increase data capacity and throughput | Add shards |\n| Improve latency under higher load | Increase RAM percentage |\n| Reduce cost while maintaining performance | Tune RAM-to-flash ratio |"
    },
    {
      "id": "prerequisites",
      "title": "Prerequisites",
      "role": "content",
      "text": "Before you scale a self-managed Flex deployment, verify that your cluster has sufficient resources, such as memory, disk, and vCPU."
    },
    {
      "id": "scale-volume",
      "title": "Scale volume",
      "role": "content",
      "text": "If your dataset requires more capacity while maintaining performance, you can prepare a Flex database to store more data using one of the following options:\n\n1. Increase the database limit and [add shards](#scale-volume-add-shards).\n\n1. Increase the database limit and [decrease the RAM-to-flash ratio](#decrease-ram-to-flash-ratio)."
    },
    {
      "id": "add-shards-scale-volume-add-shards",
      "title": "Add shards {#scale-volume-add-shards}",
      "role": "content",
      "text": "You can add more shards to expand dataset capacity while maintaining the existing RAM-to-flash ratio. Throughput 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.\n\nBefore you increase the dataset capacity and add shards, you need to add more RAM and vCPUs to handle the increased number of shards.\n\nTo increase the dataset capacity and shards using the Cluster Manager UI:\n\n1. On the **Databases** screen, select the database you want to edit.\n\n1. From the **Configuration** tab, click **Edit**.\n\n1. In the **Capacity** section, increase the **Memory limit**.\n\n1. In the **Clustering** section, increase the **Number of shards**.\n\n1. Click **Save**."
    },
    {
      "id": "decrease-ram-to-flash-ratio",
      "title": "Decrease RAM-to-flash ratio",
      "role": "content",
      "text": "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.\n\nThis scaling strategy increases capacity without adding CPU or RAM, but might reduce RAM hit rate and increase p99 latency. You should monitor metrics before and after this change.\n\nTo increase the dataset capacity and decrease the RAM-to-flash ratio using the Cluster Manager UI:\n\n1. On the **Databases** screen, select the database you want to edit.\n\n1. From the **Configuration** tab, click **Edit**.\n\n1. In the **Capacity** section:\n\n    1. Increase the **Memory limit**.\n\n    1. Decrease the **RAM limit**.\n\n1. Click **Save**.\n\nFor example, to lower the RAM-to-flash ratio from 30% to 20% on a 1 TB database:\n\n- You can increase the memory limit from 1 TB to 1.5 TB for more total capacity.\n\n- If you keep the RAM limit at 300 GB, it becomes 20% of the new total capacity."
    },
    {
      "id": "scale-throughput",
      "title": "Scale throughput",
      "role": "content",
      "text": "If your workload's read/write rate increases and latency starts to rise, you can prepare the database to handle more traffic using one of the following strategies:\n\n1. [Add shards or nodes](#add-shards-or-nodes).\n\n1. [Increase the RAM-to-flash ratio](#increase-ram-to-flash-ratio)."
    },
    {
      "id": "add-shards-or-nodes",
      "title": "Add shards or nodes",
      "role": "content",
      "text": "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.\n\nBefore you add shards or nodes, you need to add more RAM and vCPUs to handle the increased number of shards or nodes.\n\nTo add shards using the Cluster Manager UI:\n\n1. On the **Databases** screen, select the database you want to edit.\n\n1. From the **Configuration** tab, click **Edit**.\n\n1. In the **Clustering** section, increase the **Number of shards**.\n\n1. Click **Save**.\n\nTo add nodes to the cluster, see [Add a node]() for instructions."
    },
    {
      "id": "increase-ram-to-flash-ratio",
      "title": "Increase RAM-to-flash ratio",
      "role": "content",
      "text": "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.\n\nBefore increasing the RAM-to-flash ratio, you might need to add more nodes to accommodate additional RAM. See [Add a node]() for instructions.\n\nTo increase the RAM-to-flash ratio using the Cluster Manager UI:\n\n1. On the **Databases** screen, select the database you want to edit.\n\n1. From the **Configuration** tab, click **Edit**.\n\n1. In the **Capacity** section, increase the **RAM limit**.\n\n1. Click **Save**."
    },
    {
      "id": "scale-infrastructure",
      "title": "Scale infrastructure",
      "role": "content",
      "text": "You can increase or adjust the underlying resources supporting the database, such as CPU, memory, and disk.\n\nFor self-managed Redis Flex deployments, ensure the cluster has sufficient physical resources before scaling. The cluster requires:\n\n- Enough RAM to support the desired in-memory dataset size.\n\n- Enough SSD capacity for flash-tier data.\n\n- Adequate vCPU to support increased shard count or throughput.\n\n\nScaling operations will fail or underperform if the underlying cluster is resource-constrained.\n\n\nSee Flex [hardware requirements]() for more information."
    }
  ],
  "examples": []
}
