Skip to content

Conversation

@renovate-bot
Copy link
Contributor

This PR contains the following updates:

Package Change Age Confidence
redis (changelog) ==6.0.0 -> ==7.0.0 age confidence

Release Notes

redis/redis-py (redis)

v7.0.0: 7.0.0

Compare Source

Changes

One of the main features introduced in this release is a new type of client MultiDBClient. The purpose of this client is a communication with multiple databases that are eventually consistent (Active-Active setup) and handling failures by failover across databases.
More information could be found in docs.

🚀 New Features

  • Support for maintenance push notifications handling during server upgrade or maintenance procedures. (#​3756 #​3777 #​3778 #​3779)
  • Adding WITHATTRIBS option to vector set's vsim command. (#​3746)
  • Adding ssl_verify_flags_config argument for ssl connection configuration (#​3772)

🧪 Experimental Features

  • Multi-database client implementation (#​3784)

🔥 Breaking changes

  • Adding abstract method declaration for cache property setter in EvictionPolicyInterface(#​3732)
  • Remove unused parse_list_to_dict function from helpers (#​3733)
  • Removing synchronous context manager handling from async RedisCluster. (#​3679)
  • Redis Search/Aggregate improved type annotations (#​3676)
  • Removing the threading.Lock locks and replacing them with RLock objects to avoid deadlocks. (#​3677)
  • Update ping command docstrings and method return type hint (#​3789)

🐛 Bug Fixes

  • Removing the threading.Lock locks and replacing them with RLock objects to avoid deadlocks. (#​3677)

🧰 Maintenance

  • Bump actions/checkout from 4 to 5 (#​3760)
  • Fix docstring for ssl_check_hostname (#​3761)
  • Typos in vectorset commands.py (#​3719)
  • Fixing typos in query.py (#​3718)
  • Typos in cluster.py (#​3717)
  • Fixing typos in core.py (#​3720)
  • Update Redis image versions for GH pipeline actions. (#​3740)
  • Support the customization of the timeout parameter when using a blocking connection pool with a redis cluster (#​3724)
  • Fix async clients safety when used as an async context manager (#​3512)
  • docs: fix zadd command parameter description (#​3727)
  • Fault injector boilerplate (#​3749)
  • Adding e2e scenario tests for maintenance push notifications handling. (#​3758)
  • Adding more e2e tests related to maintenance notifications. Extracting specific tests that validate notifications are received in new connections (#​3770)
  • Renaming of classes and configuration arguments related to maintenance push notifications handling during server upgrade or maintenance procedures (#​3777 #​3778)
  • DOC-5743 BITOP examples (#​3776)
  • Improve stale issue management workflow (#​3773)

We'd like to thank all the contributors who worked on this release!
@​scovetta @​mengxunQAQ @​abrookins @​VincentHokie @​sobolevn @​hunterhogan @​luka-mikec @​andy-stark-redis @​elena-kolevska @​kiryazovi-redis @​petyaslavova

v6.4.0: 6.4.0

Compare Source

Changes

🚀 New Features

  • Added epsilon property to the vsim command (#​3723)

🧰 Maintenance

  • Updating the latest Redis image for github pipeline testing (#​3726)

We'd like to thank all the contributors who worked on this release!
@​htemelski-redis @​elena-kolevska @​petyaslavova @​vladvildanov

v6.3.0: 6.3.0

Compare Source

Changes

🚀 New Features

  • Add support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (#​3690)
  • Support new VAMANA vector index type (#​3702)
  • Add new stream commands (#​3711)
  • add async Retry eq and hash & fix ExponentialWithJitterBackoff eq (#​3668)

🐛 Bug Fixes

  • Fixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (#​3191)
  • Annotate deprecated_args decorator to preserve wrapped function type signature (#​3701)
  • Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (#​3698)
  • add async Retry eq and hash & fix ExponentialWithJitterBackoff eq (#​3668)
  • SentinelManagedConnection searches for new master upon connection failure (#​3560) (#​3601)

🧰 Maintenance

  • fix: avoid instantiating a connection on repr_ (#​3653)
  • Fixing the return type hint for the transaction method in the standalone client. (#​3660)
  • Bump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (#​3665)
  • Dropping integration tests with Redis 6.2 from pipeline actions. (#​3659)
  • Remove deprecated arg from call to ClusterPipeline (#​3670)
  • TransactionStrategy reset: UNWATCH only when status is watching (#​3671)
  • KeyT for set operations (#​3190)
  • Removing references to old docs site 'https://redis-py.readthedocs.io/' replaced by 'https://redis.readthedocs.io/' (#​3674)
  • Removing unnecessary check for tests using AsyncMock (#​3432)
  • Updating test images for github pipeline execution (#​3678)
  • Updating the latest Redis image for pipeline testing (#​3695)
  • Bump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (#​3689)
  • DOC-5225 testable probabilistic dt examples (#​3691)
  • Update README.md (#​3699)
  • Convert the value to int type only if it exists in CLIENT INFO (#​3688)
  • Fix compatibility with latest pytest-asyncio version(1.1.0) (#​3708)
  • DOC-5424 time series examples (#​3705)
  • Adding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (#​3710)

We'd like to thank all the contributors who worked on this release!
@​robertosantamaria-scopely @​mahigupta @​alisaifee @​tzongw @​earonesty @​IlianIliev @​ofekshenawa @​andy-stark-redis @​AmirHossein81Gholami @​mharding-hpe @​git-hulk @​ngabhanenetskope @​terencehonles @​ManelCoutinhoSensei @​petyaslavova @​vladvildanov

v6.2.0: 6.2.0

Compare Source

Changes

🚀 New Features

  • Add dynamic_startup_nodes parameter to async RedisCluster (#​3646)
  • Support RESP3 with hiredis-py parser (#​3648)
  • [Async] Support for transactions in async RedisCluster client (#​3649)

🐛 Bug Fixes

  • Revert wrongly changed default value for check_hostname when instantiating RedisSSLContext (#​3655)
  • Fixed potential deadlock from unexpected __del__ call (#​3654)

🧰 Maintenance

  • Update search_json_examples.ipynb: Fix the old import indexDefinition -> index_definition (#​3652)
  • Remove mandatory update of the CHANGES file for new PRs. Changes file will be kept for history for versions < 4.0.0 (#​3645)
  • Dropping Python 3.8 support as it has reached end of life (#​3657)
  • fix(doc): update Python print output in json doctests (#​3658)
  • Update redis-entraid dependency (#​3661)

We'd like to thank all the contributors who worked on this release!
@​JCornat @​ShubhamKaudewar @​uglide @​petyaslavova @​vladvildanov

v6.1.1

Compare Source

Changes

🐛 Bug Fixes

  • Revert wrongly changed default value for check_hostname when instantiating RedisSSLContext (#​3655)
  • Fixed potential deadlock from unexpected __del__ call (#​3654)

We'd like to thank all the contributors who worked on this release!
@​vladvildanov @​petyaslavova

v6.1.0: 6.1.0

Compare Source

Changes

🚀 New Features

  • Support for transactions in RedisCluster client (#​3611)
  • Add equality and hashability to Retry and backoff classes (#​3628)

🐛 Bug Fixes

  • Fix RedisCluster ssl_check_hostname not set to connections. For SSL verification with ssl_cert_reqs="none", check_hostname is set to False (#​3637)
    Important: The default value for the check_hostname field of RedisSSLContext has been changed as part of this PR - this is a breaking change and should not be introduced in minor versions - unfortunately, it is part of the current release.
    The breaking change is reverted in the next release to fix the behavior --> 6.2.0
  • Prevent RuntimeError while reinitializing clusters - sync and async (#​3633)
  • Add equality and hashability to Retry and backoff classes (#​3628) - fixes integration with Django RQ
  • Fix AttributeError on ClusterPipeline (#​3634)

🧰 Maintenance

  • Updating the readme and lib version to contain the changes from the latest stable release (#​3644)
  • Export REDIS_MAJOR_VERSION correctly in run-tests (#​3642)
  • Fix matrix in hiredis-py-integration.yaml (#​3641)
  • Test against unstable hiredis-py (#​3617)
  • Adding return types for the RedisModuleCommands class (#​3632)
  • Updating Redis 8 test image for GH pipeline (#​3639)
  • Allow newer PyJWT versions (#​3636)
  • Change type hints with possible None args or return types to be annotated with Optional - includes commands in core.py and json commands (#​3610)

🙏 Special Thanks

A big thank you to our collaborators at Scopely for their valuable contributions to this release! Your support and improvements help move the project forward — we appreciate it!

Contributors

We'd like to thank all the contributors who worked on this release!
@​robertosantamaria-scopely @​sentrivana @​terencehonles @​kesha1225 @​aberres @​uglide @​omerfeyzioglu @​petyaslavova @​vladvildanov @​andy-stark-redis


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Never, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate-bot renovate-bot requested review from a team as code owners October 22, 2025 19:59
@trusted-contributions-gcf trusted-contributions-gcf bot added kokoro:force-run Add this label to force Kokoro to re-run the tests. owlbot:run Add this label to trigger the Owlbot post processor. labels Oct 22, 2025
@product-auto-label product-auto-label bot added samples Issues that are directly related to samples. api: cloudfunctions Issues related to the Cloud Run functions API. api: memorystore labels Oct 22, 2025
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @renovate-bot, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on a routine dependency update, upgrading the redis Python client library to its major version 7.0.0. This update brings significant enhancements, most notably the introduction of a MultiDBClient for advanced multi-database setups and improved handling of maintenance notifications. While primarily a version bump, the new release also includes several breaking changes that may require attention to ensure compatibility and smooth integration.

Highlights

  • Dependency Update: This pull request updates the redis Python client library from version 6.0.0 to 7.0.0.
  • Major New Features: Version 7.0.0 introduces a new MultiDBClient for communicating with multiple eventually consistent databases (Active-Active setup) and handling failovers. It also adds support for maintenance push notifications.
  • Breaking Changes: The update includes several breaking changes, such as modifications to EvictionPolicyInterface, removal of an unused helper function, changes to async RedisCluster context management, improved type annotations for Redis Search/Aggregate, and replacement of threading.Lock with RLock. Reviewers should be aware of these potential impacts.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@kokoro-team kokoro-team removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Oct 22, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the redis dependency from version 6.0.0 to 7.0.0. This is a major version update. While reviewing the impact of this change, I found a critical issue regarding Python version compatibility for the GKE deployment. The new redis version requires Python 3.8+, but the Dockerfile for GKE is configured to use Python 3.4. This will cause the container build to fail. Additionally, the code in both sample applications uses the deprecated redis.StrictRedis class, which should be updated to redis.Redis. I've added specific comments on the requirements.txt files with more details.

Flask==3.0.3
gunicorn==23.0.0
redis==6.0.0
redis==7.0.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

This update to redis==7.0.0 has a critical side-effect and also highlights a needed code modernization.

1. Python Version Incompatibility (Critical):
redis-py>=6.0.0 requires Python 3.8+. The Dockerfile at memorystore/redis/gke_deployment/Dockerfile is configured to use Python 3.4. This will cause the Docker build to fail when installing dependencies. The Dockerfile needs to be updated to use a more recent Python version (3.8 or higher).

2. Deprecated StrictRedis class (Medium):
memorystore/redis/main.py uses the deprecated redis.StrictRedis class. This should be updated to redis.Redis.

In memorystore/redis/main.py (line 24):

- redis_client = redis.StrictRedis(host=redis_host, port=redis_port)
+ redis_client = redis.Redis(host=redis_host, port=redis_port)

@@ -1,2 +1,2 @@
functions-framework==3.9.2
redis==6.0.0
redis==7.0.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

While this update is fine for the Cloud Function environment, it's a good opportunity to address the use of a deprecated class. The redis.StrictRedis class used in functions/memorystore/redis/main.py is deprecated and should be replaced with redis.Redis to align with the library's current API and avoid future breakages.

This change should be applied in functions/memorystore/redis/main.py and its corresponding test file:

In functions/memorystore/redis/main.py (line 24):

- redis_client = redis.StrictRedis(host=redis_host, port=redis_port)
+ redis_client = redis.Redis(host=redis_host, port=redis_port)

In functions/memorystore/redis/main_test.py (line 27):

- @unittest.mock.patch("redis.StrictRedis")
+ @unittest.mock.patch("redis.Redis")

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

Labels

api: cloudfunctions Issues related to the Cloud Run functions API. api: memorystore owlbot:run Add this label to trigger the Owlbot post processor. samples Issues that are directly related to samples.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants