开发者社区 > 数据库 > NoSQL数据库 > 正文

Redis代理模式访问报错 ERR bad lua script for redis cluster

已解决

Redis集群版本,且使用代理模式访问实例,执行lua脚本:

eval?"?for?i=1,?#KEYS?do?redis.call('set',KEYS[i],ARGV[1])?redis.call('expire',?KEYS[i],?tonumber(ARGV[1]))?end?return?'succ'?"?2?{wt:bb20000002}:30008:2022-10-10?{wt:bb20000002}:30008:2022-10-10?500

报错【error)?ERR?bad?lua?script?for?redis?cluster,?all?the?keys?that?the?script?uses?should?be?passed?using?the?KEYS?array,?and?KEYS?should?not?be?in?expression】

展开
收起
阿里云服务支持 2022-11-01 11:11:54 2207 0
1 条回答
写回答
取消 提交回答
  • 官方回答

    2000元阿里云代金券免费领取,2核4G云服务器仅799元/3年,新老用户都有优惠,立即抢购>>>

    代理模式的额外限制,key的位置必须是KEYS array(不能使用Lua变量替换KEYS)

    1、修改lua脚本,KEYS[i]是不支持的

    2、或者使用直连地址连接实例执行该操作,如截图 image.png

    如采用方案二 注意事项:

    云数据库Redis集群版在迁移、变配时都会通过proxy代理迁移数据,直连模式下不符合代理模式的Lua脚本会迁移、变配失败。 建议在直连模式下使用Lua脚本时应尽可能符合代理模式下的限制规范,避免后续Lua脚本迁移、变配失败。

    2022-11-01 14:11:47
    赞同 展开评论 打赏

相关产品

  • 云数据库 Redis 版
  • 相关电子书

    更多
    Redis在唯品会的应用实践——架构演进与功能定制 立即下载
    微博的Redis定制之路 立即下载
    云数据库Redis版的开源之路 立即下载
    http://www.vxiaotou.com