Supported ElastiCache for Redis versions - Amazon ElastiCache for Redis

Supported ElastiCache for Redis versions

ElastiCache Serverless caches support the following Redis versions:

ElastiCache for Redis version 7.1 (enhanced)

This release contains performance improvements which enable workloads to drive higher throughput and lower operation latencies. ElastiCache 7.1 introduces two main enhancements :

We extended the enhanced I/O threads functionality to also handle the presentation layer logic. By presentation layer, we mean the Enhanced I/O threads which are now not only reading client input, but also parsing the input into Redis binary command format. This is then forwarded to the main thread for execution which provides performance gain. Improved Redis memory access pattern. Execution steps from many data structure operations are interleaved, to ensure parallel memory access and reduced memory access latency. When running ElastiCache on Graviton3-based R7g.4xlarge or larger, customers can achieve over 1 million requests per second per node. With the performance improvements to ElastiCache for Redis v7.1, customers can achieve up to 100% more throughput and 50% lower P99 latency relative to ElastiCache for Redis v7.0. These enhancements are enabled on node sizes with at least 8 physical cores (2xlarge on Graviton, and 4xlarge on x86), regardless of the CPU type and require no client changes.

Note

ElastiCache v7.1 is compatible with OSS Redis v7.0.

ElastiCache for Redis version 7.0 (enhanced)

ElastiCache for Redis 7.0 adds a number of improvements and support for new functionality:

  • Redis Functions: ElastiCache for Redis 7 adds support for Redis Functions, and provides a managed experience enabling developers to execute LUA scripts with application logic stored on the ElastiCache cluster, without requiring clients to re-send the scripts to the server with every connection.

  • ACL improvements: ElastiCache for Redis 7 adds support for the next version of Redis Access Control Lists (ACLs). With ElastiCache for Redis 7, clients can now specify multiple sets of permissions on specific keys or keyspaces in Redis.

  • Sharded Pub/Sub: ElastiCache for Redis 7 adds support to run Redis Pub/Sub functionality in a sharded way when running ElastiCache in Cluster Mode Enabled (CME). Redis Pub/Sub capabilities enable publishers to issue messages to any number of subscribers on a channel. With Amazon ElastiCache for Redis 7, channels are bound to a shard in the ElastiCache cluster, eliminating the need to propagate channel information across shards resulting in improved scalability.

  • Enhanced I/O multiplexing: ElastiCache for Redis version 7 introduces enhanced I/O multiplexing, which delivers increased throughput and reduced latency for high-throughput workloads that have many concurrent client connections to an ElastiCache cluster. For example, when using a cluster of r6g.xlarge nodes and running 5200 concurrent clients, you can achieve up to 72% increased throughput (read and write operations per second) and up to 71% decreaseed P99 latency, compared with ElastiCache for Redis version 6.

For more information on the Redis 7.0 release, see Redis 7.0 Release Notes at Redis on GitHub.

ElastiCache for Redis version 6.2 (enhanced)

ElastiCache for Redis 6.2 includes performance improvements for TLS-enabled clusters using x86 node types with 8 vCPUs or more or Graviton2 node types with 4 vCPUs or more. These enhancements improve throughput and reduce client connection establishment time by offloading encryption to other vCPUs. With Redis 6.2, you can also manage access to Pub/Sub channels with Access Control List (ACL) rules.

With this version, we also introduce support for data tiering on cluster nodes containing locally attached NVMe SSD. For more information, see Data tiering.

Redis engine version 6.2.6 also introduces support for native JavaScript Object Notation (JSON) format, a simple, schemaless way to encode complex datasets inside Redis clusters. With JSON support, you can leverage the performance and Redis APIs for applications that operate over JSON. For more information, see Getting started with JSON. Also included are JSON-related metrics, JsonBasedCmds and JsonBasedCmdsLatency, that are incorporated into CloudWatch to monitor the usage of this datatype. For more information, see Metrics for Redis.

