Sourced from redis's releases.
5.0.0
What's new?
Triggers and Functions support
Triggers and Functions allow you to execute server-side functions triggered when key values are modified or created in Redis, a stream entry arrival, or explicitly calling them. Simply put, you can replace Lua scripts with easy-to-develop JavaScript or TypeScript code. Move your business logic closer to the data to ensure a lower latency, and forget about updating dependent key values manually in your code. Try it for yourself with Quick start
Full Redis 7.2 and RESP3 support
Python 3.7 End-of-Life
Python 3.7 has reached its end-of-life (EOL) as of June 2023. This means that starting from this date, Python 3.7 will no longer receive any updates, including security patches, bug fixes, or improvements. If you continue to use Python 3.7 post-EOL, you may expose your projects and systems to potential security vulnerabilities. We ended its support in this version and strongly recommend migrating to Python 3.10.
ð Bug Fixes
𧰠Maintenance
- Updating client license to clear, MIT (#2884)
- Add py.typed in accordance with PEP-561 (#2738)
- Dependabot label change (#2880)
- Fix type hints in SearchCommands (#2817)
- Add sync modules (except search) tests to cluster CI (#2850)
- Fix a duplicate word in
CONTRIBUTING.md
(#2848)- Fixing doc builds (#2869)
- Change cluster docker to edge and enable debug command (#2853)
Contributors
We'd like to thank all the contributors who worked on this release!
@âJoanFM
,@âOvsyanka83
,@âchayim
,@âdependabot
,@âdependabot
[bot],@âdvora-h
,@âkristjanvalur
,@âkurtmckee
,@âpall-j
and@âshacharPash
5.0.0rc2
Changes
𧰠Maintenance
5.0.0rc1
Changes
ð¥ Breaking Changes
- Change
SISMEMBER
return type to int by (#2813)
... (truncated)
Sourced from redis's changelog.
* Fix [#2831](https://github.com/redis/redis-py/issues/2831), add auto_close_connection_pool=True arg to asyncio.Redis.from_url() * Fix incorrect redis.asyncio.Cluster type hint for `retry_on_error` * Fix dead weakref in sentinel connection causing ReferenceError ([#2767](https://github.com/redis/redis-py/issues/2767)) * Fix [#2768](https://github.com/redis/redis-py/issues/2768), Fix KeyError: 'first-entry' in parse_xinfo_stream. * Fix [#2749](https://github.com/redis/redis-py/issues/2749), remove unnecessary __del__ logic to close connections. * Fix [#2754](https://github.com/redis/redis-py/issues/2754), adding a missing argument to SentinelManagedConnection * Fix `xadd` command to accept non-negative `maxlen` including 0 * Revert [#2104](https://github.com/redis/redis-py/issues/2104), [#2673](https://github.com/redis/redis-py/issues/2673), add `disconnect_on_error` option to `read_response()` (issues [#2506](https://github.com/redis/redis-py/issues/2506), [#2624](https://github.com/redis/redis-py/issues/2624)) * Add `address_remap` parameter to `RedisCluster` * Fix incorrect usage of once flag in async Sentinel * asyncio: Fix memory leak caused by hiredis ([#2693](https://github.com/redis/redis-py/issues/2693)) * Allow data to drain from async PythonParser when reading during a disconnect() * Use asyncio.timeout() instead of async_timeout.timeout() for python >= 3.11 ([#2602](https://github.com/redis/redis-py/issues/2602)) * Add a Dependabot configuration to auto-update GitHub action versions. * Add test and fix async HiredisParser when reading during a disconnect() ([#2349](https://github.com/redis/redis-py/issues/2349)) * Use hiredis-py pack_command if available. * Support `.unlink()` in ClusterPipeline * Simplify synchronous SocketBuffer state management * Fix string cleanse in Redis Graph * Make PythonParser resumable in case of error ([#2510](https://github.com/redis/redis-py/issues/2510)) * Add `timeout=None` in `SentinelConnectionManager.read_response` * Documentation fix: password protected socket connection ([#2374](https://github.com/redis/redis-py/issues/2374)) * Allow `timeout=None` in `PubSub.get_message()` to wait forever * add `nowait` flag to `asyncio.Connection.disconnect()` * Update README.md links * Fix timezone handling for datetime to unixtime conversions * Fix start_id type for XAUTOCLAIM * Remove verbose logging from cluster.py * Add retry mechanism to async version of Connection * Compare commands case-insensitively in the asyncio command parser * Allow negative `retries` for `Retry` class to retry forever * Add `items` parameter to `hset` signature * Create codeql-analysis.yml ([#1988](https://github.com/redis/redis-py/issues/1988)). Thanks @chayim * Add limited support for Lua scripting with RedisCluster * Implement `.lock()` method on RedisCluster * Fix cursor returned by SCAN for RedisCluster & change default target to PRIMARIES * Fix scan_iter for RedisCluster * Remove verbose logging when initializing ClusterPubSub, ClusterPipeline or RedisCluster * Fix broken connection writer lock-up for asyncio ([#2065](https://github.com/redis/redis-py/issues/2065)) * Fix auth bug when provided with no username ([#2086](https://github.com/redis/redis-py/issues/2086)) * Fix missing ClusterPipeline._lock ([#2189](https://github.com/redis/redis-py/issues/2189)) * Added dynaminc_startup_nodes configuration to RedisCluster * Fix reusing the old nodes' connections when cluster topology refresh is being done * Fix RedisCluster to immediately raise AuthenticationError without a retry * ClusterPipeline Doesn't Handle ConnectionError for Dead Hosts ([#2225](https://github.com/redis/redis-py/issues/2225)) * Remove compatibility code for old versions of Hiredis, drop Packaging dependency * The `deprecated` library is no longer a dependency * Failover handling improvements for RedisCluster and Async RedisCluster ([#2377](https://github.com/redis/redis-py/issues/2377)) * Fixed "cannot pickle '_thread.lock' object" bug ([#2354](https://github.com/redis/redis-py/issues/2354), [#2297](https://github.com/redis/redis-py/issues/2297)) * Added CredentialsProvider class to support password rotation
... (truncated)
28cc65c
Updating all client licenses to clearly be MIT (#2884)2f67926
Version 5.0.0 (#2874)f121cf2
Add support for CLIENT SETINFO
(#2857)d5c2d1d
Adding support for triggered functions (TFUNCTION) (#2861)b0abd55
RESP 3 feature documentation (#2872)a532f89
Add py.typed in accordance with PEP-561 (#2738)673617d
Bump actions/upload-artifact from 2 to 3 (#2877)0ed8077
Bump pypa/gh-action-pip-audit from 1.0.0 to 1.0.8 (#2879)38c7de6
Dependabot label change (#2880)8370c4a
Add a Dependabot config to auto-update GitHub action versions (#2847)