Skip to content

Conversation

@petyaslavova
Copy link
Collaborator

In this PR, the functions client_tracking_on and client_tracking_off are exposed in RedisCluster, with support for the additional target_nodes parameter so they can be used with OSS clusters.

Keep in mind that using these functions is not recommended—the client-side caching feature should be used instead. For this reason, both functions are marked as deprecated.

Another important detail for cluster setups: when you provide a clientid, the target_nodes parameter may include only the node that owns the connection for that client ID. If any other node is specified, the server will return an error.

Fixes #2592

… for cluster clients. Marking those two functions as deprecated for cluster - embedded client-side caching feature should be used instead.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for client_tracking_on and client_tracking_off functions to RedisCluster, enabling their use with OSS clusters through the target_nodes parameter. Both functions are marked as deprecated since the built-in client-side caching feature should be used instead.

Key Changes:

  • Added cluster-specific implementations of client_tracking_on and client_tracking_off with target_nodes support
  • Modified determine_slot() to return Optional[int] and handle CLIENT TRACKING as a special case
  • Updated client_tracking() in core.py to forward **kwargs for cluster support

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
redis/commands/core.py Added **kwargs forwarding to client_tracking() to support target_nodes parameter
redis/commands/cluster.py Added sync and async versions of client_tracking_on/off with deprecation warnings and cluster support
redis/cluster.py Modified determine_slot() return type to Optional[int] and added special handling for CLIENT TRACKING commands
tests/test_cluster.py Added comprehensive tests for CLIENT TRACKING functionality in cluster mode

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

petyaslavova and others added 4 commits November 27, 2025 14:52
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error in redis parser when using client tracking

2 participants