Adding support for CAS/CAD commands. by petyaslavova · Pull Request #3837 · redis/redis-py (original) (raw)
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request adds support for two new Redis 8.4 commands (DELEX and DIGEST) and extends the SET command with new conditional options (IFEQ, IFNE, IFDEQ, IFDNE). The implementation includes both synchronous and asynchronous variants along with comprehensive test coverage.
Key Changes:
- Added
delex()method for conditional key deletion based on value or digest matching - Added
digest()method to compute XXH3 hash digests of string values - Extended
set()method with four new conditional parameters for atomic compare-and-set operations - Introduced
at_most_one_value_set()helper function to simplify mutual exclusivity validation - Added
DIGESTcommand to cluster read-only commands list
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| redis/commands/helpers.py | Adds at_most_one_value_set() helper function for mutual exclusivity checks |
| redis/commands/core.py | Implements delex() and digest() methods, extends set() with new conditionals, refactors mutual exclusivity checks |
| redis/commands/cluster.py | Adds DIGEST to read-only commands list for cluster support |
| tests/test_commands.py | Comprehensive tests for delex(), digest(), and extended set() functionality |
| tests/test_asyncio/test_commands.py | Async variants of all new tests |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.