Update dependency redis to v8#383
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^5.0.1→^8.0.0Release Notes
redis/redis-py (redis)
v8.0.0: 8.0.0Compare Source
Changes
🚀 Highlights
Async Cluster PubSub
This release introduces full asyncio Cluster PubSub support, bringing shard-channel capabilities (
SSUBSCRIBE,SUNSUBSCRIBE,SPUBLISH) to the asyncRedisClusterclient. The newClusterPubSubclass inredis.asyncio.clusterautomatically routes shard-channel subscriptions to the correct cluster node based on key-slot hashing, manages per-node PubSub connections, and supports round-robin message retrieval across nodes. Users can create a cluster pubsub instance viaRedisCluster.pubsub()and usessubscribe(),sunsubscribe(), andget_sharded_message()just as they would with the sync cluster client.Keyspace and subkey notifications
Redis Keyspace Notifications are now supported for standalone and cluster deployments in both sync and async modes. New classes —
KeyspaceNotifications,ClusterKeyspaceNotifications,AsyncKeyspaceNotifications, andAsyncClusterKeyspaceNotifications— provide a high-level API for keyspace/keyevent subscriptions and subkey notification families:subkeyspace,subkeyevent,subkeyspaceitem, andsubkeyspaceevent. Convenience methods likesubscribe_keyspace(),subscribe_keyevent(),subscribe_subkeyspace(),subscribe_subkeyevent(),subscribe_subkeyspaceitem(), andsubscribe_subkeyspaceevent()simplify common patterns, with channel classes for both key and subkey channels.In cluster mode, subscriptions are managed across primary nodes because each node emits notifications only for keys it owns, with built-in topology-change handling. Sync
run_in_thread()and asynclisten()workflows are supported.Redis Array commands(https://redis.io/docs/latest/develop/data-types/arrays/)
redis-py now supports Redis Arrays, a preview Redis data type for sparse, index-addressable sequences of strings. New
AR*command helpers cover indexed reads/writes, range scans, deletion, cursor-based insertion, ring-buffer writes, metadata, text search, and aggregation, includingARGET,ARSET,ARMGET,ARMSET,ARSCAN,ARGREP,ARRING, andAROP.Type Hints Improvements (breaking changes)
The
@overloadpattern has been applied systematically across core commands (core.py), VectorSet commands, and module commands (Search, JSON, TimeSeries, Bloom filters) to provide distinct return types for sync and async clients. Previously, methods returned a combinedResponseT(i.e.,Union[Awaitable[Any], Any]), which caused static analysis tools like mypy and Pyright to flag false positives. Now, sync clients see concrete return types (e.g.,int,bool,list[str]) while async clients seeAwaitable[...]wrappers. This is a breaking change for type-checking only—runtime behavior is unchanged, but code relying on the old union return types in type annotations may need updates. Two new protocol types,SyncClientProtocolandAsyncClientProtocol, are used in overload signatures to enable this distinction.RESP3 by default with opt-in unified responses
redis-py 8.0.0 now uses RESP3 on the wire by default while preserving legacy RESP2-compatible Python response shapes for existing applications (#4052). Protocol-independent unified response shapes are available by setting
legacy_responses=False, so affected commands return the same Python structure with RESP2 or RESP3.Use
protocol=2to force RESP2 on the wire,protocol=3to opt into native RESP3 response shapes, orlegacy_responses=Falseto migrate to unified responses. Seedocs/unified_responses.rstandspecs/unified_responses_migration_guide.mdfor the affected commands and migration details.Connection and retry defaults
Default connection settings were updated:
socket_timeoutandsocket_connect_timeoutnow default to 5 seconds, TCP keepalive is enabled by default, socket reads use a 32 KB buffer, connection pools default tomax_connections=100, and retry defaults now use 10 attempts with exponential jitter backoff.Note:
socket_timeoutcan affect blocking commands such asBLPOP/BRPOP; if a command blocks longer than the client socket timeout, it may raiseTimeoutErrorbefore the command timeout elapses (#2807).🧪 Experimental Features
🚀 New Features
🔥 Breaking changes
🐛 Bug Fixes
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@hydroblaze @Br1an67 @mokashang @swoutch @armorbreak001 @Brumbelow @paoloredis @Pack-Yak1 @abersheeran @alisaifee @majiayu000 @uglide @dmaier-redislabs @vladvildanov @petyaslavova
v7.4.0: 7.4.0Compare Source
Changes
🐛 Bug Fixes
🧪 Experimental Features
-Refactored health check logic for MultiDBClient (#3994)
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@vladvildanov @petyaslavova
v7.3.0: 7.3.0Compare Source
Changes
OpenTelemetry Native Metrics Support for asynchronous clients
Added comprehensive OpenTelemetry metrics support for asynchronous clients following the OpenTelemetry Database Client Semantic Conventions.
Metric groups include:
🚀 New Features
🐛 Bug Fixes
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@mitre88 @turanalmammadov @haosenwang1018 @Medno @vladvildanov @petyaslavova
v7.2.1: 7.2.1Compare Source
Changes
🐛 Bug Fixes
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@dotlambda @rhoboro @skylarkoo7 @praboud @bysiber @vladvildanov @petyaslavova
v7.2.0: 7.2.0Compare Source
Changes
Redis 8.6 Support
Added support for Redis 8.6, including new commands and features for streams idempotent production and HOTKEYS.
Smart Client Handoff (Maintenance Notifications) for Cluster
note: Pending a Redis Enterprise version release
This release introduces comprehensive support for Redis Enterprise Cluster maintenance notifications via SMIGRATING/SMIGRATED push notifications. The client now automatically handles slot migrations by:
Relaxing timeouts during migration (SMIGRATING) to prevent false failures
Triggering cluster state reloads upon completion (SMIGRATED)
Enabling seamless operations during Redis Enterprise maintenance windows
OpenTelemetry Native Metrics Support
Added comprehensive OpenTelemetry metrics support following the OpenTelemetry Database Client Semantic Conventions.
Metric groups include:
🚀 New Features
🐛 Bug Fixes
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@veeceey @dariaguy @Nepomuk5665 @praboud @Timour-Ilyas @barshaul @devbyteai @itssimon @majiayu000 @aveao @s-t-e-v-e-n-k @cheizdo2-art @Jonathan-Landeed @PeterJCLaw @ShubhamKaudewar @vchomakov @dmaier-redislabs @elena-kolevska @vladvildanov @petyaslavova
v7.1.1: 7.1.1Compare Source
Changes
🧪 Experimental Features
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@vladvildanov
v7.1.0: 7.1.0Compare Source
Changes
🚀 New Features
🧪 Experimental Features
🔥 Breaking changes (in experimental features)
🐛 Bug Fixes
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@ShubhamKaudewar @matthewwiese @peperon @vladvildanov @petyaslavova
v7.0.1: 7.0.1Compare Source
Changes
This release adds small fixes related to documentation.
🧰 Maintenance
313d93f)78df745)3f7a55e)We'd like to thank all the contributors who worked on this release!
@dmaier @petyaslavova
v7.0.0: 7.0.0Compare Source
Changes
One of the main features introduced in this release is a new type of client
MultiDBClient. The purpose of this client is a communication with multiple databases that are eventually consistent (Active-Active setup) and handling failures by failover across databases.More information could be found in docs.
🚀 New Features
Note Not supported with hiredis parser. When hiredis parser is used this server response is mapped to ResponseError
🧪 Experimental Features
🔥 Breaking changes
🐛 Bug Fixes
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@scovetta @mengxunQAQ @abrookins @VincentHokie @sobolevn @hunterhogan @luka-mikec @zion-off @peperon @andy-stark-redis @uglide @elena-kolevska @kiryazovi-redis @vladvildanov @petyaslavova
v6.4.0: 6.4.0Compare Source
Changes
🚀 New Features
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@htemelski-redis @elena-kolevska @petyaslavova @vladvildanov
v6.3.0: 6.3.0Compare Source
Changes
🚀 New Features
🐛 Bug Fixes
🧰 Maintenance
We'd like to thank all the contributors who worked on this release!
@robertosantamaria-scopely @mahigupta @alisaifee @tzongw @earonesty @IlianIliev @ofekshenawa @andy-stark-redis @AmirHossein81Gholami @mharding-hpe @git-hulk @ngabhanenetskope @terencehonles @ManelCoutinhoSensei @petyaslavova @vladvildanov
v6.2.0: 6.2.0Compare Source
Changes
🚀 New Features
dynamic_startup_nodesparameter to async RedisCluster (#3646)hiredis-pyparser (#3648)RedisClusterclient (#3649)🐛 Bug Fixes
check_hostnamewhen instantiatingRedisSSLContext(#3655)__del__call (#3654)🧰 Maintenance
search_json_examples.ipynb: Fix the old importindexDefinition->index_definition(#3652)Python 3.8support as it has reached end of life (#3657)We'd like to thank all the contributors who worked on this release!
@JCornat @ShubhamKaudewar @uglide @petyaslavova @vladvildanov
v6.1.1Compare Source
Changes
🐛 Bug Fixes
check_hostnamewhen instantiatingRedisSSLContext(#3655)__del__call (#3654)We'd like to thank all the contributors who worked on this release!
@vladvildanov @petyaslavova
v6.1.0: 6.1.0Compare Source
Changes
🚀 New Features
RedisClusterclient (#3611)Retryand backoff classes (#3628)🐛 Bug Fixes
ssl_check_hostnamenot set to connections. For SSL verification withssl_cert_reqs="none", check_hostname is set toFalse(#3637)Important: The default value for the
check_hostnamefield ofRedisSSLContexthas been changed as part of this PR - this is a breaking change and should not be introduced in minor versions - unfortunately, it is part of the current release.The breaking change is reverted in the next release to fix the behavior --> 6.2.0
Retryand backoff classes (#3628) - fixes integration with Django RQAttributeErroronClusterPipeline(#3634)🧰 Maintenance
REDIS_MAJOR_VERSIONcorrectly in run-tests (#3642)hiredis-py-integration.yaml(#3641)RedisModuleCommandsclass (#3632)Noneargs or return types to be annotated withOptional- includes commands incore.pyand json commands (#3610)🙏 Special Thanks
A big thank you to our collaborators at Scopely for their valuable contributions to this release! Your support and improvements help move the project forward — we appreciate it!
Contributors
We'd like to thank all the contributors who worked on this release!
@robertosantamaria-scopely @sentrivana @terencehonles @kesha1225 @aberres @uglide @omerfeyzioglu @petyaslavova @vladvildanov @andy-stark-redis
v6.0.0: 6.0.0Compare Source
Changes
🚀 New Features
🧪 Experimental Features
🔥 Breaking changes
Important: When connecting to a Redis master via Sentinel, you may need to set ssl_check_hostname=False if the Sentinel service is not configured to return hostnames.
Refer to issue #3629 for more details.
Important: When
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.