github redis/redis-py v7.0.0
7.0.0

one day ago

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 #3785)
  • Adding WITHATTRIBS option to vector set's vsim command. (#3746)
  • Adding ssl_verify_flags_config argument for ssl connection configuration (#3772)
  • Adding new ExternalAuthProviderError that will be raised when we receive 'problem with LDAP service' response from server. (#3808)
    Note Not supported with hiredis parser. When hiredis parser is used this server response is mapped to ResponseError

๐Ÿงช Experimental Features

  • Multi-database client implementation (#3784 #3811)

๐Ÿ”ฅ 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)
  • Fixing several *arg type hints in core.py and json module commands (#3793)
  • Fixing errors reported by mypy in search module files - query.py, commands.py and aggregation.py. (#3666)
  • Adding score_cast_func argument to zrank, zrevrank and zunion - for consistency with the other sorted sets commands (#3795)
  • Changing the timeout typehint in async BlockingConnectionPool from int to float (#3801)

๐Ÿ› 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)
  • [DOC] Add complex chaining example using pipelines with builder pattern (#3774)
  • Fix automation scenario maint notification (#3788)
  • Add redis 8.4-M01-pre to tested redis versions (#3790)
  • Add handling of empty spaces during CLIENT LIST response parsing (#3797)
  • DOC-5821 update index/query example for runnable notebook (#3807)
  • Fixing SORTABLE, INDEXEMPTY and INDEXMISSING order when using RediSearch fields (#3810)
  • Fixing argument type hints for evalsha and similar commands. (#3794)
  • Update Python version to 3.14 in hiredis CI workflow (#3798)
  • Fixing sync BlockingConnectionPool's disconnect method to follow the definition in ConnectionPoolInterface (#3802)

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

Don't miss a new redis-py release

NewReleases is sending notifications on new releases.