content/operate/kubernetes/re-clusters/redis-flex.md
{{<note>}} This page applies to Redis Enterprise for Kubernetes version 8.0.2-2 and later. If you use version 7.22.2-22 or earlier, see Auto Tiering. {{</note>}}
[Redis Flex]({{< relref "/operate/rs/databases/flash" >}}) (previously known as Redis on Flash) extends your node memory to use both RAM and flash storage. Solid state drives (SSDs) store infrequently used (warm) keys and values, while RAM stores frequently used (hot) keys and values. This approach improves performance and lowers costs for large datasets.
Redis Flex provides automatic RAM management and improved performance compared to Auto Tiering.
{{<note>}} For best performance, use NVMe (non-volatile memory express) SSDs. {{</note>}}
{{<warning>}} Redis Flex is not supported for [Active-Active databases]({{< relref "/operate/kubernetes/active-active" >}}). {{</warning>}}
Before creating your Redis clusters or databases, these SSDs must be:
The earlier implementation of Redis Flex is called Auto Tiering, which is available in Redis versions earlier than 8.0.
The operator automatically selects the appropriate implementation based on your Redis version:
Redis Flex differs from Auto Tiering in the following ways:
Redis Flex (8.0.2-2 and later)
rofRamSize isn't validated with minimum ratio requirements.Auto Tiering ( 7.22.2-22 and earlier)
rofRamSize configuration.rofRamSize must be at least 10% of memorySize and can't exceed memorySize.The operator doesn't support Redis 7.4 preview for Redis Flex. Redis 7.4 databases use Auto Tiering regardless of cluster policy. To use Redis Flex, upgrade to Redis 8.0 or later.
Before you create your Redis clusters or databases, ensure that your SSDs meet the following requirements:
For more information about node storage, see [Node persistent and ephemeral storage]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}).
To deploy a Redis Enterprise cluster (REC) with Redis Flex, specify the following fields in the redisOnFlashSpec section of your [REC custom resource]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_cluster_api#specredisonflashspec" >}}):
enabled: true - Enables Redis FlexbigStoreDriver: speedb - Sets the flash storage driverstorageClassName - Specifies the storage class nameflashDiskSize - Sets the minimum flash disk size{{<warning>}}
Redis Flex doesn't support PVC expansion. Do not enable enablePersistentVolumeResize in the REC persistentSpec if you use redisOnFlashSpec. Enabling both will cause conflicts.
{{</warning>}}
The following example shows a Redis Enterprise cluster custom resource with these fields:
apiVersion: app.redislabs.com/v1
kind: RedisEnterpriseCluster
metadata:
name: "rec"
labels:
app: redis-enterprise
spec:
nodes: 3
redisOnFlashSpec:
enabled: true
bigStoreDriver: speedb # Only 'speedb' is suitable for Redis Flex
storageClassName: local-scsi
flashDiskSize: 100G
{{<note>}}
enabled field to true.bigStoreDriver: speedb for Redis Flex support on Redis 8.0 and later.flashStorageEngine field is deprecated. Use bigStoreDriver instead.{{</note>}}
By default, new databases use RAM only. To create a Redis Enterprise database (REDB) that uses Redis Flex and takes advantage of locally attached SSDs, set isRof to true.
Specify the following fields in the REDB custom resource:
isRof: true - Enables Redis FlexredisVersion - Set to "8.0" or latermemorySize - Defines the total combined memory size (RAM + flash)rofRamSize - (Optional) Defines the RAM capacity for the databaseThe following example shows a REDB custom resource:
apiVersion: app.redislabs.com/v1alpha1
kind: RedisEnterpriseDatabase
metadata:
name: redis-flex-db
spec:
redisEnterpriseCluster:
name: rec
isRof: true
redisVersion: "8.0"
memorySize: 2GB
rofRamSize: 0.5GB
{{< note >}}
Redis Flex automatically manages RAM allocation. You can specify rofRamSize, but it isn't subject to the 10% minimum ratio requirement that applies to Auto Tiering. The operator doesn't validate or enforce minimum RAM ratios for Redis 8.0 and later databases.
{{< /note >}}
When you upgrade a database from a Redis version earlier than 8.0 to Redis 8.0 or later, Redis Server automatically migrates the database from Auto Tiering to Redis Flex. The operator detects this migration and makes the following changes:
rofRamSize ratio requirement.bigstore_ram_size field to avoid configuration drift.The following example shows how to upgrade a database from Auto Tiering to Redis Flex:
rofRamSize: 200MB.spec.redisVersion to "8.0".rofRamSize field automatically. You can keep the field in the spec for backward compatibility.