redis-py
redis-py copied to clipboard
Calling pipelined function evalsha is blocked when running redis in cluster mode
Version: 5.0.0
Platform: Python 3.10 on MacOS 13
Description:
The following code does not work:
client = redis.RedisCluster()
pipe = client.pipeline()
pipe.evalsha(sha, 0)
pipe.execute()
redis.exceptions.RedisClusterException: ERROR: Calling pipelined function evalsha is blocked when running redis in cluster mode...
Why is this disallowed? AFAICT this should work fine if the scripts are loaded. It's disallowed in redis/cluster.py in PIPELINE_BLOCKED_COMMANDS, but no reason is documented.
I'm also trying to run a script with pipeline and getting the same error
can this be addressed, a similar issue in the node version was fixed: as @zdc13 mentioned, there is no reason why EVALSHA should be a blocked command when run in ClusterPipeline as long as the script is loaded which can be ensured.
reference to explanation: https://github.com/redis/ioredis/issues/536#issuecomment-347020520
Any updates here?
Is there any progress on this issue? Maybe the changes from this PR can be ported to the python library?
I also just ran into this.