1 阿里云集群 对lua脚本的支持程度
https://help.aliyun.com/document_detail/26356.html
Lua使用限制
Lua脚本放开限制,标准版-双节点、标准版-单节点支持用户直接调用。
集群版本条件性支持: a 所有key都应该由KEYS数组来传递,redis.call/pcall中调用的redis命令,key的位置必须是KEYS array(不能使用Lua变量替换KEYS),否则直接返回错误信息,"-ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array\r\n"。
b 所有key必须在1个slot上,否则返回错误信息,"-ERR eval/evalsha command keys must be in same slot\r\n"。
c 调用必须要带有key,否则直接返回错误信息, "-ERR for redis cluster, eval/evalsha number of keys can't be negative or zero\r\n"。
2 解决方案
业务层保证key数组都落在一个solt中就可以关闭阿里云对lua脚本的限制!