Changes
π New Features
- New hash commands with expiration options support are added - HGETDEL, HGETEX, HSETEX (#3570)
- Adding load balancing strategy configuration to cluster clients(replacement for 'read_from_replicas' config) (#3563)
- Exponential with jitter backoff (#3550)
- 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)
π₯ Breaking changes
- 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 load balancing strategy configuration to cluster clients(replacement for 'read_from_replicas' config, 'read_from_replicas' is deprecated) (#3563)
- Deprecating unused arguments in connection pools's get_connection functions (#3517)
- 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
- 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)
- Remove decreasing of created connections count when releasing not owned by connection pool connection(fixes issue #2832). (#3514)
- 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
- 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)
- Replacing the redis and redis-stack-server images with redis-libs-tests image in test infrastructure (#3505)
- 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!
@vladvildanov @petyaslavova @JimNero009 @donbowman @julianolm @666romeo @three-kinds @bssyousefi @mbilski @Yard1 @bacchuswng @noirbee @nbertram @birthdaysgift @Perlence @excitoon @dimbleby @shenxiangzhuang @paololazzari @andy-stark-redis @dwdougherty @niklasbec @byeongjulee222 @befeleme @djroze @BaseMax @dicej @akx @cavemanpi