AWS Database Blog
Announcing Valkey 9.1 for Amazon ElastiCache
Amazon ElastiCache now supports Valkey 9.1, bringing the latest community-driven innovations from the Valkey open source project to customers running latency-sensitive, high-throughput, and operationally demanding in-memory workloads on ElastiCache. In this post, we discuss how Valkey 9.1 helps you get more throughput and memory efficiency from demanding workloads while providing stronger isolation for multi-tenant and shared-cluster deployments. We also cover new commands that simplify common application and operational workflows, new observability features that give operators better visibility into engine behavior, and how ElastiCache continues to deliver the latest Valkey open source innovations in a fully managed service.
The open source Valkey community developed Valkey 9.1, with contributions focused on security, observability, performance, efficiency, and tooling. For deeper technical details on the upstream release, see the Valkey 9.1 community announcement.
Improve price-performance at scale
The Valkey project’s focus on price-performance is critical for customers operating large-scale ElastiCache deployments, where even modest improvements in throughput, latency, or memory efficiency can translate into meaningful savings. Samsung Electronics, for example, achieved about 30% infrastructure cost savings by upgrading to ElastiCache for Valkey, while maintaining the performance, reliability, and developer experience required for its global services. Valkey 9.1 continues this focus with enhancements that help customers process more requests per node, store more data in the same footprint, and operate more predictably as workloads scale.
For throughput-bound workloads, higher per-node performance can help customers absorb traffic growth on existing infrastructure, delay scaling events, or reduce the number of nodes required to serve the same request volume. Valkey 9.1 includes a redesigned I/O threading communication model that improves throughput across a variety of workloads. In upstream Valkey benchmark testing, Valkey 9.1 achieved up to 2.1 million requests per second on a single server using 512-byte payloads, nine I/O threads, and a pipeline depth of 10 commands. You can explore the full results and compare across versions on the Valkey Performance Dashboards. It also includes I/O threading enhancements that improved throughput by up to 17% in upstream tested workloads.
Valkey 9.1 also improves performance for common high-throughput access patterns. These include faster stream range reads with XRANGE and XREVRANGE, higher-throughput string reads for caching workloads, faster sorted set queries for leaderboards and schedulers, and cached COMMAND responses that reduce client initialization overhead.
For memory-bound workloads, better memory efficiency helps customers store more data on the same node size. It can also reduce memory pressure without requiring changes to application behavior. Valkey 9.1 reduces memory usage for STRINGS under 128 bytes by up to 20% and sorted set memory usage by up to 10%. These savings are especially valuable for workloads that store large numbers of small cached values, rankings, schedules, or rate-limit state.
Valkey 9.1 also improves internal rehashing behavior to reduce latency impact during keyspace growth. It additionally pauses unnecessary hash table resizing during bulk delete operations such as SREM, ZREM, and HDEL. Together, these enhancements help customers improve throughput, reduce memory pressure, and increase operational predictability while getting more value from their ElastiCache infrastructure. For businesses, this can mean lower infrastructure costs, more headroom for traffic growth, and greater confidence during periods of peak demand. For end users, it helps deliver more responsive and reliable applications, whether they are loading personalized experiences, viewing real-time rankings, processing events, or interacting with latency-sensitive AI-powered features.
Fine-grained access control for multi-tenant workloads
Teams running multi-tenant or shared-cluster workloads need ways to isolate applications, tenants, and environments without sacrificing cluster mode’s scalability and availability. MoEngage, for example, uses ElastiCache for Valkey to support a customer engagement system serving more than 1,350 global brands and delivering billions of personalized messages daily. Valkey 9.0 addressed this by introducing numbered databases in cluster mode, combining logical separation with horizontal scaling across shards. This lets teams separate tenants or environments within a single cluster while retaining full cluster mode benefits.
As an example, we can create a user and limit their access to databases 0 and 1:
After authenticating, that user can interact with database 0:
But not database 2:
Valkey 9.1 builds on that foundation with database-level access control lists, so you can scope user permissions to specific databases. Previously, access control rules could limit which commands users could run and which keys they could access, but those permissions applied broadly across databases. With Valkey 9.1, you can grant users access only to the databases they need. Together, numbered databases in cluster mode and database-level access controls help expand the range of workloads that can be consolidated onto shared clusters while maintaining stronger isolation and governance.
Simplify common workflows with new commands
As applications scale, teams often rely on multi-step client logic to implement common workflows such as consuming temporary state, setting multiple expiring keys, or scanning data across a cluster. These patterns can add complexity, increase network round trips, and make application code harder to maintain.
Valkey 9.1 introduces new commands that simplify these workflows. HGETDEL atomically retrieves and deletes one or more fields from a hash, which helps you build workflows that consume temporary state, one-time tokens, or queue-like data exactly once. For example, a worker can retrieve and remove job state in a single command while leaving other job metadata in place.
MSETEX sets multiple keys with a shared expiration time in a single command. This simplifies patterns such as writing session keys, cache fragments, rate-limit buckets, or other temporary application state with a consistent TTL.
Valkey 9.1 also introduces CLUSTERSCAN, which provides a unified way to scan keys across a cluster. Previously, clients needed to scan each node independently and merge results themselves. CLUSTERSCAN simplifies cluster-aware operational tooling, debugging, inventory jobs, and migration utilities by providing a cluster-wide interface for iterating over keys.
Together, these commands help developers and operators express common workflows more directly, reduce client-side complexity, and build applications and tools that work more naturally with large cluster-mode enabled deployments.
Improved observability for large deployments
Valkey 9.1 also adds new visibility improvements that help customers operate large deployments more effectively. New main-thread and I/O-thread usage metrics provide a clearer view into how busy the engine is, helping operators distinguish between actual workload pressure and expected thread behavior.
The release also adds JSON-formatted server logs, making it straightforward to ingest, search, and analyze engine logs in observability platforms without custom parsing logic.
Together, these enhancements help teams tune clusters, investigate performance issues, and manage large ElastiCache deployments with greater confidence.
Conclusion
Valkey 9.1 for Amazon ElastiCache continues the evolution of Valkey from a high-performance cache into a broader foundation for real-time, shared, and operationally demanding applications. For customers running node-based clusters, this release helps improve infrastructure efficiency, strengthen workload isolation, reduce application and tooling complexity, and operate large deployments with greater confidence.
To get started, you can:
- Create your first Valkey 9.1 cache: See the ElastiCache Getting Started tutorial to launch a new cache.
- Upgrade an existing cluster: Follow the engine version upgrade documentation to upgrade an existing ElastiCache cluster running Valkey or Redis OSS.
- Move existing self-hosted workloads to ElastiCache: Use Online Migration for Valkey or Redis OSS to migrate data from self-hosted open-source Valkey or Redis OSS on Amazon EC2 to Amazon ElastiCache.
- Explore the open source release: Read the Valkey 9.1 community announcement for deeper technical details.
Valkey 9.1 for Amazon ElastiCache is available at no additional cost in supported AWS Regions.