v8.1.0
📦 redis-pythonView on GitHub →
✨ 11 features🐛 10 fixes🔧 24 symbols
Summary
This release introduces async maintenance notifications, expands command coverage across various Redis data types and modules, and includes several bug fixes for improved stability and functionality.
Migration Steps
- The experimental client-side HIMPORT fieldset support is unstable and the public API might change in future minor versions.
✨ New Features
- Async maintenance notifications for standalone and cluster clients, bringing async client parity with sync implementation.
- Added LMOVEM / BLMOVEM commands for moving multiple elements between lists.
- Added SDIFFCARD and SUNIONCARD cardinality commands for sets.
- Added MAXCOUNT / MAXSIZE options for XREAD and XREADGROUP commands.
- Added TS.READ command support for the Time Series module.
- Added TS.QUERYLABELS command support for the Time Series module.
- Added TS.NRANGE / TS.NREVRANGE commands for the Time Series module.
- Added exclude_empty (EXCLUDEEMPTY) option for TS.MRANGE / TS.MREVRANGE commands.
- Added FT.ALIASLIST command support for the Search module.
- Added COLLECT reducer for search aggregations.
- Added replica sentinel aliases.
🐛 Bug Fixes
- Fixed detection of closed pooled connections without consuming pending push data (RESP3 + hiredis).
- Fixed Sentinel pool capacity loss after failover.
- Restored NEVER_DECODE option for FT.SEARCH with protocol=3.
- Decoded ACL LOG string values on the default RESP3 legacy callback.
- Fixed double decoding issue with unquote().
- Fixed lat/lon swap in search querystring geo() helper.
- Fixed FIELDNAME alias dropping the first character of un-prefixed fields.
- Raised ConnectionError instead of AttributeError on concurrent disconnect in hiredis.
- Added close()/aclose() to Sentinel to release sentinel client pools.
- Added missing type annotations to LockError and RedisClusterException.