英文:
Why does redigo return ERR unknown command 'EVALSHA'
问题
redigo是一个用于与Redis交互的Go语言库。它提供了一组简单而强大的API,用于执行Redis命令和处理返回结果。
在你提供的代码中,出现了错误消息"ERR unknown command 'EVALSHA'"。这个错误消息表示Redis服务器不识别"EVALSHA"命令。
根据你的代码,问题可能出在以下几个方面:
-
Redis服务器版本过低:EVALSHA命令是在Redis 2.6.0版本中引入的。如果你的Redis服务器版本低于2.6.0,那么它将不支持EVALSHA命令。你可以尝试升级Redis服务器或者使用EVAL命令替代EVALSHA命令。
-
redigo库版本过低:如果你使用的是较旧版本的redigo库,它可能不支持EVALSHA命令。你可以尝试升级redigo库到最新版本。
请检查你的Redis服务器版本和redigo库版本,并确保它们支持EVALSHA命令。如果问题仍然存在,请提供更多的上下文信息,以便我能够更好地帮助你解决问题。
英文:
https://github.com/garyburd/redigo
Why does redigo return error message?
error message:
ERR unknown command 'EVALSHA'
ERR unknown command 'EVALSHA'
code:
const lockScript = `
local v = redis.call("GET", KEYS[1])
if v == false or v == ARGV[1]
then
return redis.call("SET", KEYS[1], ARGV[1], "EX", ARGV[2]) and 1
else
return 0
end
`
func CounterRegScript() {
rc := RedisClient.Get()
defer rc.Close()
script := redis.NewScript(1, lockScript)
resp, err := script.Do(rc, "xiaorui.cc", "nima", int64(3))
fmt.Println(resp)
fmt.Println(err)
}
答案1
得分: 1
您正在使用一个旧版本的Redis。请升级到2.6版本或更高版本。
英文:
You are using an old version of Redis. Upgrade to version 2.6 or later.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论