You specify the engine version by using 6.2. ElastiCache for Redis will automatically invoke the preferred patch version of Redis 6.2 that is available. For example, when you create/modify a cache cluster, you set the --engine-version parameter to 6.2. The cluster will be launched with the current available preferred patch version of Redis 6.2 at the creation/modification time. Specifying engine version 6.x in the API will result in the latest minor version of Redis 6.

For existing 6.0 clusters, you can opt-in to the next auto minor version upgrade by setting the AutoMinorVersionUpgrade parameter to yes in the CreateCacheCluster, ModifyCacheCluster, CreateReplicationGroup or ModifyReplicationGroup APIs. ElastiCache for Redis will upgrade the minor version of your existing 6.0 clusters to 6.2 using self-service updates. For more information, see Self-service updates in Amazon ElastiCache.

When calling the DescribeCacheEngineVersions API, the EngineVersion parameter value will be set to 6.2 and the actual engine version with the patch version will be returned in the CacheEngineVersionDescription field. 

For more information on the Redis 6.2 release, see Redis 6.2 Release Notes at Redis on GitHub.

ElastiCache for Redis version 6.0 (enhanced)

Amazon ElastiCache for Redis introduces the next version of the Redis engine, which includes Authenticating Users with Role Based Access Control, client-side caching and significant operational improvements.

Beginning with Redis 6.0, ElastiCache for Redis will offer a single version for each Redis OSS minor release, rather than offering multiple patch versions. ElastiCache for Redis will automatically manage the patch version of your running cache clusters, ensuring improved performance and enhanced security.

You can also opt-in to the next auto minor version upgrade by setting the AutoMinorVersionUpgrade parameter to yes and ElastiCache for Redis will manage the minor version upgrade, through self-service updates. For more information, see Service updates in ElastiCache.

You specify the engine version by using 6.0. ElastiCache for Redis will automatically invoke the preferred patch version of Redis 6.0 that is available. For example, when you create/modify a cache cluster, you set the --engine-version parameter to 6.0. The cluster will be launched with the current available preferred patch version of Redis 6.0 at the creation/modification time. Any request with a specific patch version value will be rejected, an exception will be thrown and the process will fail.

When calling the DescribeCacheEngineVersions API, the EngineVersion parameter value will be set to 6.0 and the actual engine version with the patch version will be returned in the CacheEngineVersionDescription field. 

For more information on the Redis 6.0 release, see Redis 6.0 Release Notes at Redis on GitHub.

ElastiCache for Redis version 5.0.6 (enhanced)

