Prerequisites

Redis Enterprise Software for Kubernetes supports using Redis on Flash, which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets.

Note:
NVMe (non-volatile memory express) SSDs are strongly recommended to achieve the best performance.

Before creating your Redis clusters or databases, these SSDs must be:

For more information on node storage, see Node persistent and ephemeral storage.

Create a Redis Enterprise cluster

To deploy a Redis Enterprise cluster (REC) with flash storage, you’ll need to specify the following in the redisOnFlashSpec section of your REC custom resource:

  • enable Redis on Flash (enabled: true)
  • flash storage driver (flashStorageEngine)
    • The only supported value is rocksdb
  • storage class name (storageClassName)
  • minimal flash disk size (flashDiskSize)

Here is an example of an REC custom resource with these attributes:

apiVersion: app.redislabs.com/v1
kind: RedisEnterpriseCluster
metadata:
  name: "rec"
spec:
  
  nodes: 3
  redisOnFlashSpec:
    enabled: true
    flashStorageEngine: rocksdb
    storageClassName: local-scsi
    flashDiskSize: 100G

Create a Redis Enterprise database

By default, any new database will use RAM only. To create a Redis Enterprise database (REDB) that can use flash storage, specify the following in the redisEnterpriseCluster section of the REDB custom resource definition:

  • isRof: true enables Redis on Flash
  • rofRamSize defines the RAM capacity for the database

Below is an example REDB custom resource:

apiVersion: app.redislabs.com/v1alpha1
kind: RedisEnterpriseDatabase
metadata:
  name: rof-redb
spec:
  redisEnterpriseCluster:
    name: rec
  isRof: true
  memorySize: 2GB
  rofRamSize: 0.5GB
Note:
This example defines both memorySize and rofRamSize. When using Redis on Flash, memorySize refers to the total combined memory size (RAM + flash) allocated for the database. rofRamSize specifies only the RAM capacity for the database. rofRamSize must be at least 10% of memorySize.