首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Redis Lua脚本错误:脚本试图访问不存在的全局变量“print”脚本

Redis Lua脚本错误:脚本试图访问不存在的全局变量“print”脚本
EN

Stack Overflow用户
提问于 2022-10-10 11:51:54
回答 1查看 87关注 0票数 0

我在学习卢阿。下面给出的是用于处理某些操作的Lua脚本。

代码语言:javascript
运行
复制
local function reverseDb ()
  local key =  KEYS[1]
  local value = ARGV[1]
  redis.call('SREM',key,value)
  return value
end

if pcall(reverseDb) then
  print("success")
else
  print("error")
  redis.call('SADD',key,value)
end

在运行时,它会引发一个错误:

代码语言:javascript
运行
复制
Script attempted to access nonexistent global variable 'print' script: 39f13cb3bddd638c815531acbc2dc6434a0329c6, on @user_script:17.

我不明白为什么会有错误。有线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-11 02:49:58

Redis在沙箱上下文中运行Lua脚本,并限制全局变量的使用,只允许部分全局变量/函数。显然,print是不允许的。

在这种情况下,您可以返回错误消息而不是打印它。

代码语言:javascript
运行
复制
if pcall(reverseDb) then
  return "success"
else
  redis.call('SADD',key,value)
  return "error"
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74014510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档