【发布时间】:2016-05-21 21:35:01
【问题描述】:
我有一个像这样的简单 lua 脚本:
local json = redis.call('GET', KEYS[1])
if json == false then
return nil
end
local newJson = string.gsub(json, '"isViewed":false', '"isViewed":true', 1)
return redis.call('SET', KEYS[1], newJson)
这按预期工作。
但如果我跳过 newJson 声明并直接进入:
local json = redis.call('GET', KEYS[1])
if json == false then
return nil
end
return redis.call('SET', KEYS[1], string.gsub(json, '"isViewed":false', '"isViewed":true', 1))
然后我从 Go "Redigo" Redis 客户端收到此错误:
ERR Error running script (call to f_3dc195393616dc1f56a13d6c471e0b68b3e4c8b3): @user_script:5: ERR syntax error
为什么会这样? string.gsub 只是根据此页面返回一个字符串:
【问题讨论】: