Setting the file. One moment.
Chapter 61 · Amazon Elasticache
Subchapter 61.15
references/migration/feature-comparison.mdMarkdown11 KBView on GitHub
Side-by-side comparison of features, capabilities, and constraints across migration paths. Use this reference to identify what is gained, lost, or changed when moving between engines and deployment models.
| Feature | Valkey (7.2+) | Redis OSS (7.x) | Memcached |
|---|---|---|---|
| Data Structures | |||
| Strings | Yes | Yes | Yes |
| Hashes | Yes | Yes | No |
| Lists | Yes | Yes | No |
| Sets | Yes | Yes | No |
| Sorted Sets | Yes | Yes | No |
| Streams | Yes | Yes | No |
| HyperLogLog | Yes | Yes | No |
| Bitmaps | Yes | Yes | No |
| Geospatial | Yes | Yes | No |
| JSON (native) | Yes | Yes | No |
| Vector Search | Yes (8.2+, node-based only) | No | No |
| Persistence and Replication | |||
| Snapshots (RDB) | Yes | Yes | Serverless only (automatic backups) (verify against latest Memcached serverless documentation for current backup behavior) |
| AOF persistence | Deprecated (legacy only) | Deprecated (legacy only) | No |
| Replication | Yes | Yes | No |
| Multi-AZ failover | Yes | Yes | No |
| Global Datastore | Yes (node-based only) | Yes (node-based only) | No |
| Cluster and Scaling | |||
| Cluster mode (sharding) | Yes | Yes | No (data partitioning via client-side auto-discovery) |
| Max shards (cluster mode) | 500 (default 90 nodes; increasable to 500 for v5.0.6+; 250 for earlier versions) | 500 (default 90 nodes; increasable to 500 for v5.0.6+; 250 for earlier versions) | N/A (up to 60 nodes per cluster) |
| Online resharding | Yes | Yes | No |
| Serverless deployment | Yes | Yes | Yes |
| Authentication and Security | |||
| RBAC (per-user ACLs) | Yes | Yes | No |
| IAM authentication | Yes (7.2+) | Yes (7.0+) | No |
| AUTH token (legacy) | Yes (node-based only) | Yes (node-based only) | No |
| In-transit encryption (TLS) | Yes | Yes | Yes |
| At-rest encryption | Yes | Yes | Yes |
| Pub/Sub and Messaging | |||
| Pub/Sub | Yes | Yes | No |
| Keyspace notifications | Yes | Yes | No |
| Operational | |||
| Lua scripting | Yes | Yes | No |
| Transactions (MULTI/EXEC) | Yes | Yes | No (CAS via gets/cas) |
| Pipelining | Yes | Yes | Yes |
| Max item size | 512 MB | 512 MB | 1 MB (default) |
| Max connections | Varies by node type | Varies by node type | Varies by node type |
| Pricing | |||
| Node-based discount vs Redis OSS | 20% lower | Baseline | Lowest node cost |
| Serverless discount vs Redis OSS | 33% lower | Baseline | Available |
What you gain:
What you lose:
What changes:
redis to valkey in API calls and IaCWhat you gain:
What you lose:
What changes:
| Feature | Serverless | Node-Based |
|---|---|---|
| Provisioning | ||
| Setup time | Under 1 minute | 5-15 minutes |
| Capacity planning | Automatic | Manual (choose node type, count) |
| Scaling | Automatic (up and down) | Manual or policy-based |
| Networking | ||
| VPC required | Yes | Yes |
| Port | 6379 | 6379 (configurable) |
| TLS | Always enabled (cannot disable) | Optional (strongly recommended) |
| Authentication | ||
| RBAC | Yes | Yes |
| IAM auth | Yes | Yes |
| AUTH token | Not supported | Yes (legacy) |
| Data and Performance | ||
| Max data storage | Default 5 TB (adjustable via CacheUsageLimits); max 32 GiB per slot | Limited by node type and shard count |
| Max throughput | Default 15,000,000 ECPU/s (adjustable via CacheUsageLimits); 30K-90K ECPU/s per slot | Depends on node type and shard count |
| Latency | Single-digit milliseconds | Sub-millisecond |
| Features | ||
| Vector search | Not supported | Yes (Valkey 8.2 or above) |
| Global Datastore | Not supported | Yes |
| Cluster mode | Automatic (transparent) | Configurable (enabled/disabled) |
| Custom parameter groups | Not supported | Yes |
| Pub/Sub | Yes | Yes |
| Keyspace notifications | Not supported | Yes |
| Lua scripting | Yes (with restrictions) | Yes |
| Operations | ||
| Maintenance windows | None (transparent patching) | Weekly configurable window |
| Manual snapshots | Yes (CreateServerlessCacheSnapshot) | Yes (create-snapshot) |
| Snapshot restore | Yes (create-serverless-cache --snapshot-arns-to-restore) | Yes (create-replication-group --snapshot-name) |
| Node type selection | N/A | Full control |
| Reserved pricing | Not available | Yes (1-year or 3-year) |
| Pricing Model | ||
| Billing unit | ECPU + data storage (GB-hours) | Node-hours + optional data transfer |
| Minimum cost | ~$6/month (Valkey, approximate, us-east-1) | Varies by node type (starts ~$12/month for t4g.micro) |
| Cost optimization | Automatic right-sizing | Reserved nodes, right-sizing, Graviton |
What you gain:
What you lose:
What changes:
*.serverless.<region>.cache.amazonaws.comSELECT command (multiple databases) is not supported (serverless is always cluster-mode enabled, so only database 0 is available)What you gain:
python3 scripts/price_calculator.py --mode node --node-type <type> --nodes <N> --show-ri-options for current estimates)What you lose:
What changes:
| From | To | In-Place? | Data Migration Required? | Application Code Changes? | Auth Changes? |
|---|---|---|---|---|---|
| Redis OSS (node-based) | Valkey (node-based) | Yes | No | No | No |
| Valkey 7.2 | Valkey 8.1 | Yes | No | No | No |
| Valkey 7.2 | Valkey 8.2 | Yes (direct upgrade supported) | No | No | No |
| Self-managed Redis | ElastiCache (node-based) | No | Yes (replication or snapshot) | Endpoint update | May need RBAC |
| Self-managed Redis | ElastiCache (serverless) | No | Yes (dual-write or app-level) | Endpoint + TLS + auth | Must use RBAC |
| Node-based | Serverless | No | Yes (dual-write or snapshot-restore) | Endpoint + TLS + auth | Must switch to RBAC if using AUTH token |
| Serverless | Node-based | No | Yes (dual-write) | Endpoint, possibly auth | Optional |
| Memcached | Valkey | No | Yes (full rewrite) | Full rewrite | Must add RBAC or IAM |
| Cluster-mode disabled | Cluster-mode enabled | Yes (Valkey 7.2+/Redis OSS 7.0+ via compatible mode); No (older versions) | No (7.0+); Yes (older versions) | Cluster-aware client required | No |
The following transitions are not supported in-place and require special handling:
| Transition | Why Not Supported | Workaround |
|---|---|---|
| Valkey to Redis OSS (downgrade) | Valkey 7.2 to Redis OSS 7.1 rollback is supported in-place (no downtime). Other Valkey versions cannot be downgraded in-place. | For Valkey 7.2 node-based: use modify-replication-group specifying Redis OSS 7.1. For Valkey 7.2 serverless: use modify-serverless-cache specifying Redis OSS 7.1. For other versions: restore from pre-upgrade snapshot to new Redis OSS cluster. |
| Higher to lower engine version | Version downgrade not supported | Restore from pre-upgrade snapshot to new cluster with older version |
| Serverless to node-based (direct) | No direct conversion path | Create new node-based cluster, migrate data, cut over |
| Node-based to serverless (direct) | No direct conversion path | Create new serverless cache, migrate data, cut over |
| Memcached to Valkey (direct) | Different engines, different data models | Create new Valkey cache, rewrite application, re-populate data |