Change8

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

  1. 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.

Affected Symbols