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 2856 发布于浙江 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 官方回答

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

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

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

    如采用方案二 注意事项:

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

    2022-11-01 14:11:47 举报
    赞同 展开评论

    评论

阿里云NoSQL数据库提供了一种灵活的数据存储方式,可以支持各种数据模型,包括文档型、图型、列型和键值型。此外,它还提供了一种分布式的数据处理方式,可以支持高可用性和容灾备份。包含Redis社区版和Tair、多模数据库 Lindorm、MongoDB 版。

收录在圈子:
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
还有其他疑问?
咨询AI助理