Amazon ElastiCache for Redis introduces the next version of the Redis engine, which includes bug fixes and the following cumulative updates:

  • Engine stability guarantee in special conditions.

  • Improved Hyperloglog error handling.

  • Enhanced handshake commands for reliable replication.

  • Consistent message delivery tracking via XCLAIM command.

  • Improved LFU field management in objects.

  • Enhanced transaction management when using ZPOP.

  • Ability to rename commands: A parameter called rename-commands that allows you to rename potentially dangerous or expensive Redis commands that might cause accidental data loss, such as FLUSHALL or FLUSHDB. This is similar to the rename-command configuration in open source Redis. However, ElastiCache has improved the experience by providing a fully managed workflow. The command name changes are applied immediately, and automatically propagated across all nodes in the cluster that contain the command list. There is no intervention required on your part, such as rebooting nodes.

    The following examples demonstrate how to modify existing parameter groups. They include the rename-commands parameter, which is a space-separated list of commands you want to rename:

    aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group --parameter-name-values "ParameterName=rename-commands, ParameterValue='flushall restrictedflushall'" --region region

    In this example, the rename-commands parameter is used to rename the flushall command to restrictedflushall.

    To rename multiple commands, use the following:

    aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group --parameter-name-values "ParameterName=rename-commands, ParameterValue='flushall restrictedflushall flushdb restrictedflushdb''" --region region

    To revert any change, re-run the command and exclude any renamed values from the ParameterValue list that you want to retain, as shown following:

    aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group --parameter-name-values "ParameterName=rename-commands, ParameterValue='flushall restrictedflushall'" --region region

    In this case, the flushall command is renamed to restrictedflushall and any other renamed commands revert to their original command names.

    Note

    When renaming commands, you are restricted to the following limitations:

    • All renamed commands should be alphanumeric.

    • The maximum length of new command names is 20 alphanumeric characters.

    • When renaming commands, ensure that you update the parameter group associated with your cluster.

    • To prevent a command's use entirely, use the keyword blocked, as shown following:

      aws elasticache modify-cache-parameter-group --cache-parameter-group-name custom_param_group --parameter-name-values "ParameterName=rename-commands, ParameterValue='flushall blocked'" --region region

    For more information on the parameter changes and a list of what commands are eligible for renaming, see Redis 5.0.3 parameter changes.

  • Redis Streams: This models a log data structure that allows producers to append new items in real time. It also allows consumers to consume messages either in a blocking or nonblocking fashion. Streams also allow consumer groups, which represent a group of clients to cooperatively consume different portions of the same stream of messages, similar to Apache Kafka. For more information, see Introduction to Redis Streams.

  • Support for a family of stream commands, such as XADD, XRANGE and XREAD. For more information, see Redis Streams Commands.

  • A number of new and renamed parameters. For more information, see Redis 5.0.0 parameter changes.

  • A new Redis metric, StreamBasedCmds.

  • Slightly faster snapshot time for Redis nodes.

Important

Amazon ElastiCache for Redis has back-ported two critical bug fixes from Redis open source version 5.0.1. They are listed following:

  • RESTORE mismatch reply when certain keys have already expired.

  • The XCLAIM command can potentially return a wrong entry or desynchronize the protocol.

Both of these bug fixes are included in ElastiCache for Redis support for Redis engine version 5.0.0 and are consumed in future version updates.

For more information, see Redis 5.0.6 Release Notes at Redis on GitHub.

ElastiCache for Redis version 5.0.5 (deprecated, use version 5.0.6)

Amazon ElastiCache for Redis introduces the next version of the Redis engine;. It includes online configuration changes for ElastiCache for Redis of auto-failover clusters during all planned operations. You can now scale your cluster, upgrade the Redis engine version and apply patches and maintenance updates while the cluster stays online and continues serving incoming requests. It also includes bug fixes.

For more information, see Redis 5.0.5 Release Notes at Redis on GitHub.

ElastiCache for Redis version 5.0.4 (deprecated, use version 5.0.6)

Amazon ElastiCache for Redis introduces the next version of the Redis engine supported by Amazon ElastiCache. It includes the following enhancements:

  • Engine stability guarantee in special conditions.

  • Improved Hyperloglog error handling.

  • Enhanced handshake commands for reliable replication.

  • Consistent message delivery tracking via XCLAIM command.

  • Improved LFU field management in objects.

  • Enhanced transaction management when using ZPOP.

For more information, see Redis 5.0.4 Release Notes at Redis on GitHub.

ElastiCache for Redis version 5.0.3 (deprecated, use version 5.0.6)

Amazon ElastiCache for Redis introduces the next version of the Redis engine supported by Amazon ElastiCache which includes bug fixes.

ElastiCache for Redis version 5.0.0 (deprecated, use version 5.0.6)

