Skip to content

Releases: redis/redis-py

7.0.0b3

07 Oct 18:17
Compare
Choose a tag to compare
7.0.0b3 Pre-release
Pre-release

Changes

Main feature introduced in this beta 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.

πŸ”₯ Breaking changes

  • Update ping command docstrings and method return type hint (#3789)

πŸš€ New Features

  • Multi-database client implementation (#3784)

🧰 Maintenance

  • [DOC] Add complex chaining example using pipelines with builder pattern (#3774)
  • Fix automation scenarion maint notification (#3788)
  • Add redis 8.4-M01-pre to tested redis versions (#3790)

We'd like to thank all the contributors who worked on this release!
@zion-off @petyaslavova @kiryazovi-redis @vladvildanov

7.0.0b2

26 Sep 17:27
Compare
Choose a tag to compare
7.0.0b2 Pre-release
Pre-release

Changes

πŸš€ New Features

  • Adding ssl_verify_flags_config argument for ssl connection configuration (#3772)
  • Adding 'auto' option to MaintNotificationsConfig.enabled (#3779)

πŸ”₯ Breaking changes

  • (Breaking compared to previous beta release) Renaming of classes and configuration arguments related to maintenance push notifications handling during server upgrade or maintenance procedures (#3777 #3778)

🧰 Maintenance

  • 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!
@petyaslavova @elena-kolevska @andy-stark-redis

7.0.0b1

09 Sep 16:20
Compare
Choose a tag to compare
7.0.0b1 Pre-release
Pre-release

Changes

πŸš€ New Features

  • Support for maintenance push notifications handling during server upgrade or maintenance procedures. (#3756)
  • Adding WITHATTRIBS option to vector set's vsim command. (#3746)

πŸ”₯ 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)

πŸ› 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)

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

6.4.0

07 Aug 08:09
Compare
Choose a tag to compare

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

6.3.0

05 Aug 08:12
Compare
Choose a tag to compare

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

5.3.1

25 Jul 08:05
Compare
Choose a tag to compare

Changes

🧰 Maintenance

  • Allow newer PyJWT versions for branch 5.3 (#3682)

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

v6.1.1

02 Jun 11:43
Compare
Choose a tag to compare

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

6.2.0

28 May 05:00
Compare
Choose a tag to compare

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

6.1.0

13 May 12:16
Compare
Choose a tag to compare

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

6.0.0

30 Apr 19:08
Compare
Choose a tag to compare

Changes

πŸš€ New Features

  • New hash commands with expiration options support are added - HGETDEL, HGETEX, HSETEX (#3570)
  • Adds option not to raise an exception when leaving context manager after lock expiration (#3531)
  • Add force_master_ip support to async Sentinel client (#3524)

πŸ§ͺ Experimental Features

  • Adding VectorSet commands support. (#3584)

πŸ”₯ Breaking changes

  • Changing the default value for ssl_check_hostname to True, to ensure security validations are not skipped by default (#3626)
    Important: When connecting to a Redis master via Sentinel, you may need to set ssl_check_hostname=False if the Sentinel service is not configured to return hostnames.
    Refer to issue #3629 for more details.
  • Updated default value of 'require_full_coverage' argument to true for sync Cluster client to match sync/async cluster APIs (#3434)
  • Adding default retry configuration changes for cluster clients (#3622)
    Important: When instantiating a cluster client retry object becomes mandatory.
    • If retry object is not provided a default one is created with ExponentialWithJitterBackoff strategy and number of retries synced with 'cluster_error_retry_attempts'
    • In case a retry object is provided, its number of retries will be used for cluster operations number of retries and 'cluster_error_retry_attempts' will be ignored
    • Argument 'cluster_error_retry_attempts' is now deprecated
    • For Async Cluster Client the argument 'connection_error_retry_attempts' is completely removed
  • Updating default retry strategy for standalone clients. 3 retries with ExponentialWithJitterBackoff become the default config. (#3614)
  • Removing 'charset' and 'errors' inputs from the Redis initialization arguments - deprecated 3 years ago. (#3608)
  • Removing support for RedisGears module. (#3553). For more info you can check the deprecated Redis features
  • Removing support for RedisGraph module. (#3548). For more info you can check the deprecated Redis features
  • Fixing typing for FCALL commands to match PEP 484 (#3537)
  • Moved ClusterParser exceptions to BaseParser class (#3475)
  • Changed default dialect to 2 (#3467) - This release introduces a client-side default dialect for Redis’ search and query capabilities. By default, the client now overrides the server-side dialect with version 2, automatically appending DIALECT 2to commands like FT.AGGREGATE and FT.SEARCH.
    Important: Be aware that the query dialect may impact the results returned. If needed, you can revert to a different dialect version by configuring the client accordingly. You can find further details in the query dialect documentation.

⚠️ Deprecations

  • Adding default retry configuration changes for cluster clients (#3622)
  • Updating default retry strategy for standalone clients. 3 retries with ExponentialWithJitterBackoff become the default config. (#3614)
  • Marks old RediSearch 1.0 commands as deprecated (#3606)
  • Adding deprecation messages for the exposed in search module commands: FT.CONFIG GET and FT.CONFIG SET (#3499 #3500 )
  • Deprecating Search module config_set and config_get commands. Adding tests for modules ACL and modules config changes in 8.0 (#3489)

πŸ› Bug Fixes

  • Handling some special values when transforming response data into list (issue #3573) (#3586)
  • Fixed infinitely recursive health checks (#3557)
  • Fixing search module dropindex function not to send invalid third parameter. Updating pipeline infra (#3564)
  • Fixing async cluster pipeline execution when client is created with cluster_error_retry_attempts=0 (#3545)
  • Fix client_list with multiple client ids (#3539)
  • Add valid Exception type to Except in ClusterPipeline (#3516)
  • Fix #3130 TimeoutError during ClusterPipeline makes the client unrecoverable (#3513)
  • Fix connection health check for protocol != 2 when auth credentials are provided and health check interval is configured (#3477)
  • Fix AttributeError when client.get_default_node() returns None (#3458)
  • fix: add TimeoutError handling in get_connection() (#1485)
  • Avoid stacktrace on process exit in Client.del() (#3397)

🧰 Maintenance

  • Updating pipeline tests to use test libs image with RC2. Updating timeseries tests. (#3623)
  • Fixing flaky tests - part 2 (#3592)
  • DOC-5107 added hash examples for index/query intro page (#3609)
  • DOC-5073 vector set quantization and dimension reduction examples (#3597)
  • Fixing some sporadically failing tests - part 1 (#3589)
  • DOC-5073 added examples for vector sets intro page (#3590)
  • Fix incorrect link to docs for fcall_ro command (#3576)
  • Improvement: Use shutdown() Before close() in connection.py (#3567)
  • Truncate pipeline exception message to a sane size (#3530)
  • Docs/raae 724/remove redis ventures (#3579)
  • Adding info for sentinel handling failover when Redis client is acquired with master_for() method. (#3578)
  • Type hints improvements (#3420 #3480 #3522 #3526)
  • Increasing the operations-per-run for stale issues GH action (#3556)
  • Got rid of time.time() everywhere (#3551)
  • Removing deprecated usage of forbid_global_loop=True in pytest.mark.asyncio decorator (#3542)
  • allow more recent pyopenssl (#3541)
  • Bump rojopolis/spellcheck-github-actions from 0.38.0 to 0.47.0 (#3538)
  • Fix LockError message when releasing a lock. (#3534)
  • Fix readthedocs.yml integration(#3527 #3528 #3529)
  • Adding vector search tests for types int8/uint8 (#3525)
  • Adding requested resources into sdist. Fix for issue #3057 (#3511)
  • maintenance: Python 3.13 compatibility (#3510)
  • Adding unit test for core info command related to modules info (#3507)
  • Update connection_examples.ipynb (#3504)
  • Update Python imports in doc examples (index_definition => indexDefinition) (#3490)
  • DOC-4736 added geo indexing examples (#3485)
  • Updated test infrastructure with latest versions (#3484)
  • fix: update redis university url, the old link doesn't work (#3481)
  • Fix #3464: Correct misleading exception_handler example in docs (#3474)
  • Added Redis 8.0 to test matrix (#3469)
  • Added workflow_dispatch for pypi release workflow (#3465)
  • Avoid the multiprocessing forkserver method in Python 3.14 (#3442)
  • Fix inaccurate docstring for unwatch() (#3424)
  • Update README.md - Fix 'Note' - bold (#3413)
  • skip ssl import if not available (#3078)
  • Replace flake8+isort+black with ruff (#3147)
  • Fixes minor grammar nit in documentation. (#3354)

Contributors

We'd like to thank all the contributors who worked on this release!
@elena-kolevska @petyaslavova @vladvildanov @andy-stark-redis @JimNero009 @donbowman @julianolm @666romeo @three-kinds @bssyousefi @mbilski @Yard1 @bacchuswng @noirbee @nbertram @birthdaysgift @Perlence @excitoon @dimbleby @shenxiangzhuang @paololazzari @dwdougherty @niklasbec @byeongjulee222 @befeleme @djroze @BaseMax @dicej @akx @cavemanpi @lattwood @rbs333 @rohansingh @allrob23