我的账户
动脑学院

教育培训在线课程

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

[Redis] ERR 'EVALSHA' command keys must in same slot

  [复制链接]
小强很强 发表于 2020-6-28 16:56:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
请教各位大神,ERR 'EVALSHA' command keys must in same slot 这个问题改怎么解决。key是这样子:{diskey}_distributeLock

用redis做分布式锁遇到的问题,使用lua脚本

精彩评论4

dnman 发表于 2020-6-28 17:03:59 | 显示全部楼层
用到了keys这个命令?
 楼主| 小强很强 发表于 2020-6-28 17:05:33 | 显示全部楼层
dnman 发表于 2020-6-28 17:03
用到了keys这个命令?

if redis.call("setnx", KEYS[1], KEYS[2]) == 1 then return redis.call("pexpire", KEYS[1], KEYS[3]) else return 0 end

这个脚本有问题吗?
dnman 发表于 2020-6-28 17:12:32 | 显示全部楼层
小强很强 发表于 2020-6-28 17:05
if redis.call("setnx", KEYS[1], KEYS[2]) == 1 then return redis.call("pexpire", KEYS[1], KEYS[3])  ...

用redis做分布式锁,就不建议自己写了,用redisson来做吧。
官网:https://github.com/redisson/redisson
QQ图片20200628171149.png

 楼主| 小强很强 发表于 2020-6-28 17:13:33 | 显示全部楼层
dnman 发表于 2020-6-28 17:12
用redis做分布式锁,就不建议自己写了,用redisson来做吧。
官网:https://github.com/redisson/redisson ...

感谢老师,我去研究下
高级模式
B Color Image Link Quote Code Smilies 上传

本版积分规则