feat: add XADD IDMP/IDMPAUTO and XCFGSET support#954
Conversation
|
Hi @rueian, CI is failing on the new IDMP/IDMPAUTO and XCFGSET tests. It seems the Redis instances used in CI are running a version that doesn’t support these features yet (Redis 8.6+). In go-redis, there is a test-skip helper called SkipBeforeRedisVersion (also used helper by the tests in redis/go-redis#3693) Before I proceed, is there already a related func to skip tests based on Redis version (similar to go-redis)? If not, would you like me to add one? |
No, we don't have such function. Could we just replace redis/redis-stack:7.4.0-v0 with redis 8.6.0? |
I tried switching the compat services in I also saw the redis-stack note that Redis 8 bundles Stack modules, but in our CI/test setup Given this, I’ve been thinking about a couple of approaches:
In my opinion, since more Redis 8.6+ features (IDMP/IDMPAUTO, XCFGSET, etc.) are being added over time, it might be a good time to update the CI setup to support 8.6+ once 😅 |
Thanks for testing. Let's do this. |
|
OK — I’ll work on the related CI/test setup changes and open a separate PR. |
|
Hi @jinbum-kim, would you like to continue on this? |
|
Hi @rueian Sorry for the delay. I’ve been tied up with other work. I just opened a PR for the CI/test setup changes needed for Redis 8.6+. Could you please take a look when you have a chance? After that’s merged, I’ll follow up with the remaining changes for this work right away. |
Hi @jinbum-kim, the CI setup PR has been merged! |
Signed-off-by: jinbum-kim <jinbum9958@gmail.com>
8872760 to
1068cce
Compare
|
Hi @rueian, all test are passed. PTAL! thank you🙌 |
|
Thanks a lot @jinbum-kim! |
closes #947
This PR adds Redis Streams idempotent production support to
rueidiscompat.Note:
XINFO STREAMIDMP fields are not implemented inrueidiscompatyet, so this PR tests XADD IDMP/IDMPAUTO and XCFGSET withoutXInfoStreamassertions.Note
Medium Risk
Adds new Redis 8.6+ Streams semantics to
XADDand introducesXCFGSET, which can change write behavior and stream configuration if misused; scope is contained to the compat adapter and tests.Overview
Adds Redis 8.6+ Streams idempotent production support to
rueidiscompatby extendingXAddArgsand emittingXADD IDMP/IDMPAUTOwhenProducerIDis provided.Introduces
XCFGSETsupport via newXCfgSetArgsplusCmdable/Compat/Pipelinemethods, and adds a dedicated RESP3 Redis 8.6 test suite to validateXADDidempotency andXCFGSEToption handling.Written by Cursor Bugbot for commit 1068cce. This will update automatically on new commits. Configure here.