Amazon ElastiCache for Redis introduces the next major version of the Redis engine supported by Amazon ElastiCache. ElastiCache for Redis 5.0.0 brings support for the following improvements:

  • Redis Streams: This models a log data structure that allows producers to append new items in real time. It also allows consumers to consume messages either in a blocking or nonblocking fashion. Streams also allow consumer groups, which represent a group of clients to cooperatively consume different portions of the same stream of messages, similar to Apache Kafka. For more information, see Introduction to Redis Streams.

  • Support for a family of stream commands, such as XADD, XRANGE and XREAD. For more information, see Redis Streams Commands.

  • A number of new and renamed parameters. For more information, see Redis 5.0.0 parameter changes.

  • A new Redis metric, StreamBasedCmds.

  • Slightly faster snapshot time for Redis nodes.

ElastiCache for Redis version 4.0.10 (enhanced)

Amazon ElastiCache for Redis introduces the next major version of the Redis engine supported by Amazon ElastiCache. ElastiCache for Redis 4.0.10 brings support the following improvements:

Redis (cluster mode disabled) users running Redis version 3.2.10 can use the console to upgrade their clusters via online upgrade.

Comparing ElastiCache for Redis cluster resizing and encryption support
Version
Feature 3.2.6 3.2.10 4.0.10 and later
Online cluster resizing * No Yes Yes
In-transit encryption ** Yes No Yes
At rest encryption ** Yes No Yes
* Adding, removing, and rebalancing shards.
** Required for FedRAMP, HIPAA, and PCI DSS compliant applications. For more information, see Compliance validation for Amazon ElastiCache.

Past End of Life (EOL) versions (3.x)

ElastiCache for Redis version 3.2.10 (enhanced)

Amazon ElastiCache for Redis introduces the next major version of the Redis engine supported by Amazon ElastiCache. ElastiCache for Redis 3.2.10 introduces online cluster resizing to add or remove shards from the cluster while it continues to serve incoming I/O requests. ElastiCache for Redis 3.2.10 users have all the functionality of earlier Redis versions except the ability to encrypt their data. This ability is currently available only in version 3.2.6.

Comparing ElastiCache for Redis versions 3.2.6 and 3.2.10
Version
Feature 3.2.6 3.2.10
Online cluster resizing * No Yes
In-transit encryption ** Yes No
At rest encryption ** Yes No
* Adding, removing, and rebalancing shards.
** Required for FedRAMP, HIPAA, and PCI DSS compliant applications. For more information, see Compliance validation for Amazon ElastiCache.

For more information, see the following:

ElastiCache for Redis version 3.2.6 (enhanced)

Amazon ElastiCache for Redis introduces the next major version of the Redis engine supported by Amazon ElastiCache. ElastiCache for Redis 3.2.6 users have all the functionality of earlier Redis versions plus the option to encrypt their data. For more information, see the following:

ElastiCache for Redis version 3.2.4 (enhanced)

Amazon ElastiCache for Redis version 3.2.4 introduces the next major version of the Redis engine supported by Amazon ElastiCache. ElastiCache for Redis 3.2.4 users have all the functionality of earlier Redis versions available to them plus the option to run in cluster mode or non-cluster mode. The following table summarizes .

Comparing Redis 3.2.4 non-cluster mode and cluster mode
Feature Non-cluster mode Cluster mode
Data partitioning No Yes
Geospatial indexing Yes Yes
Change node type Yes Yes *
Replica scaling Yes Yes *
Scale out No Yes *
Database support Multiple Single

Parameter group

default.redis3.2 **

default.redis3.2.cluster.on **

*  See Restoring from a backup into a new cache

** Or one derived from it.

Notes:
  • Partitioning – the ability to split your data across 2 to 500 node groups (shards) with replication support for each node group.

  • Geospatial indexing – Redis 3.2.4 introduces support for geospatial indexing via six GEO commands. For more information, see the Redis GEO* command documentation Redis Commands: GEO on the Redis Commands page (filtered for GEO).

For information about additional Redis 3 features, see Redis 3.2 release notes and Redis 3.0 release notes.

Currently ElastiCache managed Redis (cluster mode enabled) does not support the following Redis 3.2 features:

  • Replica migration

  • Cluster rebalancing

  • Lua debugger

