阿里云集群模式下的 Redis 对 Lua 脚本存在限制
去年年初工作时的一篇记录。
遇到一个关于 Redis 集群模式下的问题,是阿里云对 Lua 脚本的限制导致的,但是 node-redlock
包把错误吞掉了,抛出了一个重试失败的错误,导致我定位了好久…
被吞掉的错误信息:
-ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array
https://help.aliyun.com/document_detail/92942.htm?spm=a2c4g.11186623.0.0.2c555c7dYsASSH#section-8f7-qgv-dlv
解决方式 #
- 在阿里云后台关闭
script_check_enable
这个设置。 - 或者改造脚本,只向 Redis 传递对 KEYS 的引用,而不是变量。
反思自我的问题 #
未知的错误,网上搜索不到直接的解决方案,加上定位问题的时间不够,导致我没有定位问题的耐心,非常焦躁,希望有人可以帮我解决掉问题...
另一方面没有从原理的角度去思考,node-redlock
只是调用 Redis 的库,他的问题会有哪些地方。
- Previous: 有状态服务改造到无状态服务注意点
- Next: 如何快速升级 JavaScript 项目中的所有依赖到最新版本