Skip to content

Releases: redis/redis-py

5.0.0rc2

16 Jul 12:12
d665dbd
Compare
Choose a tag to compare
5.0.0rc2 Pre-release
Pre-release

Changes

🧰 Maintenance

  • RESP3 response-callbacks cleanup (#2841)
  • Merge master to 5.0 (#2827)

5.0.0rc1

27 Jun 18:35
d453665
Compare
Choose a tag to compare
5.0.0rc1 Pre-release
Pre-release

Changes

πŸ”₯ Breaking Changes

  • Change SISMEMBER return type to int by (#2813)

πŸš€ New Features

  • RESP3 modules support (#2803)

πŸ› Bug Fixes

  • Fixing asyncio import (#2759)
  • Fix sharded pubsub threads issue (#2799)

🧰 Maintenance

4.6.0

25 Jun 13:12
9f50357
Compare
Choose a tag to compare

Changes

πŸ§ͺ Experimental Features

  • Support JSON.MERGE command (#2761)
  • Support JSON.MSET command (#2766)

πŸš€ New Features

  • Extract abstract async connection class (#2734)
  • Add support for WAITAOF (#2760)
  • Introduce OutOfMemoryError exception for Redis write command rejections due to OOM errors (#2778)
  • Add WITHSCORE argument to ZRANK (#2758)

πŸ› Bug Fixes

  • Fix dead weakref in sentinel connection causing ReferenceError (#2767) (#2771)
  • Fix Key Error in parse_xinfo_stream (#2788)
  • Remove unnecessary __del__ handlers (#2755)
  • Added support for missing argument to SentinelManagedConnection.read_response() (#2756)

🧰 Maintenance

  • Fix type hint for retry_on_error in async cluster (#2804)
  • Clean up documents and fix some redirects (#2801)
  • Add unit tests for the connect method of all Redis connection classes (#2631)
  • Docstring formatting fix (#2796)

Contributors

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

@Smit-Parmar, @TheKevJames, @aciddust, @bmacphee, @bodevone, @dvora-h, @kristjanvalur, @shacharPash, @shahar-lev, @vmihailenco and @woutdenolf

5.0.0b4

28 May 09:27
e8fc092
Compare
Choose a tag to compare
5.0.0b4 Pre-release
Pre-release

Changes

πŸš€ New Features

  • Add support for sharded pubsub in sync client (#2762)

πŸ› Bug Fixes

  • Fixed resp3 dict parse response (#2757)

4.5.5

08 May 11:53
f056118
Compare
Choose a tag to compare

Changes

πŸš€ New Features

  • Add support for CLIENT NO-TOUCH (#2745)
  • Add support for CLUSTER MYSHARDID (#2704)
  • Add "address_remap" feature to RedisCluster (#2726)
  • Add WITHSCORES argument to ZREVRANK command (#2725)
  • Improve error output for master discovery (#2720)

πŸ› Bug Fixes

  • Fix XADD: allow non negative maxlen (#2739)
  • Fix create single connection client from url (#2752)
  • Optionally disable disconnects in read_response (#2695)
  • Fix SLOWLOG GET return value (#2732)
  • Fix potential race condition during disconnection (#2719)
  • Return response in case of KeyError (#2628)
  • Fix incorrect usage of once flag in async Sentinel (#2718)
  • Fix memory leak caused by hiredis in asyncio case (#2694)
  • Really do not use asyncio's timeout lib before 3.11.2 (#2699)

🧰 Maintenance

  • Clean PytestUnraisableExceptionWarning from asycio client (#2731)
  • Add RedisCluster.remap_host_port, Update tests for CWE 404 (#2706)
  • Updated AWS Elasticache IAM connection example (#2702)
  • Update CONTRIBUTING guidelines (#2736)
  • Fix ClusterCommandProtocol type (#2729)
  • Fix TOPK list example. (#2724)
  • Improving vector similarity search example (#2661)
  • Update example of Redisearch creating index (#2703)

Contributors

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

@AYMENJD, @Anthchirp, @Avasam, @NickG123, @SoulPancake, @aciddust, @chayim, @cristianmatache, @dvora-h, @felipou, @kristjanvalur, @mirekdlugosz, @mzdehbashi-github, @oranav, @scoopex, @shacharPash and @tylerhutcherson

5.0.0b3

04 May 09:42
df47761
Compare
Choose a tag to compare
5.0.0b3 Pre-release
Pre-release

Changes

This beta release includes 2 bug fixes for the RESP3 parser.

πŸ› Bug Fixes

  • Fix protocol version check (#2737)
  • Fix COMMAND response callback (#2740)

5.0.0b2

24 Apr 15:07
f5abfe0
Compare
Choose a tag to compare
5.0.0b2 Pre-release
Pre-release

Changes

This release includes only support for RESP3, it should be treated as a beta. Please note response types change for those using RESP3 - meaning there breaking changes. Today this includes support for the following:

The following are not yet implemented:

  • Async Pub/Sub with hiredis support, for PUSH responses.

RESP3 support introduces two different ways to enable a RESP3 redis connection, when your redis server supports it.

  1. redis_url has been updated to match the uri specification meaning one can now connect by:
import redis
r = redis.Redis.from_url("redis://localhost:6379?protocol=3")
r.ping()
  1. One can pass protocol=3 into any existing connection object eg:
from redis.asyncio import  Redis
r = Redis(host="localhost", port=6379, protocol=3)
r.ping()

4.5.4

29 Mar 13:23
e1017fd
Compare
Choose a tag to compare

Changes

Upgrade urgency: SECURITY, contains fixes to security issues.

  • (CVE-2023-28859) - Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases.
  • (CVE-2023-28858) - Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases.

πŸ› Bug Fixes

  • Fixing cancelled async futures (#2666)
  • Fix: do not use asyncio's timeout lib before 3.11.2 (#2659)
  • Fix UDS in v4.5.2: UnixDomainSocketConnection missing constructor argument (#2630)

🧰 Maintenance

  • Minor fixes for #2666 and enhanced async test (#2673)
  • Fix issue 2660: PytestUnraisableExceptionWarning from asycio client (#2669)
  • Removing accidentally checked in files (#2642)

Contributors

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

@bellini666, @chayim, @dvora-h, @shacharPash and @woutdenolf

4.4.4

29 Mar 13:53
49d9cb7
Compare
Choose a tag to compare

Changes

Upgrade urgency: SECURITY, contains fixes to security issues.

  • (CVE-2023-28859) - Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases.
  • (CVE-2023-28858) - Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases.

πŸ› Bug Fixes

  • Fixing cancelled async futures (#2671 )

5.0.0b1

23 Mar 14:47
0db4eba
Compare
Choose a tag to compare
5.0.0b1 Pre-release
Pre-release

Changes

This release includes only support for RESP3, it should be treated as a beta. Please note response types change for those using RESP3 - meaning there breaking changes. Today this includes support for the following:

  • Sync connections
  • RedisCluster connections
  • Async
  • AsyncCluster
  • Single connections both sync and async
  • RedisStack support
  • Pipelines
  • Sentinel

The following are not yet implemented:

  • Pub/Sub
  • Monitor

This release introduces two different ways to enable a RESP3 redis connection, when your redis server supports it.

  1. redis_url has been updated to match the uri specification meaning one can now connect by:
import redis
r = redis.Redis.from_url("redis://localhost:6379?protocol=3")
r.ping()
  1. One can pass protocol=3 into any existing connection object eg:
from redis.asyncio import  Redis
r = Redis(host="localhost", port=6379, protocol=3)
r.ping()