ElastiCache disables the following Redis 3.2 management commands:

  • cluster meet

  • cluster replicate

  • cluster flushslots

  • cluster addslots

  • cluster delslots

  • cluster setslot

  • cluster saveconfig

  • cluster forget

  • cluster failover

  • cluster bumpepoch

  • cluster set-config-epoch

  • cluster reset

For information about Redis 3.2.4 parameters, see Redis 3.2.4 parameter changes.

Past End of Life (EOL) versions (2.x)

ElastiCache for Redis version 2.8.24 (enhanced)

Redis improvements added since version 2.8.23 include bug fixes and logging of bad memory access addresses. For more information, see Redis 2.8 release notes.

ElastiCache for Redis version 2.8.23 (enhanced)

Redis improvements added since version 2.8.22 include bug fixes. For more information, see Redis 2.8 release notes. This release also includes support for the new parameter close-on-slave-write which, if enabled, disconnects clients who attempt to write to a read-only replica.

For more information on Redis 2.8.23 parameters, see Redis 2.8.23 (enhanced) added parameters in the ElastiCache User Guide.

ElastiCache for Redis version 2.8.22 (enhanced)

Redis improvements added since version 2.8.21 include the following:

  • Support for forkless backups and synchronizations, which allows you to allocate less memory for backup overhead and more for your application. For more information, see How synchronization and backup are implemented. The forkless process can impact both latency and throughput. When there is high write throughput, when a replica re-syncs, it can be unreachable for the entire time it is syncing.

  • If there is a failover, replication groups now recover faster because replicas perform partial syncs with the primary rather than full syncs whenever possible. Additionally, both the primary and replicas no longer use the disk during syncs, providing further speed gains.

  • Support for two new CloudWatch metrics.

    • ReplicationBytes – The number of bytes a replication group's primary cluster is sending to the read replicas.

    • SaveInProgress – A binary value that indicates whether or not there is a background save process running.

    For more information, see Monitoring use with CloudWatch Metrics.

  • A number of critical bug fixes in replication PSYNC behavior. For more information, see Redis 2.8 release notes.

  • To maintain enhanced replication performance in Multi-AZ replication groups and for increased cluster stability, non-ElastiCache replicas are no longer supported.

  • To improve data consistency between the primary cluster and replicas in a replication group, the replicas no longer evict keys independent of the primary cluster.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

  • In low-memory situations, clients with a large output buffer might be disconnected from a replica cluster. If disconnected, the client needs to reconnect. Such situations are most likely to occur for PUBSUB clients.

ElastiCache for Redis version 2.8.21

Redis improvements added since version 2.8.19 include a number of bug fixes. For more information, see Redis 2.8 release notes.

ElastiCache for Redis version 2.8.19

Redis improvements added since version 2.8.6 include the following:

  • Support for HyperLogLog. For more information, see Redis new data structure: HyperLogLog.

  • The sorted set data type now has support for lexicographic range queries with the new commands ZRANGEBYLEX, ZLEXCOUNT, and ZREMRANGEBYLEX.

  • To prevent a primary node from sending stale data to replica nodes, the master SYNC fails if a background save (bgsave) child process is aborted.

  • Support for the HyperLogLogBasedCommands CloudWatch metric. For more information, see Metrics for Redis.

ElastiCache for Redis version 2.8.6

Redis improvements added since version 2.6.13 include the following:

  • Improved resiliency and fault tolerance for read replicas.

  • Support for partial resynchronization.

  • Support for user-defined minimum number of read replicas that must be available at all times.

  • Full support for pub/sub—notifying clients of events on the server.

  • Automatic detection of a primary node failure and failover of your primary node to a secondary node.

ElastiCache for Redis version 2.6.13

Redis version 2.6.13 was the initial version of Redis supported by Amazon ElastiCache for Redis. Multi-AZ is not supported on Redis 2.6.13.