dragonflydb / dragonfly

A modern replacement for Redis and Memcached
https://www.dragonflydb.io/
Other
25.35k stars 915 forks source link

Incompatibility with Cashews Python Caching Library - "Subcommand ID not supported" Error #3666

Open TweedBeetle opened 2 weeks ago

TweedBeetle commented 2 weeks ago

Description

When using Dragonfly as a drop-in replacement for Redis with the Cashews Python caching library, I'm encountering errors both in my Python application and in the Dragonfly container logs.

Python Application Error:

ERROR:cashews.backends.redis.client_side:redis client side: can not start listen task

Dragonfly Container Logs:

E20240906 19:27:24.971956    12 server_family.cc:1771] Subcommand ID not supported

Environment:

Steps to Reproduce:

  1. Set up Dragonfly in a Docker container
  2. Install Cashews Python caching library
  3. Configure Cashews to use Dragonfly as the backend
  4. Attempt to use Cashews for caching operations in a Python application

Expected Behavior:

Dragonfly should work as a drop-in replacement for Redis, allowing Cashews to perform caching operations without errors.

Actual Behavior:

Additional Context:

This issue suggests that there might be some Redis commands or subcommands that Cashews is using which are not currently supported by Dragonfly. It would be helpful to identify these specific commands to either implement them in Dragonfly or find a workaround in Cashews.

Possible Solutions:

  1. Implement support for the missing subcommands in Dragonfly.
  2. Provide detailed documentation on any Redis commands not supported by Dragonfly, especially those commonly used by caching libraries.
  3. Consider adding a compatibility mode that gracefully handles unsupported commands without throwing errors.

Thank you for your attention to this issue. Let me know if you need any additional information or clarification.

BorysTheDev commented 2 weeks ago

It looks that missing command is CLIENT ID.

romange commented 2 weeks ago

yes, it's duplicate of #3651