Skip to content

Releases: redis/redis-py

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()

4.5.3

22 Mar 16:06
66a4d6b
Compare
Choose a tag to compare

Changes

Update urgency: HIGH: There is a critical bug that may affect a subset of users. Upgrade!

πŸ› Bug Fixes

4.4.3

22 Mar 16:16
b3c89ac
Compare
Choose a tag to compare

Changes

Update urgency: HIGH: There is a critical bug that may affect a subset of users. Upgrade!

πŸ› Bug Fixes

4.3.6

22 Mar 16:19
7b48b1b
Compare
Choose a tag to compare

Changes

Update urgency: HIGH: There is a critical bug that may affect a subset of users. Upgrade!

πŸ› Bug Fixes

4.5.2

20 Mar 10:00
318b114
Compare
Choose a tag to compare

Changes

πŸš€ New Features

  • Introduce AbstractConnection so that UnixDomainSocketConnection can call super().init (#2588)
  • Added queue_class to REDIS_ALLOWED_KEYS (#2577)
  • Made search document subscriptable (#2615)
  • Sped up the protocol parsing (#2596)

πŸ› Bug Fixes

  • Fix behaviour of async PythonParser to match RedisParser as for issue #2349 (#2582)
  • Replace async_timeout by asyncio.timeout (#2602)
  • Update json().arrindex() default values (#2611)

🧰 Maintenance

  • Coverage for pypy-3.9 (#2608)
  • Developer Experience: Adding redis version compatibility details to the README (#2621)
  • Remove redundant assignment to RedisCluster.nodes_manager. (#2620)
  • Developer Experience: [types] update return type of smismember to list[int] (#2617)
  • Developer Experience: [docs] ConnectionPool SSL example (#2605)
  • Developer Experience: Fixed CredentialsProvider examples (#2587)
  • Developer Experience: Update README to make pip install copy-pastable on zsh (#2584)
  • Developer Experience: Fix for lpop and rpop return typing (#2590)

Contributors

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

@CrimsonGlory, @Galtozzy, @aksinha334, @barshaul, @chayim, @davemcphee, @dvora-h, @kristjanvalur, @ryin1, @sileht, @thebarbershop, @uglide, @woutdenolf and @zakaf

4.5.1

08 Feb 14:21
fd7a79d
Compare
Choose a tag to compare

Changes

πŸ› Bug Fixes

  • Fix #2581 UnixDomainSocketConnection object has no attribute _command_packer (#2583)

Contributors

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

@dvora-h and @prokazov

4.5.0

07 Feb 15:18
5cb5712
Compare
Choose a tag to compare

Changes

Special Note: This redis-py release introduces the ability to write to Redis, using hiredis. If you're using hiredis as an optional requirement, please upgrade to hiredis 2.2.1. In many cases, writes times decrease by > 25%.

πŸ§ͺ Experimental Features

  • Add TS.MGET example for OS Redis Cluster (#2507)

πŸš€ New Features

  • Use hiredis::pack_command to serialized the commands. (#2570)
  • Add support for unlink in cluster pipeline (#2562)

πŸ› Bug Fixes

  • Fix issue with pack_commands returning an empty byte sequence (#2416)
  • Async HiredisParser should finish parsing after a Connection.disconnect() (#2557)
  • Check for none, prior to raising exception (#2569)
  • Tuple function cannot be passed more than one argument (#2573)
  • Synchronise concurrent command calls to single-client to single-client mode (#2568)

🧰 Maintenance

  • Add TS.MGET example for OS Redis Cluster (#2507)
  • Documentation changes: typo fix (#2566)
  • Simplify the sync SocketBuffer, add type hints (#2543)
  • Add missing Union type in method StreamCommands.xclaim() (#2553)
  • Change redismod docker to redis-stack-server (#2556)

Contributors

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

@SoulPancake, @Vivanov98, @ant1fact, @dvora-h, @gmbnomis, @jmcbailey, @kosuke-zhang, @kristjanvalur, @prokazov, @rbowen and @uglide

4.4.2

11 Jan 14:01
8592cac
Compare
Choose a tag to compare

Changes

Note: this release include #2548 and it is suggested that users upgrade immediately.

πŸ§ͺ Experimental Features

  • Add support for BF.CARD (#2545)

πŸš€ New Features

  • Add support for custom connection pool class in NodesManager (#2547)

πŸ› Bug Fixes

  • Allow replica to master promotion in nodes_cache (#2549)
  • Security Fix: Updating graph parser for potential injection cases (#2548)

Contributors

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

@Threated, @dvora-h, @shacharPash and @zakaf

4.4.1

08 Jan 10:01
f46d7f3
Compare
Choose a tag to compare

Changes

πŸš€ New Features

  • Add dialect to FT.AGGREGATE (#2537)
  • Add support for resetchannels in ACL SETUSER (#2514)
  • Allow EVAL_RO and EVALSHA_RO to be routed to read replica (#2494)
  • Add timeout parameter for SentinelManagedConnection (#2495)
  • Add TIMEOUT to query class (#2519)
  • Add support for certain LATENCY commands (#2503)

πŸ› Bug Fixes

  • Add type checking to __eq__ in graph classes (#2531)
  • Accept str for ex parameter in set command (#2529)
  • Fix for Unhandled exception related to self.host with unix socket (#2520)
  • Make PythonParser resumable (#2510)

🧰 Maintenance

  • Fix incorrect _disconnect_raise docstring (#2534)
  • Remove DeprecationWarning by replace get_event_loop with get_running_loop (#2530)
  • Fix AttributeError when trying to split library version (#2539)
  • Including startup instructions via redis-stack docker (#2535)
  • Fix JSON.ARRINDEX test (#2527)
  • Add OpenTelemetry example with Uptrace backend (#2452)
  • Switch docs to furo theme (#2492)
  • Combine auto-concatenated strings (#2482)
  • Updating graph tests to support new execution plan (#2486)
  • Raising NotImplementedError for certain CLUSTER and LATENCY commands (#2504) (#2501)

Contributors

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

@DvirDukhan, @SessionIssue, @YiuRULE, @chayim, @dgilmanAIDENTIFIED, @dvora-h, @kristjanvalur, @mohsinhaider, @raz-mon, @shacharPash, @stitchWzc, @uglide, @vmihailenco, @winmorre and @zakaf

Version 4.4.0

04 Dec 10:47
6fa6cfc
Compare
Choose a tag to compare

Changes

4.4.0rc4 release notes
4.4.0rc3 release notes
4.4.0rc2 release notes
4.4.0rc1 release notes

πŸš€ New Features (since 4.4.0rc4)

  • Async clusters: Support creating locks inside async functions (#2471)

πŸ› Bug Fixes (since 4.4.0rc4)

  • Async: added 'blocking' argument to call lock method (#2454)
  • Added a replacement for the default cluster node in the event of failure. (#2463)
  • Fixed geosearch: Wrong number of arguments for geosearch command (#2464)

🧰 Maintenance (since 4.4.0rc4)

  • Updating dev dependencies (#2475)
  • Removing deprecated LGTM (#2473)
  • Added an explicit index name in RediSearch example (#2466)
  • Adding connection step to bloom filter examples (#2478)

Contributors (since 4.4.0rc4)

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

@Sibuken, @barshaul, @chayim, @dvora-h, @nermiller, @uglide and @utkarshgupta137