记一次Redisson 分布式锁问题
·
1. 问题1
1.1. 使用Redisson加锁时报错
报错出现ERR unknown command 'WAIT'.
1.2. 分析流程
通过百度搜索了一下,基本可以确定是Aliyun Redis开启了Proxy模式,不支持wait命令。尝试升级Redisson版本,3.26.1版本之后可以正常加锁成功。
1.3. 问题总结
正好用的是Aliyun Redis服务7.0版本,目前先通过升级Redisson版本解决。
2. 问题2
2.1. 使用Redisson解锁时报错
解锁时报错 ERR bad lua script for redis cluster, first parameter of redis.call/redis.pcall must be a single literal string。
2.2. 分析流程
- 优先百度,了解到报错提示是redis.call不支持第一个参数为动态参数ARGV[X],只能为常量字符'get/set..'这种。
- 报错中有lua脚本,搜索发现确实有这种命令 redis.call(ARGV[5], KEYS[4] .. ':' .. nextThreadId, ARGV[1]);
- 到github中找Redisson的issues,直接搜索single literal string,找到类似issue

- 找到了Aliyun Redis相关的回答

- 看来还是需要修改Aliyun Redis的配置😕
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)