【发布时间】:2020-04-01 15:29:32
【问题描述】:
我正在尝试在 ASP.NET WebForms 应用程序 (4.7.2) 中实现 Redis。我从https://github.com/Azure/aspnet-redis-providers 下载了 SessionProvider 源代码。我正在使用 StackExchange.Redis 2.0+ 。
执行登录后,抛出此错误:
显然,有人尝试eval 一些 Lua 脚本,但失败了(这是关闭 StackExchange.Redis related issue 的结论)。
因此,假设假设正确,我提取了有问题的脚本,并使用 redis-cli --eval 以及键和参数运行它。
local retArray = {}
local lockValue = ARGV[1]
local locked = redis.call('SETNX',KEYS[1],ARGV[1])
local IsLocked = true
if locked == 0 then
lockValue = redis.call('GET',KEYS[1])
else
redis.call('EXPIRE',KEYS[1],ARGV[2])
IsLocked = false
end
retArray[1] = lockValue
if lockValue == ARGV[1] then retArray[2] = redis.call('HGETALL',KEYS[2]) else retArray[2] = '' end
local SessionTimeout = redis.call('HGET', KEYS[3], 'SessionTimeout')
if SessionTimeout ~= false then
retArray[3] = SessionTimeout
redis.call('EXPIRE',KEYS[2], SessionTimeout)
redis.call('EXPIRE',KEYS[3], SessionTimeout)
else
retArray[3] = '-1'
end
retArray[4] = IsLocked
return retArray
成功了。
还有其他可能引发此异常的问题吗?
编辑:升级到 2.0。仍然遭受同样的问题。
【问题讨论】:
标签: redis stackexchange.redis azure-redis-cache