Skip to content

Convert from ElastiCache Redis to ElastiCache Valkey #17860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
4 tasks
miketheman opened this issue Mar 27, 2025 · 1 comment
Open
4 tasks

Convert from ElastiCache Redis to ElastiCache Valkey #17860

miketheman opened this issue Mar 27, 2025 · 1 comment

Comments

@miketheman
Copy link
Member

miketheman commented Mar 27, 2025

Valkey was launched in AWS ElastiCache back in 2024, and claims backwards compatible wire-protocol compliance with open source Redis 7.2, while operating at 20% lower costs (more efficient credits usage for PyPI), and provides a zero-downtime upgrade path.
Read more on the launch blog here: https://aws.amazon.com/blogs/database/get-started-with-amazon-elasticache-for-valkey/ which also includes UI directions on how to perform the upgrade.

The listed differences are here: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/VersionManagementConsiderations-valkey.html
By my reading, nothing there is concerning.

If any upgrades become blocked, there's this page to help: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/resolving-blocked-engine-upgrades.html

To make the transition easy, here's some steps I conceive of:

  • update local dev and CI to use valkey - chore(dev): replace redis with valkey #17861
  • update testpypi's elasticache instance to valkey 7.2.x
  • update pypi's elasticache instance to valkey 7.2.x (probably set a scheduled maintenance for this one)
  • celebrate

As a second stage, once this is completed, we could also entertain replacing the client-side library from redis-py to either valkey or valkey-glide, but that's not strictly necessary right now.

miketheman added a commit to miketheman/warehouse that referenced this issue Mar 27, 2025
As part of the changeover, replace most of the references to `redis` as
a service concept to `cache` since that is what function it performs.

Refs: pypi#17860

Signed-off-by: Mike Fiedler <[email protected]>
@di di added the performance label Mar 31, 2025
@avifenesh
Copy link

Hi :)
When the migration to glide starts, feel free to ping for best practices, better usage of the client or the server (I do both), and anything else needed. Angry comments are acceptable, but enhancement requests are even more.
And when celebrating, ill also will be happy to take part! :)

And since that might be the best forum to ask -
valkey-io/valkey-glide#3464
Currently, Glide is supporting async API only, and there's extensive work to add support for sync API which, I believe, will be released soon.
A discussion opened by a community member brought up the idea of supporting anyio to allow structured concurrency.
If you have a take on how popular it is, effort of maintenance, and generally, which API you would use, ill be happy to hear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants