content/operate/rs/databases/flash/_index.md
Redis Flex and Auto Tiering in Redis Software enable databases to use solid state drives (SSDs) to extend beyond DRAM capacity. Developers can build applications that require large datasets using the same Redis API. Using SSDs can significantly reduce the infrastructure costs compared to only DRAM deployments.
Frequently used data, called hot data, belongs in the fastest memory level to deliver a real-time user experience. Data that is accessed less frequently, called warm data, can be kept in a slightly slower memory tier. Redis Flex maintains hot data in DRAM, keeps warm data in SSDs, and transfers data between tiers automatically.
Redis Flex 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.
Just like all-RAM databases, Redis Flex databases are compatible with existing Redis applications.
Redis Flex is also supported on [Redis Cloud]({{< relref "/operate/rc/" >}}) and [Redis Enterprise Software for Kubernetes]({{< relref "/operate/rs/" >}}).
Redis Flex is the enhanced successor to Auto Tiering, generally available as of Redis Software version 8.0.2.
Redis database versions support Redis Flex and Auto Tiering as follows:
| Redis database version | Redis Flex | Auto Tiering |
|---|---|---|
| 8.0 and later | <span title="Supported">✅</span> | <span title="Not supported">❌</span> |
| 7.4 | <span title="Supported">✅</span> | <span title="Supported">✅</span> |
| 7.2 and earlier | <span title="Not supported">❌</span> | <span title="Supported">✅</span> |
Redis Flex requires the Speedb driver, while Auto Tiering can use either RocksDB or Speedb. See [Manage Auto Tiering storage engine]({{<relref "/operate/rs/databases/flash/storage-engine">}}) for more information.
The benefits associated with Redis Flex are dependent on the use case.
Redis Flex is ideal when your:
Redis Flex is not recommended for:
Redis Flex 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.
When using Redis Flex, RAM storage holds:
All 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".
Inactive 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.
{{<note>}} When using Auto Tiering with Redis Search, indexes are also stored in RAM. Redis Flex does not support Redis Search.{{</note>}}
Redis Software allows you to configure and tune the ratio of RAM-to-Flash for each database independently, optimizing performance for your specific use case. While 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 <-> Flash).
The 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%.
Implementing Redis Flex requires pre planning around memory and sizing. Considerations and requirements for Redis Flex include:
{{<note>}} The Redis Software database persistent and ephemeral storage should be on different disks, either local or attached. {{</note>}}
After these requirements are met, you can create and manage both Redis Flex databases and all-RAM databases in the same cluster.
When you begin planning the deployment of a Redis Flex database in production, we recommend working closely with the Redis technical team for sizing and performance tuning.
When running in a cloud environment:
{{<note>}} We specifically recommend "Storage Optimized I4i - High I/O Instances" because of the performance of NVMe for flash memory. {{</note>}}
When you begin planning the deployment of Redis Flex in production, we recommend working closely with the Redis technical team for sizing and performance tuning.
On-premises environments support more deployment options than other environments.
The following table shows which data types and features are supported for Flex and Auto Tiering:
| Data type/feature | Flex support | Auto Tiering support |
|---|---|---|
| [Active-Active databases]({{<relref "/operate/rs/databases/active-active">}}) | <span title="Not supported">❌</span> | <span title="Supported">✅</span> Requires Redis |
| technical team's approval | ||
| [JSON]({{<relref "/develop/data-types/json">}}) | <span title="Supported">✅</span> | <span title="Supported">✅</span> |
| [Probabilistic data structures]({{<relref "/develop/data-types/#probabilistic-data-types">}}) | <span title="Supported">✅</span> | <span title="Supported">✅</span> |
| [Redis Search]({{<relref "/operate/oss_and_stack/stack-with-enterprise/search">}}) | <span title="Not supported">❌</span> | <span title="Supported">✅</span> |
| Standard [Redis data types]({{<relref "/develop/data-types">}}) | <span title="Supported">✅</span> | <span title="Supported">✅</span> |
| [Time series]({{<relref "/develop/data-types/timeseries">}}) | <span title="Not supported">❌</span> | <span title="Supported">✅</span> |
{{<warning>}} Redis Flex is not supported running on network attached storage (NAS), storage area network (SAN), or with local HDD drives. {{</warning>}}
Redis Flex databases cannot store keys or values larger than 4GB in flash storage.
Keys or values larger than 4GB will be stored in RAM only, and warnings will appear in the Redis logs similar to:
# WARNING: key too big for disk driver, size: 4703717276, key: subactinfo:htable
[Redis Flex metrics]({{< relref "/operate/rs/references/metrics/auto-tiering" >}})
[Redis Flex quick start]({{< relref "/operate/rs/databases/flash/quickstart" >}})
[Ephemeral and persistent storage]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}})
[Hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}})