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

2 participants