JedisDataException:不允许在MULTI内进行ERR WATCH

时间:2019-07-07 11:57:39

标签: java amazon-web-services kubernetes redis jedis

我将jedis用于Redis数据库的使用。该软件基于Redis,SQS,SMS和带有POD的Kubernetes等AWS服务。 实际上,一切正常,但是一旦出现以下异常:“ JedisDataException:不允许在MULTI内进行ERR WATCH”,该异常发生在代码中可见的位置。我无法再向Redis发出任何请求(无论我想使用哪种密钥)。重新启动POD之后,一切正常。 我再也无法重现错误。

您有什么问题吗? 我问这与aws-sqs或POD和并发的缩放有关。

事件的顺序是:事件-> aws:sns-> aws:sqs-> k8s:POD(Java代码)->向aws:redis添加值

谢谢。

//h1[contains(@class,'buttom') and text()='11']/parent::*/preceding-sibling::*/descendant::h4

1 个答案:

答案 0 :(得分:0)

首先, Redis不允许在MULTI块内进行WATCH

第二,您可能在多线程环境中使用Jedis。在jedis.multi()之后和tx.exec()之前,jedis.watch(key)被同一个Jedis对象调用!