Use Redis on Flash on Kubernetes
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.
Before creating your Redis clusters or databases, these SSDs must be:
- locally attached to worker nodes in your Kubernetes cluster
- formatted and mounted on the nodes that will run Redis Enterprise pods
- dedicated to RoF and not shared with other parts of the database, (e.g. durability, binaries)
- provisioned as local persistent volumes
- You can use a local volume provisioner to do this dynamically
- a StorageClass resource with a unique name
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
- The only supported value is
- 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 FlashrofRamSize
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
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
.