redigo返回”ERR unknown command ‘EVALSHA'”的原因是执行了一个未知的命令”EVALSHA”。

huangapple go评论113阅读模式
英文:

Why does redigo return ERR unknown command 'EVALSHA'

问题

redigo是一个用于与Redis交互的Go语言库。它提供了一组简单而强大的API,用于执行Redis命令和处理返回结果。

在你提供的代码中,出现了错误消息"ERR unknown command 'EVALSHA'"。这个错误消息表示Redis服务器不识别"EVALSHA"命令。

根据你的代码,问题可能出在以下几个方面:

  1. Redis服务器版本过低:EVALSHA命令是在Redis 2.6.0版本中引入的。如果你的Redis服务器版本低于2.6.0,那么它将不支持EVALSHA命令。你可以尝试升级Redis服务器或者使用EVAL命令替代EVALSHA命令。

  2. redigo库版本过低:如果你使用的是较旧版本的redigo库,它可能不支持EVALSHA命令。你可以尝试升级redigo库到最新版本。

请检查你的Redis服务器版本和redigo库版本,并确保它们支持EVALSHA命令。如果问题仍然存在,请提供更多的上下文信息,以便我能够更好地帮助你解决问题。

英文:

https://github.com/garyburd/redigo

Why does redigo return error message?

error message:

  1. ERR unknown command 'EVALSHA'
  2. ERR unknown command 'EVALSHA'

code:

  1. const lockScript = `
  2. local v = redis.call("GET", KEYS[1])
  3. if v == false or v == ARGV[1]
  4. then
  5. return redis.call("SET", KEYS[1], ARGV[1], "EX", ARGV[2]) and 1
  6. else
  7. return 0
  8. end
  9. `
  10. func CounterRegScript() {
  11. rc := RedisClient.Get()
  12. defer rc.Close()
  13. script := redis.NewScript(1, lockScript)
  14. resp, err := script.Do(rc, "xiaorui.cc", "nima", int64(3))
  15. fmt.Println(resp)
  16. fmt.Println(err)
  17. }

答案1

得分: 1

您正在使用一个旧版本的Redis。请升级到2.6版本或更高版本。

英文:

You are using an old version of Redis. Upgrade to version 2.6 or later.

huangapple
  • 本文由 发表于 2017年8月16日 15:48:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/45707915.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定