{
  "id": "flash",
  "title": "Flex and Auto Tiering",
  "url": "https://redis.io/docs/latest/operate/rs/8.0/databases/flash/",
  "summary": "Flex and Auto Tiering enable your data to span both RAM and dedicated flash memory.",
  "content": "\n\nThis article includes a general overview of Flex and its predecessor Auto Tiering. For more detailed information about Flex, see the dedicated [Flex databases](https://redis.io/docs/latest/operate/rs/flex) section instead.\n\n\n[Flex](https://redis.io/docs/latest/operate/rs/flex) and Auto Tiering in Redis Software enable databases to use solid state drives (SSDs) to extend beyond DRAM capacity.\nDevelopers can build applications that require large datasets using the same Redis API.\nUsing SSDs can significantly reduce the infrastructure costs compared to only DRAM deployments. \n\nFrequently used data, called hot data, belongs in the fastest memory level to deliver a real-time user experience.\nData that is accessed less frequently, called warm data, can be kept in a slightly slower memory tier.\nFlex maintains hot data in DRAM, keeps warm data in SSDs, and transfers data between tiers automatically.\n\nFlex is based on a high-performance storage engine (Speedb) that manages the complexity of using SSDs and DRAM as the total available memory for databases in a Redis Software cluster. This implementation offers a performance boost of up to 10k operations per second per core of the database, doubling the performance of Redis on Flash.\n\nJust like all-RAM databases, Flex databases are compatible with existing Redis applications.\n\nFlex is also supported on [Redis Cloud](https://redis.io/docs/latest/operate/rc/) and [Redis Enterprise Software for Kubernetes](https://redis.io/docs/latest/operate/kubernetes/flex).\n\n## Flex versus Auto Tiering\n\nFlex is the enhanced successor to Auto Tiering, generally available as of Redis Software version 8.0.2.\n\nRedis database versions support Flex and Auto Tiering as follows:\n\n| Redis database version | Flex | Auto Tiering |\n|------------------------|------------|--------------|\n| 8.0 and later | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e | \u003cspan title=\"Not supported\"\u003e\u0026#x274c;\u003c/span\u003e |\n| 7.4 | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e|\n| 7.2 and earlier | \u003cspan title=\"Not supported\"\u003e\u0026#x274c;\u003c/span\u003e | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e |\n\nFlex requires the Speedb driver, while Auto Tiering can use either RocksDB or Speedb. See [Manage Auto Tiering storage engine](https://redis.io/docs/latest/operate/rs/databases/flash/storage-engine) for more information.\n\n## Use cases\n\nThe benefits associated with Flex are dependent on the use case.\n\nFlex is ideal when your:\n\n- working set is significantly smaller than your dataset (high RAM hit rate)\n- average key size is smaller than average value size\n- most recent data is the most frequently used (high RAM hit rate)\n\nFlex is not recommended for:\n\n- Broad access patterns (any value could be pulled into RAM)\n- Large working sets (working set is stored in RAM)\n- Frequently moved data (moving to and from RAM too often can impact performance)\n\nFlex is not intended to be used for persistent storage. Redis Software database persistent and ephemeral storage should be on different disks, either local or attached.\n\n## Where is my data?\n\nWhen using Flex, RAM storage holds:\n- Key indexes\n- Dictionaries\n- Hot data (working set), including frequently accessed keys and values\n\nAll data is accessed through RAM. If a key or value in flash memory is accessed, it becomes part of the working set and is moved to RAM. This data is referred to as \"hot data\".\n\nInactive or infrequently accessed data is referred to as \"warm data\" and stored in flash memory. When more space is needed in RAM, warm keys and values are moved from RAM to flash storage.\n\n When using Auto Tiering with Redis Search, indexes are also stored in RAM. Flex does not support Redis Search.\n\n## RAM to Flash ratio\n\nRedis Software allows you to configure and tune the ratio of RAM-to-Flash for each database independently, optimizing performance for your specific use case.\nWhile this is an online operation requiring no downtime for your database, it is recommended to perform it during maintenance windows as data might move between tiers (RAM \u003c-\u003e Flash).\n\nThe RAM limit cannot be smaller than 10% of the total memory. We recommend you keep at least 20% of all values in RAM. Do not set the RAM limit to 100%.\n\n## Flash memory\n\nImplementing Flex requires pre planning around memory and sizing. Considerations and requirements for Flex include:\n\n- Flash memory must be locally attached. Using network-attached storage (NAS), storage area networks (SAN), or solutions such as AWS Elastic Block Storage (EBS) is not supported. \n- Flash memory must be dedicated to Flex and not shared with other parts of the database, such as durability, binaries, or persistence.\n- For the best performance, the SSDs should be NVMe based, but SATA can also be used.\n- The available flash space must be greater than or equal to the total database size (RAM+Flash). The extra space accounts for write buffers and [write amplification](https://en.wikipedia.org/wiki/Write_amplification).\n\n The Redis Software database persistent and ephemeral storage should be on different disks, either local or attached. \n\nAfter these requirements are met, you can create and manage both Flex databases and\nall-RAM databases in the same cluster.\n\nWhen you begin planning the deployment of a Flex database in production,\nwe recommend working closely with the Redis technical team for sizing and performance tuning.\n\n### Cloud environments\n\nWhen running in a cloud environment:\n\n- Flash memory is on the ephemeral SSDs of the cloud instance (for example the local NVMe of AWS i4i instances and Azure Lsv2 and Lsv3 series).\n- Persistent database storage needs to be network attached (for example, AWS EBS for AWS).\n\n\nWe specifically recommend \"[Storage Optimized I4i - High I/O Instances](https://aws.amazon.com/ec2/instance-types/#storage-optimized)\" because of the performance of NVMe for flash memory. \n\n### On-premises environments\n\nWhen you begin planning the deployment of Flex in production, we recommend working closely with the Redis technical team for sizing and performance tuning.\n\nOn-premises environments support more deployment options than other environments.\n\nThe following table shows which data types and features are supported for Flex and Auto Tiering:\n\n| Data type/feature | Flex support | Auto Tiering support |\n|-------------------|--------------|----------------------|\n| [Active-Active databases](https://redis.io/docs/latest/operate/rs/databases/active-active) | \u003cspan title=\"Not supported\"\u003e\u0026#x274c;\u003c/span\u003e |\u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e Requires Redis\u003cbr /\u003etechnical team's approval |\n| [JSON](https://redis.io/docs/latest/develop/data-types/json) | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e |\n| [Probabilistic data structures](https://redis.io/docs/latest/develop/data-types/#probabilistic-data-types) | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e |\n| [Redis Search](https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/search) | \u003cspan title=\"Not supported\"\u003e\u0026#x274c;\u003c/span\u003e | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e |\n| Standard [Redis data types](https://redis.io/docs/latest/develop/data-types) | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e |\n| [Time series](https://redis.io/docs/latest/develop/data-types/timeseries) | \u003cspan title=\"Not supported\"\u003e\u0026#x274c;\u003c/span\u003e | \u003cspan title=\"Supported\"\u003e\u0026#x2705;\u003c/span\u003e |\n\nFlex is not supported running on network attached storage (NAS), storage area network (SAN), or with local HDD drives. \n\n## Size limits for keys and values\n\nFlex databases cannot store keys or values larger than 4GB in flash storage.\n\nKeys or values larger than 4GB will be stored in RAM only, and warnings will appear in the Redis logs similar to:\n\n```sh\n# WARNING: key too big for disk driver, size: 4703717276, key: subactinfo:htable\n```\n\n## Next steps\n\n- [Get started with Flex databases for Redis Software](https://redis.io/docs/latest/operate/rs/flex/get-started)\n\n- [Auto Tiering quick start](https://redis.io/docs/latest/operate/rs/databases/flash/quickstart)\n\n- [Ephemeral and persistent storage](https://redis.io/docs/latest/operate/rs/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage)\n\n- [Plan a Flex deployment for Redis Software](https://redis.io/docs/latest/operate/rs/flex/plan)\n\n- [Hardware requirements](https://redis.io/docs/latest/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md)\n\n- [Flex and Auto Tiering metrics](https://redis.io/docs/latest/operate/rs/references/metrics/auto-tiering)\n",
  "tags": ["docs","operate","rs","rc"],
  "last_updated": "2026-07-23T12:00:25-05:00",
  "children": [{"id":"quickstart","summary":"Get started with Flex and Auto Tiering quickly, creating a cluster and database using flash storage.","title":"Flex and Auto Tiering quick start","url":"https://redis.io/docs/latest/operate/rs/8.0/databases/flash/quickstart/"},{"id":"storage-engine","summary":"Manage the storage engine used for your database with auto tiering enabled.","title":"Manage Auto Tiering storage engine","url":"https://redis.io/docs/latest/operate/rs/8.0/databases/flash/storage-engine/"}]
}
